From 16d213d4ed14add60e286246ad6dc563761b9689 Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Wed, 12 Aug 2015 17:32:38 +0200 Subject: Passing keyboard events to widgets (not finished yet) --- src/gwin/gwin_checkbox.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/gwin/gwin_checkbox.c') diff --git a/src/gwin/gwin_checkbox.c b/src/gwin/gwin_checkbox.c index 11e08804..83d5bc38 100644 --- a/src/gwin/gwin_checkbox.c +++ b/src/gwin/gwin_checkbox.c @@ -91,6 +91,11 @@ static const gwidgetVMT checkboxVMT = { 0, // Process mouse move events (NOT USED) }, #endif + #if GINPUT_NEED_KEYBOARD + { + 0 // Process keyboard events + }, + #endif #if GINPUT_NEED_TOGGLE { 1, // 1 toggle role -- cgit v1.2.3 From c451880d807cb07986cb3553e4424219166ced5e Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Sun, 16 Aug 2015 01:41:33 +0200 Subject: Adding keyboard event handler to checkbox widget --- src/gwin/gwin_checkbox.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/gwin/gwin_checkbox.c') diff --git a/src/gwin/gwin_checkbox.c b/src/gwin/gwin_checkbox.c index 83d5bc38..6401092d 100644 --- a/src/gwin/gwin_checkbox.c +++ b/src/gwin/gwin_checkbox.c @@ -55,6 +55,23 @@ static void SendCheckboxEvent(GWidgetObject *gw) { } #endif +#if GINPUT_NEED_KEYBOARD + static void _keyboardEvent(GWidgetObject* gw, GEventKeyboard* pke) + { + // Only react on KEYDOWN events. Ignore KEYUP events. + if (pke->keystate & GKEYSTATE_KEYUP) { + break; + } + + // ENTER and SPACE keys to check/uncheck the checkbox + if (pke->c[0] == GKEY_ENTER || pke->c[0] == GKEY_SPACE) { + gw->g.flags ^= GCHECKBOX_FLG_CHECKED; + } + + _gwinUpdate((GHandle)gw); + } +#endif + #if GINPUT_NEED_TOGGLE static void CheckboxToggleOn(GWidgetObject *gw, uint16_t role) { (void) role; @@ -93,7 +110,7 @@ static const gwidgetVMT checkboxVMT = { #endif #if GINPUT_NEED_KEYBOARD { - 0 // Process keyboard events + _keyboardEvent // Process keyboard events }, #endif #if GINPUT_NEED_TOGGLE -- cgit v1.2.3 From 377fe644d1233e955dfd05e40fa9d335447de325 Mon Sep 17 00:00:00 2001 From: inmarket Date: Sun, 16 Aug 2015 14:30:25 +1000 Subject: Coding style, comments, duplicate symbols and other minor fixes --- src/gwin/gwin_checkbox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/gwin/gwin_checkbox.c') diff --git a/src/gwin/gwin_checkbox.c b/src/gwin/gwin_checkbox.c index 6401092d..d6906b71 100644 --- a/src/gwin/gwin_checkbox.c +++ b/src/gwin/gwin_checkbox.c @@ -56,7 +56,7 @@ static void SendCheckboxEvent(GWidgetObject *gw) { #endif #if GINPUT_NEED_KEYBOARD - static void _keyboardEvent(GWidgetObject* gw, GEventKeyboard* pke) + static void CheckboxKeyboard(GWidgetObject* gw, GEventKeyboard* pke) { // Only react on KEYDOWN events. Ignore KEYUP events. if (pke->keystate & GKEYSTATE_KEYUP) { @@ -110,7 +110,7 @@ static const gwidgetVMT checkboxVMT = { #endif #if GINPUT_NEED_KEYBOARD { - _keyboardEvent // Process keyboard events + CheckboxKeyboard // Process keyboard events }, #endif #if GINPUT_NEED_TOGGLE -- cgit v1.2.3 From 3fea02324831eba1773f45b1dc6d0bf2a0c8326d Mon Sep 17 00:00:00 2001 From: inmarket Date: Mon, 17 Aug 2015 00:18:54 +1000 Subject: Add some keyboard widget support --- src/gwin/gwin_checkbox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/gwin/gwin_checkbox.c') diff --git a/src/gwin/gwin_checkbox.c b/src/gwin/gwin_checkbox.c index d6906b71..d477420b 100644 --- a/src/gwin/gwin_checkbox.c +++ b/src/gwin/gwin_checkbox.c @@ -55,7 +55,7 @@ static void SendCheckboxEvent(GWidgetObject *gw) { } #endif -#if GINPUT_NEED_KEYBOARD +#if GINPUT_NEED_KEYBOARD || GWIN_NEED_KEYBOARD static void CheckboxKeyboard(GWidgetObject* gw, GEventKeyboard* pke) { // Only react on KEYDOWN events. Ignore KEYUP events. @@ -108,7 +108,7 @@ static const gwidgetVMT checkboxVMT = { 0, // Process mouse move events (NOT USED) }, #endif - #if GINPUT_NEED_KEYBOARD + #if GINPUT_NEED_KEYBOARD || GWIN_NEED_KEYBOARD { CheckboxKeyboard // Process keyboard events }, -- cgit v1.2.3