diff options
Diffstat (limited to 'demos')
-rw-r--r-- | demos/modules/gwin/list/gfxconf.h | 3 | ||||
-rw-r--r-- | demos/modules/gwin/progressbar/main.c | 14 | ||||
-rw-r--r-- | demos/modules/gwin/widgets/gfxconf.h | 317 | ||||
-rw-r--r-- | demos/modules/gwin/widgets/main.c | 263 |
4 files changed, 434 insertions, 163 deletions
diff --git a/demos/modules/gwin/list/gfxconf.h b/demos/modules/gwin/list/gfxconf.h index 505ff2cc..0e6d6d11 100644 --- a/demos/modules/gwin/list/gfxconf.h +++ b/demos/modules/gwin/list/gfxconf.h @@ -45,7 +45,7 @@ #define GWIN_NEED_WIDGET TRUE #define GWIN_NEED_LABEL TRUE #define GWIN_NEED_LIST TRUE - #define GWIN_NEED_LIST_IMAGES TRUE + #define GWIN_NEED_LIST_IMAGES FALSE /////////////////////////////////////////////////////////////////////////// @@ -91,4 +91,3 @@ #define GFX_USE_GMISC FALSE #endif /* _GFXCONF_H */ - diff --git a/demos/modules/gwin/progressbar/main.c b/demos/modules/gwin/progressbar/main.c index 6217f4c1..960a3293 100644 --- a/demos/modules/gwin/progressbar/main.c +++ b/demos/modules/gwin/progressbar/main.c @@ -23,12 +23,20 @@ int main(void) { _createWidget(); +#if 1 gwinProgressbarSetResolution(ghProgressbar, 10); gwinProgressbarStart(ghProgressbar, 500); - //gwinProgressbarSetPosition(ghProgressbar, 42); - //gwinProgressbarIncrement(ghProgressbar); - //gwinProgressbarDecrement(ghProgressbar); + gfxSleepMilliseconds(3000); + gwinProgressbarReset(ghProgressbar); + + gfxSleepMilliseconds(3000); + gwinDestroy(ghProgressbar); +#else + gwinProgressbarSetPosition(ghProgressbar, 42); + gwinProgressbarIncrement(ghProgressbar); + gwinProgressbarDecrement(ghProgressbar); +#endif while (1) { gfxSleepMilliseconds(500); diff --git a/demos/modules/gwin/widgets/gfxconf.h b/demos/modules/gwin/widgets/gfxconf.h index 60de8d8b..ecabc27d 100644 --- a/demos/modules/gwin/widgets/gfxconf.h +++ b/demos/modules/gwin/widgets/gfxconf.h @@ -1,94 +1,241 @@ -/* - * Copyright (c) 2012, 2013, Joel Bodenmann aka Tectu <joel@unormal.org> - * Copyright (c) 2012, 2013, Andrew Hannam aka inmarket - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the <organization> nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. +/** + * This file has a different license to the rest of the uGFX 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 uGFX features you want to use. + * The values below are the defaults. You should delete anything + * you are leaving as default. * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * Please use spaces instead of tabs in this file. */ #ifndef _GFXCONF_H #define _GFXCONF_H /* The operating system to use. One of these must be defined - preferably in your Makefile */ -//#define GFX_USE_OS_CHIBIOS FALSE -//#define GFX_USE_OS_WIN32 FALSE -//#define GFX_USE_OS_LINUX FALSE -//#define GFX_USE_OS_OSX FALSE - -/* GFX sub-systems to turn on */ -#define GFX_USE_GDISP TRUE -#define GFX_USE_GWIN TRUE -#define GFX_USE_GINPUT TRUE -#define GFX_USE_GEVENT TRUE -#define GFX_USE_GTIMER TRUE - -/* Features for the GDISP sub-system. */ -#define GDISP_NEED_VALIDATION TRUE -#define GDISP_NEED_CLIP TRUE -#define GDISP_NEED_CIRCLE TRUE -#define GDISP_NEED_TEXT TRUE -#define GDISP_NEED_IMAGE TRUE -#define GDISP_NEED_CONVEX_POLYGON TRUE -#define GDISP_NEED_CONTROL TRUE -#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE - -/* The following are optional depending on your hardware */ -//#define GDISP_NEED_SCROLL TRUE -//#define GWIN_CONSOLE_USE_HISTORY TRUE -//#define GWIN_CONSOLE_HISTORY_AVERAGING TRUE -//#define GWIN_CONSOLE_HISTORY_ATCREATE TRUE - -/* GDISP fonts to include */ -#define GDISP_INCLUDE_FONT_UI2 TRUE - -/* GDISP image decoders */ -#define GDISP_NEED_IMAGE_GIF TRUE -#define GDISP_NEED_IMAGE_BMP TRUE - -/* Features for the GWIN subsystem. */ -#define GWIN_NEED_WINDOWMANAGER TRUE -#define GWIN_NEED_CONSOLE TRUE -#define GWIN_NEED_GRAPH TRUE -#define GWIN_NEED_WIDGET TRUE -#define GWIN_NEED_LABEL TRUE -#define GWIN_NEED_BUTTON TRUE -#define GWIN_NEED_SLIDER TRUE -#define GWIN_NEED_CHECKBOX TRUE -#define GWIN_NEED_IMAGE TRUE -#define GWIN_NEED_RADIO TRUE -#define GWIN_NEED_LIST TRUE - -/* Features for the GFILE subsystem. */ -#define GFX_USE_GFILE TRUE -#define GFILE_NEED_ROMFS TRUE -//#define GFILE_NEED_NATIVEFS TRUE - -/* Features for the GINPUT subsystem. */ -#define GINPUT_NEED_MOUSE TRUE - -/* Optional parameters for various subsystems */ -#define GWIN_NEED_LIST_IMAGES TRUE +//#define GFX_USE_OS_CHIBIOS TRUE +//#define GFX_USE_OS_WIN32 TRUE +//#define GFX_USE_OS_LINUX TRUE +//#define GFX_USE_OS_OSX TRUE + + +/////////////////////////////////////////////////////////////////////////// +// GDISP // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GDISP TRUE + +#define GDISP_NEED_AUTOFLUSH FALSE +#define GDISP_NEED_TIMERFLUSH FALSE +#define GDISP_NEED_VALIDATION TRUE +#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE FALSE +#define GDISP_NEED_ARC FALSE +#define GDISP_NEED_CONVEX_POLYGON TRUE +#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD FALSE +#define GDISP_NEED_CONTROL TRUE +#define GDISP_NEED_QUERY FALSE +#define GDISP_NEED_MULTITHREAD FALSE +#define GDISP_NEED_STREAMING FALSE +#define GDISP_NEED_TEXT TRUE + #define GDISP_NEED_ANTIALIAS TRUE + #define GDISP_NEED_UTF8 TRUE + #define GDISP_NEED_TEXT_KERNING TRUE + #define GDISP_INCLUDE_FONT_UI1 FALSE + #define GDISP_INCLUDE_FONT_UI2 TRUE + #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 FALSE + #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE + #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE + #define GDISP_INCLUDE_FONT_FIXED_5X8 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE + #define GDISP_INCLUDE_USER_FONTS FALSE + +#define GDISP_NEED_IMAGE TRUE + #define GDISP_NEED_IMAGE_NATIVE FALSE + #define GDISP_NEED_IMAGE_GIF TRUE + #define GDISP_NEED_IMAGE_BMP TRUE + #define GDISP_NEED_IMAGE_BMP_1 FALSE + #define GDISP_NEED_IMAGE_BMP_4 FALSE + #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE + #define GDISP_NEED_IMAGE_BMP_8 FALSE + #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE + #define GDISP_NEED_IMAGE_BMP_16 FALSE + #define GDISP_NEED_IMAGE_BMP_24 FALSE + #define GDISP_NEED_IMAGE_BMP_32 FALSE + #define GDISP_NEED_IMAGE_JPG FALSE + #define GDISP_NEED_IMAGE_PNG FALSE + #define GDISP_NEED_IMAGE_ACCOUNTING FALSE + +#define GDISP_NEED_STARTUP_LOGO FALSE + +#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE +#define GDISP_LINEBUF_SIZE 128 + +#define GDISP_TOTAL_DISPLAYS 1 + #if GDISP_TOTAL_DISPLAYS > 1 + #define GDISP_HARDWARE_STREAM_WRITE FALSE + #define GDISP_HARDWARE_STREAM_READ FALSE + #define GDISP_HARDWARE_STREAM_POS FALSE + #define GDISP_HARDWARE_DRAWPIXEL FALSE + #define GDISP_HARDWARE_CLEARS FALSE + #define GDISP_HARDWARE_FILLS FALSE + #define GDISP_HARDWARE_BITFILLS FALSE + #define GDISP_HARDWARE_SCROLL FALSE + #define GDISP_HARDWARE_PIXELREAD FALSE + #define GDISP_HARDWARE_CONTROL FALSE + #define GDISP_HARDWARE_QUERY FALSE + #define GDISP_HARDWARE_CLIP FALSE + #endif + +#define GDISP_TOTAL_CONTROLLERS 1 + #if GDISP_TOTAL_CONTROLLERS > 1 + #define GDISP_CONTROLLER_LIST GDISPVMT_Win32, GDISPVMT_Win32 + #define GDISP_CONTROLLER_DISPLAYS 1, 1 + #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 + #endif + +#define GDISP_USE_GFXNET FALSE + #define GDISP_GFXNET_PORT 13001 + #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE + #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE + #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GWIN // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GWIN TRUE + +#define GWIN_NEED_WINDOWMANAGER TRUE + +#define GWIN_NEED_CONSOLE TRUE + #define GWIN_CONSOLE_USE_HISTORY FALSE + #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE + #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE + #define GWIN_CONSOLE_ESCSEQ FALSE + #define GWIN_CONSOLE_USE_BASESTREAM FALSE + #define GWIN_CONSOLE_USE_FLOAT FALSE +#define GWIN_NEED_GRAPH TRUE + +#define GWIN_NEED_WIDGET TRUE + #define GWIN_NEED_LABEL TRUE + #define GWIN_NEED_BUTTON TRUE + #define GWIN_BUTTON_LAZY_RELEASE FALSE + #define GWIN_NEED_SLIDER TRUE + #define GWIN_NEED_CHECKBOX TRUE + #define GWIN_NEED_IMAGE TRUE + #define GWIN_NEED_IMAGE_ANIMATION TRUE + #define GWIN_NEED_RADIO TRUE + #define GWIN_NEED_LIST TRUE + #define GWIN_NEED_LIST_IMAGES TRUE + #define GWIN_NEED_PROGRESSBAR TRUE + + +/////////////////////////////////////////////////////////////////////////// +// GEVENT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GEVENT TRUE + +#define GEVENT_ASSERT_NO_RESOURCE FALSE +#define GEVENT_MAXIMUM_SIZE 32 +#define GEVENT_MAX_SOURCE_LISTENERS 32 -#endif /* _GFXCONF_H */ +/////////////////////////////////////////////////////////////////////////// +// GTIMER // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GTIMER TRUE + +#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY +#define GTIMER_THREAD_WORKAREA_SIZE 2048 + + +/////////////////////////////////////////////////////////////////////////// +// GQUEUE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GQUEUE TRUE + +#define GQUEUE_NEED_ASYNC TRUE +#define GQUEUE_NEED_GSYNC FALSE +#define GQUEUE_NEED_FSYNC FALSE +#define GQUEUE_NEED_BUFFERS FALSE + +/////////////////////////////////////////////////////////////////////////// +// GINPUT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GINPUT TRUE + +#define GINPUT_NEED_MOUSE TRUE +#define GINPUT_NEED_KEYBOARD FALSE +#define GINPUT_NEED_TOGGLE FALSE +#define GINPUT_NEED_DIAL FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GFILE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GFILE TRUE + +#define GFILE_NEED_PRINTG FALSE +#define GFILE_NEED_SCANG FALSE +#define GFILE_NEED_STRINGS FALSE +#define GFILE_NEED_STDIO FALSE + #define GFILE_ALLOW_FLOATS FALSE + #define GFILE_ALLOW_DEVICESPECIFIC FALSE + #define GFILE_MAX_GFILES 3 + +#define GFILE_NEED_MEMFS FALSE +#define GFILE_NEED_ROMFS TRUE +#define GFILE_NEED_RAMFS FALSE +#define GFILE_NEED_FATFS FALSE +#define GFILE_NEED_NATIVEFS FALSE +#define GFILE_NEED_CHBIOSFS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GADC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GADC FALSE + +#define GADC_MAX_LOWSPEED_DEVICES 4 + + +/////////////////////////////////////////////////////////////////////////// +// GAUDIO // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GAUDIO FALSE + #define GAUDIO_NEED_PLAY FALSE + #define GAUDIO_NEED_RECORD FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GMISC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GMISC FALSE + +#define GMISC_NEED_ARRAYOPS FALSE +#define GMISC_NEED_FASTTRIG FALSE +#define GMISC_NEED_FIXEDTRIG FALSE +#define GMISC_NEED_INVSQRT FALSE + #define GMISC_INVSQRT_MIXED_ENDIAN FALSE + #define GMISC_INVSQRT_REAL_SLOW FALSE + + +#endif /* _GFXCONF_H */ diff --git a/demos/modules/gwin/widgets/main.c b/demos/modules/gwin/widgets/main.c index 7c06f3bf..a9840174 100644 --- a/demos/modules/gwin/widgets/main.c +++ b/demos/modules/gwin/widgets/main.c @@ -73,15 +73,16 @@ static const GWidgetStyle YellowWidgetStyle = { /* The variables we need */ static GListener gl; static GHandle ghConsole; -static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabLists, ghTabImages; +static GHandle ghTabButtons, ghTabSliders, ghTabCheckboxes, ghTabLabels, ghTabRadios, ghTabLists, ghTabImages, ghTabProgressbar; 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, ghList2, ghList3; +static GHandle ghList1, ghList2, ghList3, ghList4; static GHandle ghImage1; +static GHandle ghProgressbar1; static gdispImage imgYesNo; /* Some useful macros */ @@ -117,86 +118,156 @@ static void createWidgets(void) { // Create the Tabs wi.g.show = TRUE; wi.customDraw = gwinRadioDraw_Tab; 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(0, &wi, GROUP_TABS); - wi.g.x = 1*wi.g.width; wi.text = "Sliders"; ghTabSliders = gwinRadioCreate(0, &wi, GROUP_TABS); - wi.g.x = 2*wi.g.width; wi.text = "Checkbox"; ghTabCheckboxes = gwinRadioCreate(0, &wi, GROUP_TABS); - wi.g.x = 3*wi.g.width; wi.text = "Radios"; ghTabRadios = gwinRadioCreate(0, &wi, GROUP_TABS); - wi.g.x = 4*wi.g.width; wi.text = "Lists"; ghTabLists = gwinRadioCreate(0, &wi, GROUP_TABS); - wi.g.x = 5*wi.g.width; wi.text = "Labels"; ghTabLabels = gwinRadioCreate(0, &wi, GROUP_TABS); - wi.g.x = 6*wi.g.width; wi.text = "Images"; ghTabImages = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 0*wi.g.width; wi.text = "Buttons"; + ghTabButtons = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 1*wi.g.width; wi.text = "Sliders"; + ghTabSliders = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 2*wi.g.width; wi.text = "Checkbox"; + ghTabCheckboxes = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 3*wi.g.width; wi.text = "Radios"; + ghTabRadios = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 4*wi.g.width; wi.text = "Lists"; + ghTabLists = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 5*wi.g.width; wi.text = "Labels"; + ghTabLabels = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.x = 6*wi.g.width; wi.text = "Images"; + ghTabImages = gwinRadioCreate(0, &wi, GROUP_TABS); + wi.g.y = TAB_HEIGHT; + wi.g.x = 0*wi.g.width; wi.text = "Progressbar"; + ghTabProgressbar = gwinRadioCreate(0, &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(0, &wi); - wi.g.x = 0+1*(BUTTON_WIDTH+1); wi.text = "B2"; ghButton2 = gwinButtonCreate(0, &wi); - wi.g.x = 0+2*(BUTTON_WIDTH+1); wi.text = "B3"; ghButton3 = gwinButtonCreate(0, &wi); - wi.g.x = 0+3*(BUTTON_WIDTH+1); wi.text = "B4"; ghButton4 = gwinButtonCreate(0, &wi); + wi.g.width = BUTTON_WIDTH; wi.g.height = BUTTON_HEIGHT; wi.g.y = 2*TAB_HEIGHT+10; + wi.g.x = 0+0*(BUTTON_WIDTH+1); wi.text = "B1"; + ghButton1 = gwinButtonCreate(0, &wi); + wi.g.x = 0+1*(BUTTON_WIDTH+1); wi.text = "B2"; + ghButton2 = gwinButtonCreate(0, &wi); + wi.g.x = 0+2*(BUTTON_WIDTH+1); wi.text = "B3"; + ghButton3 = gwinButtonCreate(0, &wi); + wi.g.x = 0+3*(BUTTON_WIDTH+1); wi.text = "B4"; + ghButton4 = gwinButtonCreate(0, &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(0, &wi); - wi.g.y = ScrHeight/2-1*(SLIDER_WIDTH+1); wi.text = "S2"; ghSlider2 = gwinSliderCreate(0, &wi); + wi.g.y = ScrHeight/2-2*(SLIDER_WIDTH+1); wi.text = "S1"; + ghSlider1 = gwinSliderCreate(0, &wi); + wi.g.y = ScrHeight/2-1*(SLIDER_WIDTH+1); wi.text = "S2"; + ghSlider2 = gwinSliderCreate(0, &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(0, &wi); - wi.g.x = 0+1*(SLIDER_WIDTH+1); wi.text = "S4"; ghSlider4 = gwinSliderCreate(0, &wi); + wi.g.x = 0+0*(SLIDER_WIDTH+1); wi.text = "S3"; + ghSlider3 = gwinSliderCreate(0, &wi); + wi.g.x = 0+1*(SLIDER_WIDTH+1); wi.text = "S4"; + ghSlider4 = gwinSliderCreate(0, &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(0, &wi); + wi.g.y = 2*TAB_HEIGHT+10+0*(CHECKBOX_HEIGHT+1); wi.text = "C1"; + ghCheckbox1 = gwinCheckboxCreate(0, &wi); wi.customDraw = gwinCheckboxDraw_CheckOnRight; - wi.g.y = TAB_HEIGHT+5+1*(CHECKBOX_HEIGHT+1); wi.text = "C2"; ghCheckbox2 = gwinCheckboxCreate(0, &wi); + wi.g.y = 2*TAB_HEIGHT+10+1*(CHECKBOX_HEIGHT+1); wi.text = "C2"; + ghCheckbox2 = gwinCheckboxCreate(0, &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(0, &wi); + wi.g.y = 2*TAB_HEIGHT+10+2*(CHECKBOX_HEIGHT+1); wi.text = "Disable All"; + ghCheckDisableAll = gwinCheckboxCreate(0, &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(0, &wi); + wi.g.y = 2*TAB_HEIGHT+10+2*(CHECKBOX_HEIGHT+1); wi.text = "Label"; + ghLabel1 = gwinLabelCreate(0, &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(0, &wi, GROUP_YESNO); - wi.g.x = 1*wi.g.width; wi.text = "No"; ghRadio2 = gwinRadioCreate(0, &wi, GROUP_YESNO); + wi.g.width = RADIO_WIDTH; wi.g.height = RADIO_HEIGHT; wi.g.y = 2*TAB_HEIGHT+10; + wi.g.x = 0*wi.g.width; wi.text = "Yes"; + ghRadio1 = gwinRadioCreate(0, &wi, GROUP_YESNO); + wi.g.x = 1*wi.g.width; wi.text = "No"; + ghRadio2 = gwinRadioCreate(0, &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(0, &wi, GROUP_COLORS); - wi.g.x = 1*wi.g.width; wi.text = "White"; ghRadioWhite = gwinRadioCreate(0, &wi, GROUP_COLORS); - wi.g.x = 2*wi.g.width; wi.text = "Yellow"; ghRadioYellow = gwinRadioCreate(0, &wi, GROUP_COLORS); + wi.g.x = 0*wi.g.width; wi.text = "Black"; + ghRadioBlack = gwinRadioCreate(0, &wi, GROUP_COLORS); + wi.g.x = 1*wi.g.width; wi.text = "White"; + ghRadioWhite = gwinRadioCreate(0, &wi, GROUP_COLORS); + wi.g.x = 2*wi.g.width; wi.text = "Yellow"; + ghRadioYellow = gwinRadioCreate(0, &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(0, &wi, FALSE); - 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); - wi.g.x = 0+1*(LIST_WIDTH+1); wi.text = "L2"; ghList2 = gwinListCreate(0, &wi, TRUE); - gwinListAddItem(ghList2, "Item 0", FALSE); gwinListAddItem(ghList2, "Item 1", FALSE); - gwinListAddItem(ghList2, "Item 2", FALSE); gwinListAddItem(ghList2, "Item 3", FALSE); - gwinListAddItem(ghList2, "Item 4", FALSE); gwinListAddItem(ghList2, "Item 5", FALSE); - gwinListAddItem(ghList2, "Item 6", FALSE); gwinListAddItem(ghList2, "Item 7", FALSE); - gwinListAddItem(ghList2, "Item 8", FALSE); gwinListAddItem(ghList2, "Item 9", FALSE); - gwinListAddItem(ghList2, "Item 10", FALSE); gwinListAddItem(ghList2, "Item 11", FALSE); - gwinListAddItem(ghList2, "Item 12", FALSE); gwinListAddItem(ghList2, "Item 13", FALSE); - wi.g.x = 0+2*(LIST_WIDTH+1); wi.text = "L3"; ghList3 = gwinListCreate(0, &wi, TRUE); - gwinListAddItem(ghList3, "Item 0", FALSE); gwinListAddItem(ghList3, "Item 1", FALSE); - gwinListAddItem(ghList3, "Item 2", FALSE); gwinListAddItem(ghList3, "Item 3", FALSE); + wi.g.width = LIST_WIDTH; wi.g.height = LIST_HEIGHT; wi.g.y = 2*TAB_HEIGHT+10; + wi.g.x = 0+0*(LIST_WIDTH+5); wi.text = "L1"; + ghList1 = gwinListCreate(0, &wi, FALSE); + 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); + wi.g.x = 0+1*(LIST_WIDTH+5); wi.text = "L2"; + ghList2 = gwinListCreate(0, &wi, TRUE); + gwinListAddItem(ghList2, "Item 0", FALSE); + gwinListAddItem(ghList2, "Item 1", FALSE); + gwinListAddItem(ghList2, "Item 2", FALSE); + gwinListAddItem(ghList2, "Item 3", FALSE); + gwinListAddItem(ghList2, "Item 4", FALSE); + gwinListAddItem(ghList2, "Item 5", FALSE); + gwinListAddItem(ghList2, "Item 6", FALSE); + gwinListAddItem(ghList2, "Item 7", FALSE); + gwinListAddItem(ghList2, "Item 8", FALSE); + gwinListAddItem(ghList2, "Item 9", FALSE); + gwinListAddItem(ghList2, "Item 10", FALSE); + gwinListAddItem(ghList2, "Item 11", FALSE); + gwinListAddItem(ghList2, "Item 12", FALSE); + gwinListAddItem(ghList2, "Item 13", FALSE); + wi.g.x = 0+2*(LIST_WIDTH+5); wi.text = "L3"; + ghList3 = gwinListCreate(0, &wi, TRUE); + gwinListAddItem(ghList3, "Item 0", FALSE); + gwinListAddItem(ghList3, "Item 1", FALSE); + gwinListAddItem(ghList3, "Item 2", FALSE); + gwinListAddItem(ghList3, "Item 3", FALSE); gdispImageOpenFile(&imgYesNo, "image_yesno.gif"); gwinListItemSetImage(ghList3, 1, &imgYesNo); gwinListItemSetImage(ghList3, 3, &imgYesNo); + wi.g.x = 0+3*(LIST_WIDTH+5); wi.text = "L2"; + ghList4 = gwinListCreate(0, &wi, TRUE); + gwinListAddItem(ghList4, "Item 0", FALSE); + gwinListAddItem(ghList4, "Item 1", FALSE); + gwinListAddItem(ghList4, "Item 2", FALSE); + gwinListAddItem(ghList4, "Item 3", FALSE); + gwinListAddItem(ghList4, "Item 4", FALSE); + gwinListAddItem(ghList4, "Item 5", FALSE); + gwinListAddItem(ghList4, "Item 6", FALSE); + gwinListAddItem(ghList4, "Item 7", FALSE); + gwinListAddItem(ghList4, "Item 8", FALSE); + gwinListAddItem(ghList4, "Item 9", FALSE); + gwinListAddItem(ghList4, "Item 10", FALSE); + gwinListAddItem(ghList4, "Item 11", FALSE); + gwinListAddItem(ghList4, "Item 12", FALSE); + gwinListAddItem(ghList4, "Item 13", FALSE); + gwinListSetScroll(ghList4, scrollSmooth); // Image - wi.g.x = ScrWidth-210; wi.g.y = TAB_HEIGHT + 10; wi.g.width = 200; wi.g.height = 200; + wi.g.x = ScrWidth-210; wi.g.y = 2*TAB_HEIGHT + 10; wi.g.width = 200; wi.g.height = 200; ghImage1 = gwinImageCreate(0, &wi.g); gwinImageOpenFile(ghImage1, "chibios.bmp"); gwinImageCache(ghImage1); + // Progressbar + wi.g.show = FALSE; wi.customDraw = 0; + wi.g.width = 200; wi.g.height = 20; wi.g.y = 2*TAB_HEIGHT+10; + wi.g.x = 20; wi.text = "Progressbar 1"; + ghProgressbar1 = gwinProgressbarCreate(0, &wi); + gwinProgressbarSetResolution(ghProgressbar1, 10); + // 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; @@ -210,35 +281,69 @@ static void createWidgets(void) { */ 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(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(ghList1, FALSE); gwinSetVisible(ghList2, FALSE); gwinSetVisible(ghList3, FALSE); + gwinSetVisible(ghRadio1, FALSE); + gwinSetVisible(ghRadio2, FALSE); + gwinSetVisible(ghRadioWhite, FALSE); + gwinSetVisible(ghRadioBlack, FALSE); + gwinSetVisible(ghRadioYellow, FALSE); + gwinSetVisible(ghList1, FALSE); + gwinSetVisible(ghList2, FALSE); + gwinSetVisible(ghList3, FALSE); + gwinSetVisible(ghList4, FALSE); gwinSetVisible(ghImage1, FALSE); + gwinSetVisible(ghProgressbar1, FALSE); + + // Stop the progress bar + gwinProgressbarStop(ghProgressbar1); + gwinProgressbarReset(ghProgressbar1); /* Turn on widgets depending on the tab selected */ if (tab == ghTabButtons) { - gwinSetVisible(ghButton1, TRUE); gwinSetVisible(ghButton2, TRUE); - gwinSetVisible(ghButton3, TRUE); gwinSetVisible(ghButton4, TRUE); + 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); + 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); + 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); + gwinSetVisible(ghRadio1, TRUE); + gwinSetVisible(ghRadio2, TRUE); + gwinSetVisible(ghRadioWhite, TRUE); + gwinSetVisible(ghRadioBlack, TRUE); + gwinSetVisible(ghRadioYellow, TRUE); } else if (tab == ghTabLists) { - gwinSetVisible(ghList1, TRUE); gwinSetVisible(ghList2, TRUE); gwinSetVisible(ghList3, TRUE); + gwinSetVisible(ghList1, TRUE); + gwinSetVisible(ghList2, TRUE); + gwinSetVisible(ghList3, TRUE); + gwinSetVisible(ghList4, TRUE); } else if (tab == ghTabImages) { gwinSetVisible(ghImage1, TRUE); + } else if (tab == ghTabProgressbar) { + gwinSetVisible(ghProgressbar1, TRUE); + + // Start the progress bar + gwinProgressbarStart(ghProgressbar1, 500); } } @@ -246,15 +351,27 @@ static void setTab(GHandle tab) { * 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(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(ghList1, ena); gwinSetEnabled(ghList2, ena); gwinSetEnabled(ghList3, ena); - gwinSetEnabled(ghRadioWhite, ena); gwinSetEnabled(ghRadioBlack, ena); gwinSetEnabled(ghRadioYellow, ena); + gwinSetEnabled(ghRadio1, ena); + gwinSetEnabled(ghRadio2, ena); + gwinSetEnabled(ghList1, ena); + gwinSetEnabled(ghList2, ena); + gwinSetEnabled(ghList3, ena); + gwinSetEnabled(ghList4, ena); + gwinSetEnabled(ghRadioWhite, ena); + gwinSetEnabled(ghRadioBlack, ena); + gwinSetEnabled(ghRadioYellow, ena); gwinSetEnabled(ghImage1, ena); } |