diff options
author | inmarket <andrewh@inmarket.com.au> | 2013-07-06 01:45:24 +1000 |
---|---|---|
committer | inmarket <andrewh@inmarket.com.au> | 2013-07-06 01:45:24 +1000 |
commit | ab44f32859ac61072a561869787089e13adaf509 (patch) | |
tree | 4a3e03305b94638d90dff64127abc6c9a1c7c4df /src/gwin/checkbox.c | |
parent | f3f9b7dc015b5afc82fba6682e780dcc72f9241d (diff) | |
download | uGFX-ab44f32859ac61072a561869787089e13adaf509.tar.gz uGFX-ab44f32859ac61072a561869787089e13adaf509.tar.bz2 uGFX-ab44f32859ac61072a561869787089e13adaf509.zip |
Remove widget structure members when they are not needed for input tracking
Also doco update for Enabled Flag
Diffstat (limited to 'src/gwin/checkbox.c')
-rw-r--r-- | src/gwin/checkbox.c | 122 |
1 files changed, 63 insertions, 59 deletions
diff --git a/src/gwin/checkbox.c b/src/gwin/checkbox.c index 62f4c55b..74d612d2 100644 --- a/src/gwin/checkbox.c +++ b/src/gwin/checkbox.c @@ -24,42 +24,6 @@ // Our checked state #define GCHECKBOX_FLG_CHECKED (GWIN_FIRST_CONTROL_FLAG<<0) -// Prototypes for button VMT functions -static void MouseDown(GWidgetObject *gw, coord_t x, coord_t y); -static void ToggleOn(GWidgetObject *gw, uint16_t role); -static void ToggleAssign(GWidgetObject *gw, uint16_t role, uint16_t instance); -static uint16_t ToggleGet(GWidgetObject *gw, uint16_t role); - -// The button VMT table -static const gwidgetVMT checkboxVMT = { - { - "Checkbox", // The classname - sizeof(GCheckboxObject),// The object size - _gwidgetDestroy, // The destroy routine - _gwidgetRedraw, // The redraw routine - 0, // The after-clear routine - }, - gwinCheckboxDraw_CheckOnLeft, // The default drawing routine - { - MouseDown, // Process mouse down events - 0, // Process mouse up events (NOT USED) - 0, // Process mouse move events (NOT USED) - }, - { - 1, // 1 toggle role - ToggleAssign, // Assign Toggles - ToggleGet, // Get Toggles - 0, // Process toggle off events (NOT USED) - ToggleOn, // Process toggle on events - }, - { - 0, // No dial roles - 0, // Assign Dials (NOT USED) - 0, // Get Dials (NOT USED) - 0, // Process dial move events (NOT USED) - } -}; - static const GCheckboxColors defaultColors = { Black, // border Grey, // selected @@ -87,37 +51,77 @@ static void SendCheckboxEvent(GWidgetObject *gw) { #undef pce } -// A mouse down has occurred over the checkbox -static void MouseDown(GWidgetObject *gw, coord_t x, coord_t y) { - (void) x; (void) y; - gw->g.flags ^= GCHECKBOX_FLG_CHECKED; - _gwidgetRedraw((GHandle)gw); - SendCheckboxEvent(gw); -} +#if GINPUT_NEED_MOUSE + static void MouseDown(GWidgetObject *gw, coord_t x, coord_t y) { + (void) x; (void) y; + gw->g.flags ^= GCHECKBOX_FLG_CHECKED; + _gwidgetRedraw((GHandle)gw); + SendCheckboxEvent(gw); + } +#endif + +#if GINPUT_NEED_TOGGLE + static void ToggleOn(GWidgetObject *gw, uint16_t role) { + (void) role; + gw->g.flags ^= GCHECKBOX_FLG_CHECKED; + _gwidgetRedraw((GHandle)gw); + SendCheckboxEvent(gw); + } -// A toggle on has occurred -static void ToggleOn(GWidgetObject *gw, uint16_t role) { - (void) role; - gw->g.flags ^= GCHECKBOX_FLG_CHECKED; - _gwidgetRedraw((GHandle)gw); - SendCheckboxEvent(gw); -} + static void ToggleAssign(GWidgetObject *gw, uint16_t role, uint16_t instance) { + (void) role; + ((GCheckboxObject *)gw)->toggle = instance; + } -static void ToggleAssign(GWidgetObject *gw, uint16_t role, uint16_t instance) { - (void) role; - ((GCheckboxObject *)gw)->toggle = instance; -} + static uint16_t ToggleGet(GWidgetObject *gw, uint16_t role) { + (void) role; + return ((GCheckboxObject *)gw)->toggle; + } +#endif -static uint16_t ToggleGet(GWidgetObject *gw, uint16_t role) { - (void) role; - return ((GCheckboxObject *)gw)->toggle; -} +// The checkbox VMT table +static const gwidgetVMT checkboxVMT = { + { + "Checkbox", // The classname + sizeof(GCheckboxObject),// The object size + _gwidgetDestroy, // The destroy routine + _gwidgetRedraw, // The redraw routine + 0, // The after-clear routine + }, + gwinCheckboxDraw_CheckOnLeft, // The default drawing routine + #if GINPUT_NEED_MOUSE + { + MouseDown, // Process mouse down events + 0, // Process mouse up events (NOT USED) + 0, // Process mouse move events (NOT USED) + }, + #endif + #if GINPUT_NEED_TOGGLE + { + 1, // 1 toggle role + ToggleAssign, // Assign Toggles + ToggleGet, // Get Toggles + 0, // Process toggle off events (NOT USED) + ToggleOn, // Process toggle on events + }, + #endif + #if GINPUT_NEED_DIAL + { + 0, // No dial roles + 0, // Assign Dials (NOT USED) + 0, // Get Dials (NOT USED) + 0, // Process dial move events (NOT USED) + }, + #endif +}; GHandle gwinCreateCheckbox(GCheckboxObject *gb, const GWidgetInit *pInit) { if (!(gb = (GCheckboxObject *)_gwidgetCreate(&gb->w, pInit, &checkboxVMT))) return 0; - gb->toggle = (uint16_t) -1; + #if GINPUT_NEED_TOGGLE + gb->toggle = GWIDGET_NO_INSTANCE; + #endif gb->c = defaultColors; // assign the default colors gwinSetVisible((GHandle)gb, pInit->g.show); return (GHandle)gb; |