From 74e94d39b9b66adeaf8bcbb8789d79110102bb15 Mon Sep 17 00:00:00 2001 From: Andrew Hannam Date: Sun, 2 Dec 2012 17:10:27 +1000 Subject: Split Attaching Sources to a GWIN button Split Attaching Sources to a GWIN button to allow for new input types that require a parameter in future eg. Keyboard will require a parameter. --- src/gwin/button.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) (limited to 'src/gwin') diff --git a/src/gwin/button.c b/src/gwin/button.c index 43c6d5d4..4e1e45f5 100644 --- a/src/gwin/button.c +++ b/src/gwin/button.c @@ -297,30 +297,23 @@ void gwinButtonDraw(GHandle gh) { #undef gbw } -// Attach a source to this button. Sources recognised: Mouse, Touch and Toggle - others are ignored (returns false). -bool_t gwinAttachButtonSource(GHandle gh, GSourceHandle gsh, GEventType type) { - #define gbw ((GButtonObject *)gh) - unsigned flags; +#if defined(GINPUT_NEED_MOUSE) && GINPUT_NEED_MOUSE + bool_t gwinAttachButtonMouseSource(GHandle gh, GSourceHandle gsh) { + if (gh->type != GW_BUTTON) + return FALSE; - switch (type) { - #if defined(GINPUT_NEED_MOUSE) && GINPUT_NEED_MOUSE - case GEVENT_MOUSE: - case GEVENT_TOUCH: - flags = GLISTEN_MOUSEMETA; - break; - #endif - #if defined(GINPUT_NEED_TOGGLE) && GINPUT_NEED_TOGGLE - case GEVENT_TOGGLE: - flags = GLISTEN_TOGGLE_OFF|GLISTEN_TOGGLE_ON; - break; - #endif - default: - return FALSE; + return geventAttachSource(&((GButtonObject *)gh)->listener, gsh, GLISTEN_MOUSEMETA); } - return geventAttachSource(&gbw->listener, gsh, flags); +#endif - #undef gbw -} +#if defined(GINPUT_NEED_TOGGLE) && GINPUT_NEED_TOGGLE + bool_t gwinAttachButtonToggleSource(GHandle gh, GSourceHandle gsh) { + if (gh->type != GW_BUTTON) + return FALSE; + + return geventAttachSource(&((GButtonObject *)gh)->listener, gsh, GLISTEN_TOGGLE_OFF|GLISTEN_TOGGLE_ON); + } +#endif #endif /* GFX_USE_GWIN && GWIN_NEED_BUTTON */ /** @} */ -- cgit v1.2.3