aboutsummaryrefslogtreecommitdiffstats
path: root/demos/modules/gwin/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'demos/modules/gwin/widgets')
-rw-r--r--demos/modules/gwin/widgets/main.c330
-rw-r--r--demos/modules/gwin/widgets/readme.txt4
2 files changed, 224 insertions, 110 deletions
diff --git a/demos/modules/gwin/widgets/main.c b/demos/modules/gwin/widgets/main.c
index e44ce6b0..4d485186 100644
--- a/demos/modules/gwin/widgets/main.c
+++ b/demos/modules/gwin/widgets/main.c
@@ -28,37 +28,186 @@
#include "gfx.h"
+/**
+ * This demo demonstrates many of the GWIN widgets.
+ * On the "Radio" tab try playing with the color radio buttons.
+ * On the "Checkbox" tab try playing with the "Disable All" checkbox.
+ */
+
+/* Our custom yellow style */
+static const GWidgetStyle YellowWidgetStyle = {
+ Yellow, // window background
+
+ // enabled color set
+ {
+ HTML2COLOR(0x0000FF), // text
+ HTML2COLOR(0x404040), // edge
+ HTML2COLOR(0xE0E0E0), // fill
+ HTML2COLOR(0xE0E0E0), // progress - inactive area
+ },
+
+ // disabled color set
+ {
+ HTML2COLOR(0xC0C0C0), // text
+ HTML2COLOR(0x808080), // edge
+ HTML2COLOR(0xE0E0E0), // fill
+ HTML2COLOR(0xC0E0C0), // progress - active area
+ },
+
+ // pressed color set
+ {
+ HTML2COLOR(0xFF00FF), // text
+ HTML2COLOR(0x404040), // edge
+ HTML2COLOR(0x808080), // fill
+ HTML2COLOR(0x00E000), // progress - active area
+ },
+};
+
+/* The variables we need */
static GListener gl;
static GHandle ghConsole;
static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabImages;
static GHandle ghButton1, ghButton2, ghButton3, ghButton4;
static GHandle ghSlider1, ghSlider2, ghSlider3, ghSlider4;
-static GHandle ghCheckbox1, ghCheckbox2;
+static GHandle ghCheckbox1, ghCheckbox2, ghCheckDisableAll;
static GHandle ghLabel1;
static GHandle ghRadio1, ghRadio2;
+static GHandle ghRadioBlack, ghRadioWhite, ghRadioYellow;
//static GHandle ghImage1;
+/* Some useful macros */
#define ScrWidth gdispGetWidth()
#define ScrHeight gdispGetHeight()
-#define TAB_HEIGHT 30
-#define BUTTON_WIDTH 50
-#define BUTTON_HEIGHT 30
-#define SLIDER_WIDTH 20
-#define CHECKBOX_WIDTH 80
-#define CHECKBOX_HEIGHT 20
-#define RADIO_WIDTH 50
-#define RADIO_HEIGHT 20
-#define GROUP_TABS 0
-#define GROUP_R1R2 1
-
-static GHandle createTab(GWidgetInit *pwi) {
- GHandle gh;
-
- gh = gwinCreateRadio(NULL, pwi, GROUP_TABS);
- gwinSetCustomDraw(gh, gwinRadioDraw_Tab, 0);
- gwinSetVisible(gh, TRUE);
- return gh;
+#define TAB_HEIGHT 30
+#define LABEL_HEIGHT 40
+#define BUTTON_WIDTH 50
+#define BUTTON_HEIGHT 30
+#define SLIDER_WIDTH 20
+#define CHECKBOX_WIDTH 80
+#define CHECKBOX_HEIGHT 20
+#define RADIO_WIDTH 50
+#define RADIO_HEIGHT 20
+#define COLOR_WIDTH 80
+#define DISABLEALL_WIDTH 100
+#define GROUP_TABS 0
+#define GROUP_YESNO 1
+#define GROUP_COLORS 2
+
+/**
+ * Create all the widgets.
+ * With the exception of the Tabs they are all created invisible.
+ */
+static void createWidgets(void) {
+ GWidgetInit wi;
+
+ wi.customDraw = 0; wi.customParam = 0; wi.customStyle = 0;
+
+ // Create the Tabs
+ wi.g.show = TRUE; wi.customDraw = gwinRadioDraw_Tab;
+ wi.g.width = ScrWidth/6; wi.g.height = TAB_HEIGHT; wi.g.y = 0;
+ wi.g.x = 0*wi.g.width; wi.text = "Buttons"; ghTabButtons = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+ wi.g.x = 1*wi.g.width; wi.text = "Sliders"; ghTabSliders = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+ wi.g.x = 2*wi.g.width; wi.text = "Checkbox"; ghTabCheckboxes = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+ wi.g.x = 3*wi.g.width; wi.text = "Radios"; ghTabRadios = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+ wi.g.x = 4*wi.g.width; wi.text = "Labels"; ghTabLabels = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+ wi.g.x = 5*wi.g.width; wi.text = "Images"; ghTabImages = gwinRadioCreate(NULL, &wi, GROUP_TABS);
+
+ // Buttons
+ wi.g.show = FALSE; wi.customDraw = 0;
+ wi.g.width = BUTTON_WIDTH; wi.g.height = BUTTON_HEIGHT; wi.g.y = TAB_HEIGHT+5;
+ wi.g.x = 0+0*(BUTTON_WIDTH+1); wi.text = "B1"; ghButton1 = gwinButtonCreate(NULL, &wi);
+ wi.g.x = 0+1*(BUTTON_WIDTH+1); wi.text = "B2"; ghButton2 = gwinButtonCreate(NULL, &wi);
+ wi.g.x = 0+2*(BUTTON_WIDTH+1); wi.text = "B3"; ghButton3 = gwinButtonCreate(NULL, &wi);
+ wi.g.x = 0+3*(BUTTON_WIDTH+1); wi.text = "B4"; ghButton4 = gwinButtonCreate(NULL, &wi);
+
+ // Horizontal Sliders
+ wi.g.width = ScrWidth/2-2; wi.g.height = SLIDER_WIDTH; wi.g.x = ScrWidth/2+1;
+ wi.g.y = ScrHeight/2-2*(SLIDER_WIDTH+1); wi.text = "S1"; ghSlider1 = gwinSliderCreate(NULL, &wi);
+ wi.g.y = ScrHeight/2-1*(SLIDER_WIDTH+1); wi.text = "S2"; ghSlider2 = gwinSliderCreate(NULL, &wi);
+
+ // Vertical Sliders
+ wi.g.width = SLIDER_WIDTH; wi.g.height = ScrHeight/2-2; wi.g.y = ScrHeight/2+1;
+ wi.g.x = 0+0*(SLIDER_WIDTH+1); wi.text = "S3"; ghSlider3 = gwinSliderCreate(NULL, &wi);
+ wi.g.x = 0+1*(SLIDER_WIDTH+1); wi.text = "S4"; ghSlider4 = gwinSliderCreate(NULL, &wi);
+
+ // Checkboxes - for the 2nd checkbox we apply special drawing before making it visible
+ wi.g.width = CHECKBOX_WIDTH; wi.g.height = CHECKBOX_HEIGHT; wi.g.x = 0;
+ wi.g.y = TAB_HEIGHT+5+0*(CHECKBOX_HEIGHT+1); wi.text = "C1"; ghCheckbox1 = gwinCheckboxCreate(NULL, &wi);
+ wi.customDraw = gwinCheckboxDraw_CheckOnRight;
+ wi.g.y = TAB_HEIGHT+5+1*(CHECKBOX_HEIGHT+1); wi.text = "C2"; ghCheckbox2 = gwinCheckboxCreate(NULL, &wi);
+ wi.customDraw = 0; wi.g.width = DISABLEALL_WIDTH;
+ wi.g.y = TAB_HEIGHT+5+2*(CHECKBOX_HEIGHT+1); wi.text = "Disable All"; ghCheckDisableAll = gwinCheckboxCreate(NULL, &wi);
+
+ // Labels
+ wi.g.width = 0; wi.g.height = LABEL_HEIGHT; // dynamic width, fixed height
+ wi.g.y = TAB_HEIGHT+5+2*(CHECKBOX_HEIGHT+1); wi.text = "Label"; ghLabel1 = gwinLabelCreate(NULL, &wi);
+
+ // Radio Buttons
+ wi.g.width = RADIO_WIDTH; wi.g.height = RADIO_HEIGHT; wi.g.y = TAB_HEIGHT+5;
+ wi.g.x = 0*wi.g.width; wi.text = "Yes"; ghRadio1 = gwinRadioCreate(NULL, &wi, GROUP_YESNO);
+ wi.g.x = 1*wi.g.width; wi.text = "No"; ghRadio2 = gwinRadioCreate(NULL, &wi, GROUP_YESNO);
+ wi.g.width = COLOR_WIDTH; wi.g.y += RADIO_HEIGHT+5;
+ wi.g.x = 0*wi.g.width; wi.text = "Black"; ghRadioBlack = gwinRadioCreate(NULL, &wi, GROUP_COLORS);
+ wi.g.x = 1*wi.g.width; wi.text = "White"; ghRadioWhite = gwinRadioCreate(NULL, &wi, GROUP_COLORS);
+ wi.g.x = 2*wi.g.width; wi.text = "Yellow"; ghRadioYellow = gwinRadioCreate(NULL, &wi, GROUP_COLORS);
+ gwinRadioPress(ghRadioWhite);
+
+ // Console - we apply some special colors before making it visible
+ wi.g.width = ScrWidth/2-1; wi.g.height = ScrHeight/2-1;
+ wi.g.x = ScrWidth/2+1; wi.g.y = ScrHeight/2+1;
+ ghConsole = gwinConsoleCreate(NULL, &wi.g);
+ gwinSetColor(ghConsole, Yellow);
+ gwinSetBgColor(ghConsole, Black);
+}
+
+/**
+ * Set the visibility of widgets based on which tab is selected.
+ */
+static void setTab(GHandle tab) {
+ /* Make sure everything is invisible first */
+ gwinSetVisible(ghButton1, FALSE); gwinSetVisible(ghButton2, FALSE);
+ gwinSetVisible(ghButton3, FALSE); gwinSetVisible(ghButton4, FALSE);
+ gwinSetVisible(ghSlider1, FALSE); gwinSetVisible(ghSlider2, FALSE);
+ gwinSetVisible(ghSlider3, FALSE); gwinSetVisible(ghSlider4, FALSE);
+ gwinSetVisible(ghCheckbox1, FALSE); gwinSetVisible(ghCheckbox2, FALSE); gwinSetVisible(ghCheckDisableAll, FALSE);
+ gwinSetVisible(ghLabel1, FALSE);
+ gwinSetVisible(ghRadio1, FALSE); gwinSetVisible(ghRadio2, FALSE);
+ gwinSetVisible(ghRadioWhite, FALSE);gwinSetVisible(ghRadioBlack, FALSE);gwinSetVisible(ghRadioYellow, FALSE);
+ //gwinSetVisible(ghImage1, FALSE);
+
+ /* Turn on widgets depending on the tab selected */
+ if (tab == ghTabButtons) {
+ gwinSetVisible(ghButton1, TRUE); gwinSetVisible(ghButton2, TRUE);
+ gwinSetVisible(ghButton3, TRUE); gwinSetVisible(ghButton4, TRUE);
+ } else if (tab == ghTabSliders) {
+ gwinSetVisible(ghSlider1, TRUE); gwinSetVisible(ghSlider2, TRUE);
+ gwinSetVisible(ghSlider3, TRUE); gwinSetVisible(ghSlider4, TRUE);
+ } else if (tab == ghTabCheckboxes) {
+ gwinSetVisible(ghCheckbox1, TRUE); gwinSetVisible(ghCheckbox2, TRUE); gwinSetVisible(ghCheckDisableAll, TRUE);
+ } else if (tab == ghTabLabels) {
+ gwinSetVisible(ghLabel1, TRUE);
+ } else if (tab == ghTabRadios) {
+ gwinSetVisible(ghRadio1, TRUE); gwinSetVisible(ghRadio2, TRUE);
+ gwinSetVisible(ghRadioWhite, TRUE); gwinSetVisible(ghRadioBlack, TRUE); gwinSetVisible(ghRadioYellow, TRUE);
+ } else if (tab == ghTabImages) {
+ //gwinSetVisible(ghImage1, TRUE);
+ }
+}
+
+/**
+ * Set the enabled state of every widget (except the tabs etc)
+ */
+static void setEnabled(bool_t ena) {
+ gwinSetEnabled(ghButton1, ena); gwinSetEnabled(ghButton2, ena);
+ gwinSetEnabled(ghButton3, ena); gwinSetEnabled(ghButton4, ena);
+ gwinSetEnabled(ghSlider1, ena); gwinSetEnabled(ghSlider2, ena);
+ gwinSetEnabled(ghSlider3, ena); gwinSetEnabled(ghSlider4, ena);
+ gwinSetEnabled(ghCheckbox1, ena); gwinSetEnabled(ghCheckbox2, ena); //gwinSetEnabled(ghCheckDisableAll, TRUE);
+ gwinSetEnabled(ghLabel1, ena);
+ gwinSetEnabled(ghRadio1, ena); gwinSetEnabled(ghRadio2, ena);
+ gwinSetEnabled(ghRadioWhite, ena); gwinSetEnabled(ghRadioBlack, ena); gwinSetEnabled(ghRadioYellow, ena);
+ //gwinSetEnabled(ghImage1, ena);
}
int main(void) {
@@ -66,16 +215,11 @@ int main(void) {
// Initialize the display
gfxInit();
- gdispClear(White);
// Set the widget defaults
gwinSetDefaultFont(gdispOpenFont("UI2"));
- gwinSetDefaultColor(Black);
- gwinSetDefaultBgColor(White);
-
- // We want to listen for widget events
- geventListenerInit(&gl);
- gwinAttachListener(&gl);
+ gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE);
+ gdispClear(White);
// Connect the mouse
#if GINPUT_NEED_MOUSE
@@ -83,59 +227,9 @@ int main(void) {
#endif
// Create the gwin windows/widgets
- {
- GWidgetInit wi;
-
- // Create the Tabs
- wi.g.show = FALSE; wi.g.width = ScrWidth/6; wi.g.height = TAB_HEIGHT; wi.g.y = 0;
- wi.g.x = 0*wi.g.width; wi.text = "Buttons"; ghTabButtons = createTab(&wi);
- wi.g.x = 1*wi.g.width; wi.text = "Sliders"; ghTabSliders = createTab(&wi);
- wi.g.x = 2*wi.g.width; wi.text = "Checkbox"; ghTabCheckboxes = createTab(&wi);
- wi.g.x = 3*wi.g.width; wi.text = "Labels"; ghTabLabels = createTab(&wi);
- wi.g.x = 4*wi.g.width; wi.text = "Radios"; ghTabRadios = createTab(&wi);
- wi.g.x = 5*wi.g.width; wi.text = "Images"; ghTabImages = createTab(&wi);
-
- // Buttons
- wi.g.width = BUTTON_WIDTH; wi.g.height = BUTTON_HEIGHT; wi.g.y = TAB_HEIGHT+5;
- wi.g.x = 0+0*(BUTTON_WIDTH+1); wi.text = "B1"; ghButton1 = gwinCreateButton(NULL, &wi);
- wi.g.x = 0+1*(BUTTON_WIDTH+1); wi.text = "B2"; ghButton2 = gwinCreateButton(NULL, &wi);
- wi.g.x = 0+2*(BUTTON_WIDTH+1); wi.text = "B3"; ghButton3 = gwinCreateButton(NULL, &wi);
- wi.g.x = 0+3*(BUTTON_WIDTH+1); wi.text = "B4"; ghButton4 = gwinCreateButton(NULL, &wi);
-
- // Horizontal Sliders
- wi.g.width = ScrWidth/2-2; wi.g.height = SLIDER_WIDTH; wi.g.x = ScrWidth/2+1;
- wi.g.y = ScrHeight/2-2*(SLIDER_WIDTH+1); wi.text = "S1"; ghSlider1 = gwinCreateSlider(NULL, &wi);
- wi.g.y = ScrHeight/2-1*(SLIDER_WIDTH+1); wi.text = "S2"; ghSlider2 = gwinCreateSlider(NULL, &wi);
-
- // Vertical Sliders
- wi.g.width = SLIDER_WIDTH; wi.g.height = ScrHeight/2-2; wi.g.y = ScrHeight/2+1;
- wi.g.x = 0+0*(SLIDER_WIDTH+1); wi.text = "S3"; ghSlider3 = gwinCreateSlider(NULL, &wi);
- wi.g.x = 0+1*(SLIDER_WIDTH+1); wi.text = "S4"; ghSlider4 = gwinCreateSlider(NULL, &wi);
-
- // Checkboxes - for the 2nd checkbox we apply special drawing before making it visible
- wi.g.width = CHECKBOX_WIDTH; wi.g.height = CHECKBOX_HEIGHT; wi.g.x = 0;
- wi.g.y = TAB_HEIGHT+5+0*(CHECKBOX_HEIGHT+1); wi.text = "C1"; ghCheckbox1 = gwinCreateCheckbox(NULL, &wi);
- wi.g.y = TAB_HEIGHT+5+1*(CHECKBOX_HEIGHT+1); wi.text = "C2"; ghCheckbox2 = gwinCreateCheckbox(NULL, &wi);
- gwinSetCustomDraw(ghCheckbox2, gwinCheckboxDraw_CheckOnRight, 0);
-
- // Labels
- wi.g.width = 0; // dynamic width
- wi.g.y = TAB_HEIGHT+5+2*(CHECKBOX_HEIGHT+1); wi.text = "L1"; ghLabel1 = gwinLabelCreate(NULL, &wi);
-
- // Radio Buttons
- wi.g.width = RADIO_WIDTH; wi.g.height = RADIO_HEIGHT; wi.g.y = TAB_HEIGHT+5;
- wi.g.x = 0*wi.g.width; wi.text = "Yes"; ghRadio1 = gwinCreateRadio(NULL, &wi, GROUP_R1R2);
- wi.g.x = 1*wi.g.width; wi.text = "No"; ghRadio2 = gwinCreateRadio(NULL, &wi, GROUP_R1R2);
-
- // Console - we apply some special colors before making it visible
- wi.g.width = ScrWidth/2-1; wi.g.height = ScrHeight/2-1;
- wi.g.x = ScrWidth/2+1; wi.g.y = ScrHeight/2+1;
- ghConsole = gwinCreateConsole(NULL, &wi.g);
- gwinSetColor(ghConsole, Yellow);
- gwinSetBgColor(ghConsole, Black);
- }
+ createWidgets();
- // Assign toggles and dials to the buttons & sliders etc.
+ // Assign toggles and dials to specific buttons & sliders etc.
#if GINPUT_NEED_TOGGLE
gwinAttachToggle(ghButton1, 0, 0);
gwinAttachToggle(ghButton2, 0, 1);
@@ -149,8 +243,12 @@ int main(void) {
gwinSetVisible(ghConsole, TRUE);
gwinClear(ghConsole);
- // Press the Buttons Tab
- gwinPressRadio(ghTabButtons);
+ // We want to listen for widget events
+ geventListenerInit(&gl);
+ gwinAttachListener(&gl);
+
+ // Press the Tab we want visible
+ gwinRadioPress(ghTabButtons);
while(1) {
// Get an Event
@@ -160,54 +258,68 @@ int main(void) {
case GEVENT_GWIN_BUTTON:
gwinPrintf(ghConsole, "Button %s\n", gwinGetText(((GEventGWinButton *)pe)->button));
break;
+
case GEVENT_GWIN_SLIDER:
gwinPrintf(ghConsole, "Slider %s=%d\n", gwinGetText(((GEventGWinSlider *)pe)->slider), ((GEventGWinSlider *)pe)->position);
break;
+
case GEVENT_GWIN_CHECKBOX:
gwinPrintf(ghConsole, "Checkbox %s=%s\n", gwinGetText(((GEventGWinCheckbox *)pe)->checkbox), ((GEventGWinCheckbox *)pe)->isChecked ? "Checked" : "UnChecked");
+
+ // If it is the Disable All checkbox then do that.
+ if (((GEventGWinCheckbox *)pe)->checkbox == ghCheckDisableAll) {
+ gwinPrintf(ghConsole, "%s All\n", ((GEventGWinCheckbox *)pe)->isChecked ? "Disable" : "Enable");
+ setEnabled(!((GEventGWinCheckbox *)pe)->isChecked);
+ }
break;
+
case GEVENT_GWIN_RADIO:
gwinPrintf(ghConsole, "Radio Group %u=%s\n", ((GEventGWinRadio *)pe)->group, gwinGetText(((GEventGWinRadio *)pe)->radio));
- // Is this the tab radio's
- if (((GEventGWinRadio *)pe)->group == GROUP_TABS) {
-
- // Do some special animation for Label1
- if (((GEventGWinRadio *)pe)->radio == ghTabLabels) {
- gwinSetBgColor(ghLabel1, gwinGetDefaultBgColor());
- gwinSetColor(ghLabel1, gwinGetDefaultColor());
- }
+ switch(((GEventGWinRadio *)pe)->group) {
+ case GROUP_TABS:
// Set control visibility depending on the tab selected
- gwinSetVisible(ghButton1, ((GEventGWinRadio *)pe)->radio == ghTabButtons);
- gwinSetVisible(ghButton2, ((GEventGWinRadio *)pe)->radio == ghTabButtons);
- gwinSetVisible(ghButton3, ((GEventGWinRadio *)pe)->radio == ghTabButtons);
- gwinSetVisible(ghButton4, ((GEventGWinRadio *)pe)->radio == ghTabButtons);
- gwinSetVisible(ghSlider1, ((GEventGWinRadio *)pe)->radio == ghTabSliders);
- gwinSetVisible(ghSlider2, ((GEventGWinRadio *)pe)->radio == ghTabSliders);
- gwinSetVisible(ghSlider3, ((GEventGWinRadio *)pe)->radio == ghTabSliders);
- gwinSetVisible(ghSlider4, ((GEventGWinRadio *)pe)->radio == ghTabSliders);
- gwinSetVisible(ghCheckbox1, ((GEventGWinRadio *)pe)->radio == ghTabCheckboxes);
- gwinSetVisible(ghCheckbox2, ((GEventGWinRadio *)pe)->radio == ghTabCheckboxes);
- gwinSetVisible(ghLabel1, ((GEventGWinRadio *)pe)->radio == ghTabLabels);
- gwinSetVisible(ghRadio1, ((GEventGWinRadio *)pe)->radio == ghTabRadios);
- gwinSetVisible(ghRadio2, ((GEventGWinRadio *)pe)->radio == ghTabRadios);
- //gwinSetVisible(ghImage1, ((GEventGWinRadio *)pe)->radio == ghTabImages);
-
- // Do some special animation for Label1
+ setTab(((GEventGWinRadio *)pe)->radio);
+
+ // Do some special animation for Label1 to demonstrate auto width sizing
if (((GEventGWinRadio *)pe)->radio == ghTabLabels) {
+ gwinPrintf(ghConsole, "Change Label Text\n");
gfxSleepMilliseconds(1000);
- gwinSetBgColor(ghLabel1, Blue);
- gwinSetColor(ghLabel1, Yellow);
gwinSetText(ghLabel1, "Very Big Label", FALSE);
gfxSleepMilliseconds(1000);
- gwinSetBgColor(ghLabel1, Yellow);
- gwinSetColor(ghLabel1, Red);
- gwinSetText(ghLabel1, "L1", FALSE);
+ gwinSetText(ghLabel1, "Label", FALSE);
}
+ break;
+
+ case GROUP_COLORS:
+ {
+ const GWidgetStyle *pstyle;
+
+ gwinPrintf(ghConsole, "Change Color Scheme\n");
+
+ if (((GEventGWinRadio *)pe)->radio == ghRadioYellow)
+ pstyle = &YellowWidgetStyle;
+ else if (((GEventGWinRadio *)pe)->radio == ghRadioBlack)
+ pstyle = &BlackWidgetStyle;
+ else
+ pstyle = &WhiteWidgetStyle;
+
+ // Clear the screen to the new color - we avoid the console area as it can't redraw itself
+ #if GDISP_NEED_CLIP
+ gdispUnsetClip();
+ #endif
+ gdispFillArea(0, 0, ScrWidth, ScrHeight/2, pstyle->background);
+ gdispFillArea(0, ScrHeight/2, ScrWidth/2, ScrHeight/2, pstyle->background);
+
+ // Update the style on all controls
+ gwinSetDefaultStyle(pstyle, TRUE);
+ }
+ break;
}
break;
+
default:
gwinPrintf(ghConsole, "Unknown %d\n", pe->type);
break;
diff --git a/demos/modules/gwin/widgets/readme.txt b/demos/modules/gwin/widgets/readme.txt
index 02d733e9..b5777061 100644
--- a/demos/modules/gwin/widgets/readme.txt
+++ b/demos/modules/gwin/widgets/readme.txt
@@ -1,6 +1,8 @@
-This demo supports input from both a mouse/touch and/or a dial input.
+This demo supports input from both a mouse/touch, toggles and/or a dial input.
If your platform does not support one or the other, turn it off in
gfxconf.h
Note that you will need to include the drivers into your project
makefile for whichever inputs you decide to use.
+
+For some fun have a play with the "colors" radio group and the "Disable All" checkbox.