Adding keyboard event handler to button widget
parent
63c5e4949f
commit
9915fb625e
|
@ -50,6 +50,24 @@
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if GINPUT_NEED_KEYBOARD
|
||||||
|
static void _keyboardEvent(GWidgetObject* gw, GEventKeyboard* pke)
|
||||||
|
{
|
||||||
|
// ENTER and SPACE keys to press the button
|
||||||
|
if (pke->c[0] == GKEY_ENTER || pke->c[0] == GKEY_SPACE) {
|
||||||
|
|
||||||
|
// Press or release event?
|
||||||
|
if (pke->keystate & GKEYSTATE_KEYUP) {
|
||||||
|
gw->g.flags &= ~GBUTTON_FLG_PRESSED;
|
||||||
|
} else {
|
||||||
|
gw->g.flags |= GBUTTON_FLG_PRESSED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_gwinUpdate((GHandle)gw);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if GINPUT_NEED_TOGGLE
|
#if GINPUT_NEED_TOGGLE
|
||||||
// A toggle off has occurred
|
// A toggle off has occurred
|
||||||
static void ButtonToggleOff(GWidgetObject *gw, uint16_t role) {
|
static void ButtonToggleOff(GWidgetObject *gw, uint16_t role) {
|
||||||
|
@ -97,7 +115,7 @@ static const gwidgetVMT buttonVMT = {
|
||||||
#endif
|
#endif
|
||||||
#if GINPUT_NEED_KEYBOARD
|
#if GINPUT_NEED_KEYBOARD
|
||||||
{
|
{
|
||||||
0 // Process keyboard events
|
_keyboardEvent // Process keyboard events
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
#if GINPUT_NEED_TOGGLE
|
#if GINPUT_NEED_TOGGLE
|
||||||
|
|
Loading…
Reference in New Issue