diff options
author | Andrew Hannam <andrewh@inmarket.com.au> | 2012-12-02 17:10:27 +1000 |
---|---|---|
committer | Andrew Hannam <andrewh@inmarket.com.au> | 2012-12-02 17:10:27 +1000 |
commit | 74e94d39b9b66adeaf8bcbb8789d79110102bb15 (patch) | |
tree | c15ea2d56eb73f3664680ea045f7146d9ba19d2b /src/gwin | |
parent | a2c192ffd0f28c2d992b18a77cee123924bbad65 (diff) | |
download | uGFX-74e94d39b9b66adeaf8bcbb8789d79110102bb15.tar.gz uGFX-74e94d39b9b66adeaf8bcbb8789d79110102bb15.tar.bz2 uGFX-74e94d39b9b66adeaf8bcbb8789d79110102bb15.zip |
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.
Diffstat (limited to 'src/gwin')
-rw-r--r-- | src/gwin/button.c | 35 |
1 files changed, 14 insertions, 21 deletions
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 */
/** @} */
|