From 1fbbc4d52bed0b8e4f3289bc008b3f0928a6b24f Mon Sep 17 00:00:00 2001 From: inmarket Date: Sat, 27 Jul 2013 22:25:20 +1000 Subject: Integrate changes from master branch --- demos/modules/gwin/widgets/gfxconf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'demos/modules/gwin') diff --git a/demos/modules/gwin/widgets/gfxconf.h b/demos/modules/gwin/widgets/gfxconf.h index fffe685d..f8d8fe5f 100644 --- a/demos/modules/gwin/widgets/gfxconf.h +++ b/demos/modules/gwin/widgets/gfxconf.h @@ -29,7 +29,7 @@ #ifndef _GFXCONF_H #define _GFXCONF_H -#define GFX_USE_OS_CHIBIOS TRUE +//#define GFX_USE_OS_CHIBIOS TRUE //#define GFX_USE_OS_WIN32 TRUE //#define GFX_USE_OS_POSIX TRUE -- cgit v1.2.3 From 984e14efb7ad257577db85fcdbed6c60618c1175 Mon Sep 17 00:00:00 2001 From: inmarket Date: Sat, 27 Jul 2013 22:26:16 +1000 Subject: List updates and add list demo - still work in progress --- demos/modules/gwin/list/gfxconf.h | 150 ++++++++++++++++++++++++++++++++++++++ demos/modules/gwin/list/main.c | 63 ++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 demos/modules/gwin/list/gfxconf.h create mode 100644 demos/modules/gwin/list/main.c (limited to 'demos/modules/gwin') diff --git a/demos/modules/gwin/list/gfxconf.h b/demos/modules/gwin/list/gfxconf.h new file mode 100644 index 00000000..895d7c49 --- /dev/null +++ b/demos/modules/gwin/list/gfxconf.h @@ -0,0 +1,150 @@ +/** + * This file has a different license to the rest of the GFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +/** + * Copy this file into your project directory and rename it as gfxconf.h + * Edit your copy to turn on the GFX features you want to use. + */ + +#ifndef _GFXCONF_H +#define _GFXCONF_H + +/* The operating system to use - one of these must be defined */ +//#define GFX_USE_OS_CHIBIOS FALSE +//#define GFX_USE_OS_WIN32 FALSE +//#define GFX_USE_OS_LINUX TRUE +//#define GFX_USE_OS_OSX FALSE + +/* GFX subsystems to turn on */ +#define GFX_USE_GDISP TRUE +#define GFX_USE_TDISP FALSE +#define GFX_USE_GWIN TRUE +#define GFX_USE_GEVENT TRUE +#define GFX_USE_GTIMER TRUE +#define GFX_USE_GQUEUE TRUE +#define GFX_USE_GINPUT TRUE +#define GFX_USE_GADC FALSE +#define GFX_USE_GAUDIN FALSE +#define GFX_USE_GAUDOUT FALSE +#define GFX_USE_GMISC FALSE + +/* Features for the GDISP subsystem */ +#define GDISP_NEED_VALIDATION TRUE +#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_TEXT TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE TRUE +#define GDISP_NEED_ARC FALSE +#define GDISP_NEED_CONVEX_POLYGON FALSE +#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD FALSE +#define GDISP_NEED_CONTROL FALSE +#define GDISP_NEED_QUERY FALSE +#define GDISP_NEED_IMAGE FALSE +#define GDISP_NEED_MULTITHREAD FALSE +#define GDISP_NEED_ASYNC FALSE +#define GDISP_NEED_MSGAPI FALSE + +/* GDISP - builtin fonts */ +#define GDISP_INCLUDE_FONT_SMALL FALSE +#define GDISP_INCLUDE_FONT_LARGER FALSE +#define GDISP_INCLUDE_FONT_UI1 FALSE +#define GDISP_INCLUDE_FONT_UI2 TRUE +#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE + +/* GDISP image decoders */ +#define GDISP_NEED_IMAGE_NATIVE FALSE +#define GDISP_NEED_IMAGE_GIF FALSE +#define GDISP_NEED_IMAGE_BMP FALSE +#define GDISP_NEED_IMAGE_JPG FALSE +#define GDISP_NEED_IMAGE_PNG FALSE +#define GDISP_NEED_IMAGE_ACCOUNTING FALSE + +/* Optional image support that can be turned off */ +/* + #define GDISP_NEED_IMAGE_BMP_1 TRUE + #define GDISP_NEED_IMAGE_BMP_4 TRUE + #define GDISP_NEED_IMAGE_BMP_4_RLE TRUE + #define GDISP_NEED_IMAGE_BMP_8 TRUE + #define GDISP_NEED_IMAGE_BMP_8_RLE TRUE + #define GDISP_NEED_IMAGE_BMP_16 TRUE + #define GDISP_NEED_IMAGE_BMP_24 TRUE + #define GDISP_NEED_IMAGE_BMP_32 TRUE +*/ + +/* Features for the TDISP subsystem. */ +#define TDISP_NEED_MULTITHREAD FALSE + +/* Features for the GWIN subsystem. */ +#define GWIN_NEED_WINDOWMANAGER TRUE +#define GWIN_NEED_CONSOLE FALSE +#define GWIN_NEED_GRAPH FALSE +#define GWIN_NEED_WIDGET TRUE +#define GWIN_NEED_BUTTON FALSE +#define GWIN_NEED_SLIDER FALSE +#define GWIN_NEED_CHECKBOX FALSE +#define GWIN_NEED_IMAGE FALSE +#define GWIN_NEED_RADIO FALSE +#define GWIN_NEED_LIST TRUE + +/* Features for the GEVENT subsystem. */ +#define GEVENT_ASSERT_NO_RESOURCE FALSE + +/* Features for the GTIMER subsystem. */ +/* NONE */ + +/* Features for the GQUEUE subsystem. */ +#define GQUEUE_NEED_ASYNC TRUE +#define GQUEUE_NEED_GSYNC FALSE +#define GQUEUE_NEED_FSYNC FALSE + +/* Features for the GINPUT subsystem. */ +#define GINPUT_NEED_MOUSE TRUE +#define GINPUT_NEED_KEYBOARD FALSE +#define GINPUT_NEED_TOGGLE FALSE +#define GINPUT_NEED_DIAL FALSE + +/* Features for the GADC subsystem. */ +/* NONE */ + +/* Features for the GAUDIN subsystem. */ +/* NONE */ + +/* Features for the GAUDOUT subsystem. */ +/* NONE */ + +/* Features for the GMISC subsystem. */ +#define GMISC_NEED_ARRAYOPS FALSE +#define GMISC_NEED_FASTTRIG FALSE +#define GMISC_NEED_FIXEDTRIG FALSE + +/* Optional Parameters for various subsystems */ +/* + #define GDISP_MAX_FONT_HEIGHT 16 + #define GEVENT_MAXIMUM_SIZE 32 + #define GEVENT_MAX_SOURCE_LISTENERS 32 + #define GTIMER_THREAD_WORKAREA_SIZE 512 + #define GADC_MAX_LOWSPEED_DEVICES 4 + #define GWIN_BUTTON_LAZY_RELEASE FALSE + #define GWIN_CONSOLE_USE_BASESTREAM FALSE + #define GWIN_CONSOLE_USE_FLOAT FALSE + #define GWIN_NEED_IMAGE_ANIMATION FALSE +*/ + +/* Optional Low Level Driver Definitions */ +/* + #define GDISP_USE_CUSTOM_BOARD FALSE + #define GDISP_SCREEN_WIDTH 320 + #define GDISP_SCREEN_HEIGHT 240 + #define GDISP_USE_FSMC + #define GDISP_USE_GPIO + #define TDISP_COLUMNS 16 + #define TDISP_ROWS 2 +*/ + +#endif /* _GFXCONF_H */ diff --git a/demos/modules/gwin/list/main.c b/demos/modules/gwin/list/main.c new file mode 100644 index 00000000..35847be0 --- /dev/null +++ b/demos/modules/gwin/list/main.c @@ -0,0 +1,63 @@ +#include "gfx.h" + +static GListener gl; +static GHandle ghList1; + +static void createWidgets(void) { + GWidgetInit wi; + + // Apply some default values for GWIN + wi.customDraw = 0; + wi.customParam = 0; + wi.customStyle = 0; + wi.g.show = TRUE; + + // Apply the list parameters + wi.g.width = 300; + wi.g.height = 200; + wi.g.y = 10; + wi.g.x = 10; + wi.text = "List Name"; + + // Create the actual list + ghList1 = gwinListCreate(NULL, &wi); +} + +int main(void) { + GEvent* pe; + + // Initialize the display + gfxInit(); + + // Set the widget defaults + gwinSetDefaultFont(gdispOpenFont("UI2")); + gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE); + gdispClear(White); + + // Attach the mouse input + gwinAttachMouse(0); + + // create the widget + createWidgets(); + + // We want to listen for widget events + geventListenerInit(&gl); + gwinAttachListener(&gl); + + // Add some items to the list widget + gwinListAddItem(ghList1, "Item 0", TRUE); + gwinListAddItem(ghList1, "Item 1", TRUE); + gwinListAddItem(ghList1, "Item 2", TRUE); + gwinListAddItem(ghList1, "Item 3", TRUE); + gwinListAddItem(ghList1, "Item 4", TRUE); + + gwinRedraw(ghList1); + + while(1) { + // Get an Event + pe = geventEventWait(&gl, TIME_INFINITE); + + } + + return 0; +} -- cgit v1.2.3 From 06d339456e64f6257bd72eb9343d7c899ea0b20b Mon Sep 17 00:00:00 2001 From: inmarket Date: Thu, 1 Aug 2013 14:50:40 +1000 Subject: Update gwin widgets and lists demos --- demos/modules/gwin/list/gfxconf.h | 2 +- demos/modules/gwin/list/main.c | 31 ++++++++++++++++++----------- demos/modules/gwin/widgets/gfxconf.h | 1 + demos/modules/gwin/widgets/main.c | 38 ++++++++++++++++++++++++++++++++---- 4 files changed, 56 insertions(+), 16 deletions(-) (limited to 'demos/modules/gwin') diff --git a/demos/modules/gwin/list/gfxconf.h b/demos/modules/gwin/list/gfxconf.h index 895d7c49..cf5f8690 100644 --- a/demos/modules/gwin/list/gfxconf.h +++ b/demos/modules/gwin/list/gfxconf.h @@ -40,7 +40,7 @@ #define GDISP_NEED_CIRCLE TRUE #define GDISP_NEED_ELLIPSE TRUE #define GDISP_NEED_ARC FALSE -#define GDISP_NEED_CONVEX_POLYGON FALSE +#define GDISP_NEED_CONVEX_POLYGON TRUE #define GDISP_NEED_SCROLL FALSE #define GDISP_NEED_PIXELREAD FALSE #define GDISP_NEED_CONTROL FALSE diff --git a/demos/modules/gwin/list/main.c b/demos/modules/gwin/list/main.c index 35847be0..a3a17250 100644 --- a/demos/modules/gwin/list/main.c +++ b/demos/modules/gwin/list/main.c @@ -10,11 +10,11 @@ static void createWidgets(void) { wi.customDraw = 0; wi.customParam = 0; wi.customStyle = 0; - wi.g.show = TRUE; + wi.g.show = FALSE; // Apply the list parameters - wi.g.width = 300; - wi.g.height = 200; + wi.g.width = 100; + wi.g.height = 80; wi.g.y = 10; wi.g.x = 10; wi.text = "List Name"; @@ -32,7 +32,7 @@ int main(void) { // Set the widget defaults gwinSetDefaultFont(gdispOpenFont("UI2")); gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE); - gdispClear(White); + gdispClear(Red); // Attach the mouse input gwinAttachMouse(0); @@ -45,13 +45,22 @@ int main(void) { gwinAttachListener(&gl); // Add some items to the list widget - gwinListAddItem(ghList1, "Item 0", TRUE); - gwinListAddItem(ghList1, "Item 1", TRUE); - gwinListAddItem(ghList1, "Item 2", TRUE); - gwinListAddItem(ghList1, "Item 3", TRUE); - gwinListAddItem(ghList1, "Item 4", TRUE); - - gwinRedraw(ghList1); + gwinListAddItem(ghList1, "Item 0", FALSE); + gwinListAddItem(ghList1, "Item 1", FALSE); + gwinListAddItem(ghList1, "Item 2", FALSE); + gwinListAddItem(ghList1, "Item 3", FALSE); + gwinListAddItem(ghList1, "Item 4", FALSE); + gwinListAddItem(ghList1, "Item 5", FALSE); + gwinListAddItem(ghList1, "Item 6", FALSE); + gwinListAddItem(ghList1, "Item 7", FALSE); + gwinListAddItem(ghList1, "Item 8", FALSE); + gwinListAddItem(ghList1, "Item 9", FALSE); + gwinListAddItem(ghList1, "Item 10", FALSE); + gwinListAddItem(ghList1, "Item 11", FALSE); + gwinListAddItem(ghList1, "Item 12", FALSE); + gwinListAddItem(ghList1, "Item 13", FALSE); + + gwinSetVisible(ghList1, TRUE); while(1) { // Get an Event diff --git a/demos/modules/gwin/widgets/gfxconf.h b/demos/modules/gwin/widgets/gfxconf.h index f8d8fe5f..10db7bbc 100644 --- a/demos/modules/gwin/widgets/gfxconf.h +++ b/demos/modules/gwin/widgets/gfxconf.h @@ -81,6 +81,7 @@ #define GWIN_NEED_LABEL TRUE #define GWIN_NEED_IMAGE TRUE #define GWIN_NEED_RADIO TRUE +#define GWIN_NEED_LIST TRUE #define GWIN_NEED_IMAGE_ANIMATION TRUE diff --git a/demos/modules/gwin/widgets/main.c b/demos/modules/gwin/widgets/main.c index bff842f4..f2323b5c 100644 --- a/demos/modules/gwin/widgets/main.c +++ b/demos/modules/gwin/widgets/main.c @@ -69,13 +69,14 @@ static const GWidgetStyle YellowWidgetStyle = { /* The variables we need */ static GListener gl; static GHandle ghConsole; -static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabImages; +static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabLists, ghTabImages; static GHandle ghButton1, ghButton2, ghButton3, ghButton4; static GHandle ghSlider1, ghSlider2, ghSlider3, ghSlider4; static GHandle ghCheckbox1, ghCheckbox2, ghCheckDisableAll; static GHandle ghLabel1; static GHandle ghRadio1, ghRadio2; static GHandle ghRadioBlack, ghRadioWhite, ghRadioYellow; +static GHandle ghList1; static GHandle ghImage1; /* Some useful macros */ @@ -86,6 +87,8 @@ static GHandle ghImage1; #define LABEL_HEIGHT 40 #define BUTTON_WIDTH 50 #define BUTTON_HEIGHT 30 +#define LIST_WIDTH 100 +#define LIST_HEIGHT 80 #define SLIDER_WIDTH 20 #define CHECKBOX_WIDTH 80 #define CHECKBOX_HEIGHT 20 @@ -108,13 +111,14 @@ static void createWidgets(void) { // 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.width = ScrWidth/7; 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); + wi.g.x = 4*wi.g.width; wi.text = "Lists"; ghTabLists = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 5*wi.g.width; wi.text = "Labels"; ghTabLabels = gwinRadioCreate(NULL, &wi, GROUP_TABS); + wi.g.x = 6*wi.g.width; wi.text = "Images"; ghTabImages = gwinRadioCreate(NULL, &wi, GROUP_TABS); // Buttons wi.g.show = FALSE; wi.customDraw = 0; @@ -156,6 +160,25 @@ static void createWidgets(void) { wi.g.x = 2*wi.g.width; wi.text = "Yellow"; ghRadioYellow = gwinRadioCreate(NULL, &wi, GROUP_COLORS); gwinRadioPress(ghRadioWhite); + // Lists + wi.g.show = FALSE; wi.customDraw = 0; + wi.g.width = LIST_WIDTH; wi.g.height = LIST_HEIGHT; wi.g.y = TAB_HEIGHT+5; + wi.g.x = 0+0*(LIST_WIDTH+1); wi.text = "L1"; ghList1 = gwinListCreate(NULL, &wi); + gwinListAddItem(ghList1, "Item 0", FALSE); + gwinListAddItem(ghList1, "Item 1", FALSE); + gwinListAddItem(ghList1, "Item 2", FALSE); + gwinListAddItem(ghList1, "Item 3", FALSE); + gwinListAddItem(ghList1, "Item 4", FALSE); + gwinListAddItem(ghList1, "Item 5", FALSE); + gwinListAddItem(ghList1, "Item 6", FALSE); + gwinListAddItem(ghList1, "Item 7", FALSE); + gwinListAddItem(ghList1, "Item 8", FALSE); + gwinListAddItem(ghList1, "Item 9", FALSE); + gwinListAddItem(ghList1, "Item 10", FALSE); + gwinListAddItem(ghList1, "Item 11", FALSE); + gwinListAddItem(ghList1, "Item 12", FALSE); + gwinListAddItem(ghList1, "Item 13", FALSE); + // Image wi.g.x = ScrWidth-210; wi.g.y = TAB_HEIGHT + 10; wi.g.width = 200; wi.g.height = 200; ghImage1 = gwinImageCreate(NULL, &wi.g); @@ -183,6 +206,7 @@ static void setTab(GHandle tab) { gwinSetVisible(ghLabel1, FALSE); gwinSetVisible(ghRadio1, FALSE); gwinSetVisible(ghRadio2, FALSE); gwinSetVisible(ghRadioWhite, FALSE);gwinSetVisible(ghRadioBlack, FALSE);gwinSetVisible(ghRadioYellow, FALSE); + gwinSetVisible(ghList1, FALSE); gwinSetVisible(ghImage1, FALSE); /* Turn on widgets depending on the tab selected */ @@ -199,6 +223,8 @@ static void setTab(GHandle tab) { } else if (tab == ghTabRadios) { gwinSetVisible(ghRadio1, TRUE); gwinSetVisible(ghRadio2, TRUE); gwinSetVisible(ghRadioWhite, TRUE); gwinSetVisible(ghRadioBlack, TRUE); gwinSetVisible(ghRadioYellow, TRUE); + } else if (tab == ghTabLists) { + gwinSetVisible(ghList1, TRUE); } else if (tab == ghTabImages) { gwinSetVisible(ghImage1, TRUE); } @@ -282,6 +308,10 @@ int main(void) { } break; + case GEVENT_GWIN_LIST: + gwinPrintf(ghConsole, "List %s Item %d\n", gwinGetText(((GEventGWinList *)pe)->list), ((GEventGWinList *)pe)->item); + break; + case GEVENT_GWIN_RADIO: gwinPrintf(ghConsole, "Radio Group %u=%s\n", ((GEventGWinRadio *)pe)->group, gwinGetText(((GEventGWinRadio *)pe)->radio)); -- cgit v1.2.3 From 2d27673f0f45a1b96aa7b9d8de61807fadb020bc Mon Sep 17 00:00:00 2001 From: inmarket Date: Thu, 1 Aug 2013 14:51:40 +1000 Subject: Update GWIN widget demo --- demos/modules/gwin/widgets/gfxconf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'demos/modules/gwin') diff --git a/demos/modules/gwin/widgets/gfxconf.h b/demos/modules/gwin/widgets/gfxconf.h index 10db7bbc..9ca5580b 100644 --- a/demos/modules/gwin/widgets/gfxconf.h +++ b/demos/modules/gwin/widgets/gfxconf.h @@ -47,7 +47,7 @@ #define GDISP_NEED_CIRCLE TRUE #define GDISP_NEED_ELLIPSE FALSE #define GDISP_NEED_ARC FALSE -#define GDISP_NEED_CONVEX_POLYGON FALSE +#define GDISP_NEED_CONVEX_POLYGON TRUE #define GDISP_NEED_SCROLL FALSE #define GDISP_NEED_PIXELREAD FALSE #define GDISP_NEED_CONTROL FALSE -- cgit v1.2.3