• R/O
  • SSH
  • HTTPS

haribote: Commit


Commit MetaInfo

Revision178 (tree)
Time2007-03-09 02:48:49
Authorbayside

Log Message

added keyevent handling

Change Summary

Incremental Difference

--- haribote/trunk/BayOS/baygui/awt/Component.cpp (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Component.cpp (revision 178)
@@ -224,7 +224,9 @@
224224 }
225225 case KeyEvent::KEY_PRESSED:
226226 case KeyEvent::KEY_RELEASED:
227- processKeyEvent((KeyEvent*) e);
227+ if (this->focused == true) {
228+ processKeyEvent((KeyEvent*) e);
229+ }
228230 break;
229231 default:
230232 break;
@@ -321,8 +323,8 @@
321323 * このコンポーネントからマウスモーションイベントを受け取らないように、
322324 * 指定されたマウスモーションリスナーを削除します。
323325 */
324- void Component::removeMouseListener(MouseMotionListener* l) {
325- this->mouseListeners->remove(this->mouseListeners->indexOf((Object*) l));
326+ void Component::removeMouseMotionListener(MouseMotionListener* l) {
327+ this->mouseMotionListeners->remove(this->mouseMotionListeners->indexOf((Object*) l));
326328 }
327329
328330 /** このコンポーネントを再描画します。*/
--- haribote/trunk/BayOS/baygui/awt/Button.cpp (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Button.cpp (revision 178)
@@ -81,6 +81,21 @@
8181 g->drawString(this->label, x, y);
8282 }
8383
84+ /** このコンポーネントで発生するキーイベントを処理します。*/
85+ void Button::processKeyEvent(KeyEvent* e) {
86+ Component::processKeyEvent(e);
87+
88+ if (e->getKeyChar() == ' ' || e->getKeyChar() == '\n') {
89+ if (e->getID() == KeyEvent::KEY_PRESSED) {
90+ this->pushed = true;
91+ repaint();
92+ } else if (e->getID() == KeyEvent::KEY_RELEASED) {
93+ this->pushed = false;
94+ repaint();
95+ }
96+ }
97+ }
98+
8499 /** このコンポーネントで発生するマウスイベントを処理します。*/
85100 void Button::processMouseEvent(MouseEvent* e) {
86101 Component::processMouseEvent(e);
--- haribote/trunk/BayOS/baygui/awt/Listbox.cpp (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Listbox.cpp (revision 178)
@@ -79,6 +79,19 @@
7979 }
8080 }
8181
82+ /** このコンポーネントで発生するキーイベントを処理します。*/
83+ void Listbox::processKeyEvent(KeyEvent* e) {
84+ Component::processKeyEvent(e);
85+
86+ if (e->getKeyCode() == UP_PRESSED && this->selectedIndex > 0) {
87+ this->selectedIndex--;
88+ repaint();
89+ } else if (e->getKeyCode() == DOWN_PRESSED && this->selectedIndex < this->items->size() - 1) {
90+ this->selectedIndex++;
91+ repaint();
92+ }
93+ }
94+
8295 /** このコンポーネントで発生するマウスイベントを処理します。*/
8396 void Listbox::processMouseEvent(MouseEvent* e) {
8497 Component::processMouseEvent(e);
--- haribote/trunk/BayOS/baygui/awt/Scrollbar.h (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Scrollbar.h (revision 178)
@@ -52,6 +52,9 @@
5252 /** このコンポーネントをペイントします。*/
5353 virtual void paint(Graphics* g);
5454
55+ /** このコンポーネントで発生するキーイベントを処理します。*/
56+ virtual void processKeyEvent(KeyEvent* e);
57+
5558 /** このコンポーネントで発生するマウスイベントを処理します。*/
5659 virtual void processMouseEvent(MouseEvent* e);
5760
--- haribote/trunk/BayOS/baygui/awt/Application.cpp (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Application.cpp (revision 178)
@@ -63,7 +63,7 @@
6363 info.type + 95, /* type */
6464 info.arg2, /* modifiers */
6565 info.arg3, /* keyCode */
66- info.arg4 /* keyCjar */
66+ info.arg4 /* keyChar */
6767 );
6868 frame->dispatchEvent(ke);
6969 delete(ke);
--- haribote/trunk/BayOS/baygui/awt/Component.h (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Component.h (revision 178)
@@ -151,7 +151,7 @@
151151 * このコンポーネントからマウスモーションイベントを受け取らないように、
152152 * 指定されたマウスモーションリスナーを削除します。
153153 */
154- void removeMouseListener(MouseMotionListener* l);
154+ void removeMouseMotionListener(MouseMotionListener* l);
155155
156156 /** このコンポーネントを再描画します。*/
157157 virtual void repaint(int x = 0, int y = 0, int w = 0, int h = 0);
--- haribote/trunk/BayOS/baygui/awt/Button.h (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Button.h (revision 178)
@@ -31,6 +31,9 @@
3131 /** このコンポーネントをペイントします。*/
3232 virtual void paint(Graphics* g);
3333
34+ /** このコンポーネントで発生するキーイベントを処理します。*/
35+ virtual void processKeyEvent(KeyEvent* e);
36+
3437 /** このコンポーネントで発生するマウスイベントを処理します。*/
3538 virtual void processMouseEvent(MouseEvent* e);
3639
--- haribote/trunk/BayOS/baygui/awt/Scrollbar.cpp (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Scrollbar.cpp (revision 178)
@@ -195,6 +195,21 @@
195195 }
196196 }
197197
198+ /** このコンポーネントで発生するキーイベントを処理します。*/
199+ void Scrollbar::processKeyEvent(KeyEvent* e) {
200+ Component::processKeyEvent(e);
201+
202+ if (this->orientation == VERTICAL && e->getKeyCode() == UP_PRESSED) {
203+ setValue(this->value - this->blocksize);
204+ } else if (this->orientation == VERTICAL && e->getKeyCode() == DOWN_PRESSED) {
205+ setValue(this->value + this->blocksize);
206+ } else if (this->orientation == HORIZONTAL && e->getKeyCode() == LEFT_PRESSED) {
207+ setValue(this->value - this->blocksize);
208+ } else if (this->orientation == HORIZONTAL && e->getKeyCode() == RIGHT_PRESSED) {
209+ setValue(this->value + this->blocksize);
210+ }
211+ }
212+
198213 /** このコンポーネントで発生するマウスイベントを処理します。*/
199214 void Scrollbar::processMouseEvent(MouseEvent* e) {
200215 Component::processMouseEvent(e);
--- haribote/trunk/BayOS/baygui/awt/Listbox.h (revision 177)
+++ haribote/trunk/BayOS/baygui/awt/Listbox.h (revision 178)
@@ -35,6 +35,9 @@
3535 /** このコンポーネントをペイントします。*/
3636 virtual void paint(Graphics* g);
3737
38+ /** このコンポーネントで発生するキーイベントを処理します。*/
39+ virtual void processKeyEvent(KeyEvent* e);
40+
3841 /** このコンポーネントで発生するマウスイベントを処理します。*/
3942 virtual void processMouseEvent(MouseEvent* e);
4043 };
Show on old repository browser