• R/O
  • SSH
  • HTTPS

qrobosdk: コミット


コミットメタ情報

リビジョン1770 (tree)
日時2010-04-12 00:58:03
作者satofumi

ログメッセージ

fixed Menu::setIndex()

変更サマリ

差分

--- trunk/libs/lua/luabindGui.cpp (revision 1769)
+++ trunk/libs/lua/luabindGui.cpp (revision 1770)
@@ -169,6 +169,7 @@
169169 .def("addButton", &Menu::addButton)
170170 .def("setEnableNoSelect", &Menu::setEnableNoSelect)
171171 .def("setEnableRotate", &Menu::setEnableRotate)
172+ .def("indexSize", &Menu::indexSize)
172173 .def("setIndex", &Menu::setIndex)
173174 .def("isClicked", &Menu::isClicked)
174175 .def("clickedId", &Menu::clickedId),
@@ -204,8 +205,11 @@
204205 LuaHandler::registerValue(L, "SDLK_RETURN", SDLK_RETURN);
205206 LuaHandler::registerValue(L, "SDLK_F4", SDLK_F4);
206207 LuaHandler::registerValue(L, "SDLK_q", SDLK_q);
208+ LuaHandler::registerValue(L, "SDLK_LEFT", SDLK_LEFT);
209+ LuaHandler::registerValue(L, "SDLK_RIGHT", SDLK_RIGHT);
207210
208211 LuaHandler::registerValue(L, "SDL_KEYDOWN", SDL_KEYDOWN);
212+ LuaHandler::registerValue(L, "SDL_KEYUP", SDL_KEYUP);
209213
210214 LuaHandler::registerValue(L, "KMOD_NONE", KMOD_NONE);
211215 LuaHandler::registerValue(L, "KMOD_LCTRL", KMOD_LCTRL);
--- trunk/libs/gui/Menu.h (revision 1769)
+++ trunk/libs/gui/Menu.h (revision 1770)
@@ -57,7 +57,7 @@
5757 void setEnableRotate(bool enable);
5858
5959 bool empty(void);
60- size_t size(void);
60+ size_t indexSize(void);
6161
6262 void setFocus(size_t id);
6363 void press(size_t id);
--- trunk/libs/gui/Button.cpp (revision 1769)
+++ trunk/libs/gui/Button.cpp (revision 1770)
@@ -271,9 +271,9 @@
271271 }
272272
273273
274-void Button::setFocus(void)
274+void Button::setFocus(bool on)
275275 {
276- pimpl->force_focus_ = true;
276+ pimpl->force_focus_ = on;
277277 }
278278
279279
--- trunk/libs/gui/Menu.cpp (revision 1769)
+++ trunk/libs/gui/Menu.cpp (revision 1770)
@@ -7,6 +7,7 @@
77 $Id$
88
99 \todo clickedId() の情報を、イベントで監視すべき
10+ \todo left_event_, right_event_ で選択が変更できるようにする
1011 */
1112
1213 #include "Menu.h"
@@ -302,7 +303,7 @@
302303 if ((prev_cursor_.x != cursor_.x) || (prev_cursor_.y != cursor_.y)) {
303304
304305 // マウスが移動し、別ボタンにフォーカスが発生したときに選択を無効化
305- int focused_index = focusedIndex(index_, true);
306+ int focused_index = focusedIndex(index_);
306307 if (focused_index != InvalidIndex) {
307308 if (index_ >= 0) {
308309 release(button_order_[index_]);
@@ -354,6 +355,7 @@
354355 }
355356
356357 // !!! align によってキーの役割を変更すること
358+ // !!! left_event_, right_event_ を定義して使うようにする
357359 bool up = up_event_.isActive();
358360 bool down = down_event_.isActive();
359361
@@ -405,7 +407,7 @@
405407 }
406408
407409
408- int focusedIndex(int ignore_index = InvalidIndex, bool check_inner = false)
410+ int focusedIndex(int ignore_index = InvalidIndex)
409411 {
410412 size_t n = button_order_.size();
411413 for (size_t i = 0; i < n; ++i) {
@@ -415,13 +417,6 @@
415417 size_t id = button_order_[i];
416418 Button* button = items_[id];
417419
418- static_cast<void>(check_inner);
419-#if 0
420- if (check_inner && (button->isInner())) {
421- button->setFocus();
422- }
423-#endif
424-
425420 if (button->isFocused()) {
426421 return static_cast<int>(i);
427422 }
@@ -628,7 +623,7 @@
628623 }
629624
630625
631-size_t Menu::size(void)
626+size_t Menu::indexSize(void)
632627 {
633628 return pimpl->items_.size();
634629 }
@@ -663,6 +658,9 @@
663658 index = max(static_cast<int>(InvalidIndex), index);
664659 index = min(index, static_cast<int>(pimpl->items_.size()));
665660
661+ if (index != pimpl->index_) {
662+ release();
663+ }
666664 pimpl->index_ = index;
667665 }
668666
--- trunk/libs/gui/Button.h (revision 1769)
+++ trunk/libs/gui/Button.h (revision 1770)
@@ -51,7 +51,7 @@
5151 /*!
5252 \brief ボタンをフォーカス状態にする
5353 */
54- void setFocus(void);
54+ void setFocus(bool on = true);
5555
5656 bool isFocused(void);
5757 bool isCursorInner(void);
旧リポジトリブラウザで表示