RT1050 GUI demo using emWin library

Committer:
alejandroRL
Date:
Thu Sep 20 19:16:34 2018 +0000
Revision:
0:dd702039127a
emWin GUI Demo for RT1050

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alejandroRL 0:dd702039127a 1 /*
alejandroRL 0:dd702039127a 2 * The Clear BSD License
alejandroRL 0:dd702039127a 3 * Copyright (c) 2016, Freescale Semiconductor, Inc.
alejandroRL 0:dd702039127a 4 * Copyright 2016-2017 NXP
alejandroRL 0:dd702039127a 5 * All rights reserved.
alejandroRL 0:dd702039127a 6 *
alejandroRL 0:dd702039127a 7 * Redistribution and use in source and binary forms, with or without modification,
alejandroRL 0:dd702039127a 8 * are permitted (subject to the limitations in the disclaimer below) provided
alejandroRL 0:dd702039127a 9 * that the following conditions are met:
alejandroRL 0:dd702039127a 10 *
alejandroRL 0:dd702039127a 11 * o Redistributions of source code must retain the above copyright notice, this list
alejandroRL 0:dd702039127a 12 * of conditions and the following disclaimer.
alejandroRL 0:dd702039127a 13 *
alejandroRL 0:dd702039127a 14 * o Redistributions in binary form must reproduce the above copyright notice, this
alejandroRL 0:dd702039127a 15 * list of conditions and the following disclaimer in the documentation and/or
alejandroRL 0:dd702039127a 16 * other materials provided with the distribution.
alejandroRL 0:dd702039127a 17 *
alejandroRL 0:dd702039127a 18 * o Neither the name of the copyright holder nor the names of its
alejandroRL 0:dd702039127a 19 * contributors may be used to endorse or promote products derived from this
alejandroRL 0:dd702039127a 20 * software without specific prior written permission.
alejandroRL 0:dd702039127a 21 *
alejandroRL 0:dd702039127a 22 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
alejandroRL 0:dd702039127a 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
alejandroRL 0:dd702039127a 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
alejandroRL 0:dd702039127a 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
alejandroRL 0:dd702039127a 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
alejandroRL 0:dd702039127a 27 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
alejandroRL 0:dd702039127a 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
alejandroRL 0:dd702039127a 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
alejandroRL 0:dd702039127a 30 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
alejandroRL 0:dd702039127a 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
alejandroRL 0:dd702039127a 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
alejandroRL 0:dd702039127a 33 */
alejandroRL 0:dd702039127a 34
alejandroRL 0:dd702039127a 35 #include "mbed.h"
alejandroRL 0:dd702039127a 36
alejandroRL 0:dd702039127a 37 #include "GUI.h"
alejandroRL 0:dd702039127a 38 #include "BUTTON.h"
alejandroRL 0:dd702039127a 39 #include "CHECKBOX.h"
alejandroRL 0:dd702039127a 40 #include "SLIDER.h"
alejandroRL 0:dd702039127a 41 #include "DROPDOWN.h"
alejandroRL 0:dd702039127a 42 #include "RADIO.h"
alejandroRL 0:dd702039127a 43 #include "MULTIPAGE.h"
alejandroRL 0:dd702039127a 44
alejandroRL 0:dd702039127a 45 extern "C" {
alejandroRL 0:dd702039127a 46 #include "board.h"
alejandroRL 0:dd702039127a 47 #include "pin_mux.h"
alejandroRL 0:dd702039127a 48 #include "emwin_support.h"
alejandroRL 0:dd702039127a 49 }
alejandroRL 0:dd702039127a 50 /*******************************************************************************
alejandroRL 0:dd702039127a 51 * Definitions
alejandroRL 0:dd702039127a 52 ******************************************************************************/
alejandroRL 0:dd702039127a 53
alejandroRL 0:dd702039127a 54 #ifndef GUI_NORMAL_FONT
alejandroRL 0:dd702039127a 55 #define GUI_NORMAL_FONT (&GUI_Font16_ASCII)
alejandroRL 0:dd702039127a 56 #endif
alejandroRL 0:dd702039127a 57
alejandroRL 0:dd702039127a 58 #ifndef GUI_LARGE_FONT
alejandroRL 0:dd702039127a 59 #define GUI_LARGE_FONT (&GUI_Font16B_ASCII)
alejandroRL 0:dd702039127a 60 #endif
alejandroRL 0:dd702039127a 61
alejandroRL 0:dd702039127a 62 #ifndef GUI_SCALE_FACTOR
alejandroRL 0:dd702039127a 63 #define GUI_SCALE_FACTOR 1
alejandroRL 0:dd702039127a 64 #endif
alejandroRL 0:dd702039127a 65
alejandroRL 0:dd702039127a 66 #ifndef GUI_SCALE_FACTOR_X
alejandroRL 0:dd702039127a 67 #define GUI_SCALE_FACTOR_X GUI_SCALE_FACTOR
alejandroRL 0:dd702039127a 68 #endif
alejandroRL 0:dd702039127a 69
alejandroRL 0:dd702039127a 70 #ifndef GUI_SCALE_FACTOR_Y
alejandroRL 0:dd702039127a 71 #define GUI_SCALE_FACTOR_Y GUI_SCALE_FACTOR
alejandroRL 0:dd702039127a 72 #endif
alejandroRL 0:dd702039127a 73
alejandroRL 0:dd702039127a 74 #define GUI_SCALE(a) ((int)((a) * (GUI_SCALE_FACTOR)))
alejandroRL 0:dd702039127a 75 #define GUI_SCALE_X(x) ((int)((x) * (GUI_SCALE_FACTOR_X)))
alejandroRL 0:dd702039127a 76 #define GUI_SCALE_Y(y) ((int)((y) * (GUI_SCALE_FACTOR_Y)))
alejandroRL 0:dd702039127a 77 #define GUI_SCALE_COORDS(x, y) GUI_SCALE_X(x), GUI_SCALE_Y(y)
alejandroRL 0:dd702039127a 78 #define GUI_SCALE_RECT(x0, y0, xs, ys) GUI_SCALE_X(x0), GUI_SCALE_Y(y0), GUI_SCALE_X(xs), GUI_SCALE_Y(ys)
alejandroRL 0:dd702039127a 79
alejandroRL 0:dd702039127a 80 #define GUI_ID_DRAWAREA (GUI_ID_USER + 0)
alejandroRL 0:dd702039127a 81 #define GUI_ID_PAGEWIN1 (GUI_ID_USER + 1)
alejandroRL 0:dd702039127a 82 #define GUI_ID_PAGEWIN2 (GUI_ID_USER + 2)
alejandroRL 0:dd702039127a 83
alejandroRL 0:dd702039127a 84 /*******************************************************************************
alejandroRL 0:dd702039127a 85 * Variables
alejandroRL 0:dd702039127a 86 ******************************************************************************/
alejandroRL 0:dd702039127a 87 Serial pc(USBTX, USBRX);
alejandroRL 0:dd702039127a 88
alejandroRL 0:dd702039127a 89 /*******************************************************************************
alejandroRL 0:dd702039127a 90 * Prototypes
alejandroRL 0:dd702039127a 91 ******************************************************************************/
alejandroRL 0:dd702039127a 92 void BOARD_EnableLcdInterrupt(void);
alejandroRL 0:dd702039127a 93
alejandroRL 0:dd702039127a 94 /*******************************************************************************
alejandroRL 0:dd702039127a 95 * Code
alejandroRL 0:dd702039127a 96 ******************************************************************************/
alejandroRL 0:dd702039127a 97
alejandroRL 0:dd702039127a 98 static DROPDOWN_Handle hDropdown0;
alejandroRL 0:dd702039127a 99 static RADIO_Handle hRadio0;
alejandroRL 0:dd702039127a 100 static CHECKBOX_Handle hCheck0;
alejandroRL 0:dd702039127a 101 static WM_HWIN hDrawArea;
alejandroRL 0:dd702039127a 102
alejandroRL 0:dd702039127a 103 static SLIDER_Handle hSlider0;
alejandroRL 0:dd702039127a 104 static SLIDER_Handle hSlider1;
alejandroRL 0:dd702039127a 105 static SPINBOX_Handle hSpinbox0;
alejandroRL 0:dd702039127a 106 static PROGBAR_Handle hProgbar0;
alejandroRL 0:dd702039127a 107
alejandroRL 0:dd702039127a 108 static const GUI_COLOR color_list[] = {GUI_BLACK, GUI_YELLOW, GUI_ORANGE, GUI_RED,
alejandroRL 0:dd702039127a 109 GUI_MAGENTA, GUI_BLUE, GUI_CYAN, GUI_GREEN};
alejandroRL 0:dd702039127a 110 static const GUI_POINT triangle_points[] = {
alejandroRL 0:dd702039127a 111 {GUI_SCALE(0), GUI_SCALE(0)}, {GUI_SCALE(-50), GUI_SCALE(100)}, {GUI_SCALE(50), GUI_SCALE(100)}};
alejandroRL 0:dd702039127a 112
alejandroRL 0:dd702039127a 113 static void cbDrawArea(WM_MESSAGE *pMsg)
alejandroRL 0:dd702039127a 114 {
alejandroRL 0:dd702039127a 115 switch (pMsg->MsgId)
alejandroRL 0:dd702039127a 116 {
alejandroRL 0:dd702039127a 117 case WM_PAINT:
alejandroRL 0:dd702039127a 118 GUI_SetColor(color_list[DROPDOWN_GetSel(hDropdown0)]);
alejandroRL 0:dd702039127a 119 switch (RADIO_GetValue(hRadio0))
alejandroRL 0:dd702039127a 120 {
alejandroRL 0:dd702039127a 121 case 0:
alejandroRL 0:dd702039127a 122 if (CHECKBOX_GetState(hCheck0))
alejandroRL 0:dd702039127a 123 {
alejandroRL 0:dd702039127a 124 GUI_FillRect(GUI_SCALE_X(70) - GUI_SCALE(50), GUI_SCALE_Y(70) - GUI_SCALE(50),
alejandroRL 0:dd702039127a 125 GUI_SCALE_X(70) + GUI_SCALE(50), GUI_SCALE_Y(70) + GUI_SCALE(50));
alejandroRL 0:dd702039127a 126 }
alejandroRL 0:dd702039127a 127 else
alejandroRL 0:dd702039127a 128 {
alejandroRL 0:dd702039127a 129 GUI_DrawRect(GUI_SCALE_X(70) - GUI_SCALE(50), GUI_SCALE_Y(70) - GUI_SCALE(50),
alejandroRL 0:dd702039127a 130 GUI_SCALE_X(70) + GUI_SCALE(50), GUI_SCALE_Y(70) + GUI_SCALE(50));
alejandroRL 0:dd702039127a 131 }
alejandroRL 0:dd702039127a 132 break;
alejandroRL 0:dd702039127a 133 case 1:
alejandroRL 0:dd702039127a 134 if (CHECKBOX_GetState(hCheck0))
alejandroRL 0:dd702039127a 135 {
alejandroRL 0:dd702039127a 136 GUI_FillPolygon(triangle_points, 3, GUI_SCALE_COORDS(70, 20));
alejandroRL 0:dd702039127a 137 }
alejandroRL 0:dd702039127a 138 else
alejandroRL 0:dd702039127a 139 {
alejandroRL 0:dd702039127a 140 GUI_DrawPolygon(triangle_points, 3, GUI_SCALE_COORDS(70, 20));
alejandroRL 0:dd702039127a 141 }
alejandroRL 0:dd702039127a 142 break;
alejandroRL 0:dd702039127a 143 case 2:
alejandroRL 0:dd702039127a 144 if (CHECKBOX_GetState(hCheck0))
alejandroRL 0:dd702039127a 145 {
alejandroRL 0:dd702039127a 146 GUI_FillEllipse(GUI_SCALE_COORDS(70, 70), GUI_SCALE(50), GUI_SCALE(50));
alejandroRL 0:dd702039127a 147 }
alejandroRL 0:dd702039127a 148 else
alejandroRL 0:dd702039127a 149 {
alejandroRL 0:dd702039127a 150 GUI_DrawEllipse(GUI_SCALE_COORDS(70, 70), GUI_SCALE(50), GUI_SCALE(50));
alejandroRL 0:dd702039127a 151 }
alejandroRL 0:dd702039127a 152 break;
alejandroRL 0:dd702039127a 153 }
alejandroRL 0:dd702039127a 154 break;
alejandroRL 0:dd702039127a 155 default:
alejandroRL 0:dd702039127a 156 WM_DefaultProc(pMsg);
alejandroRL 0:dd702039127a 157 break;
alejandroRL 0:dd702039127a 158 }
alejandroRL 0:dd702039127a 159 }
alejandroRL 0:dd702039127a 160
alejandroRL 0:dd702039127a 161 static void cbPageWin1(WM_MESSAGE *pMsg)
alejandroRL 0:dd702039127a 162 {
alejandroRL 0:dd702039127a 163 int NCode;
alejandroRL 0:dd702039127a 164 int Id;
alejandroRL 0:dd702039127a 165
alejandroRL 0:dd702039127a 166 switch (pMsg->MsgId)
alejandroRL 0:dd702039127a 167 {
alejandroRL 0:dd702039127a 168 case WM_NOTIFY_PARENT:
alejandroRL 0:dd702039127a 169 Id = WM_GetId(pMsg->hWinSrc);
alejandroRL 0:dd702039127a 170 NCode = pMsg->Data.v;
alejandroRL 0:dd702039127a 171
alejandroRL 0:dd702039127a 172 switch (Id)
alejandroRL 0:dd702039127a 173 {
alejandroRL 0:dd702039127a 174 case GUI_ID_RADIO0:
alejandroRL 0:dd702039127a 175 switch (NCode)
alejandroRL 0:dd702039127a 176 {
alejandroRL 0:dd702039127a 177 case WM_NOTIFICATION_VALUE_CHANGED:
alejandroRL 0:dd702039127a 178 WM_InvalidateWindow(hDrawArea);
alejandroRL 0:dd702039127a 179 break;
alejandroRL 0:dd702039127a 180 }
alejandroRL 0:dd702039127a 181 break;
alejandroRL 0:dd702039127a 182
alejandroRL 0:dd702039127a 183 case GUI_ID_DROPDOWN0:
alejandroRL 0:dd702039127a 184 switch (NCode)
alejandroRL 0:dd702039127a 185 {
alejandroRL 0:dd702039127a 186 case WM_NOTIFICATION_SEL_CHANGED:
alejandroRL 0:dd702039127a 187 WM_InvalidateWindow(hDrawArea);
alejandroRL 0:dd702039127a 188 break;
alejandroRL 0:dd702039127a 189 }
alejandroRL 0:dd702039127a 190 break;
alejandroRL 0:dd702039127a 191
alejandroRL 0:dd702039127a 192 case GUI_ID_CHECK0:
alejandroRL 0:dd702039127a 193 switch (NCode)
alejandroRL 0:dd702039127a 194 {
alejandroRL 0:dd702039127a 195 case WM_NOTIFICATION_VALUE_CHANGED:
alejandroRL 0:dd702039127a 196 WM_InvalidateWindow(hDrawArea);
alejandroRL 0:dd702039127a 197 break;
alejandroRL 0:dd702039127a 198 }
alejandroRL 0:dd702039127a 199 break;
alejandroRL 0:dd702039127a 200 }
alejandroRL 0:dd702039127a 201 break;
alejandroRL 0:dd702039127a 202
alejandroRL 0:dd702039127a 203 default:
alejandroRL 0:dd702039127a 204 WM_DefaultProc(pMsg);
alejandroRL 0:dd702039127a 205 break;
alejandroRL 0:dd702039127a 206 }
alejandroRL 0:dd702039127a 207 }
alejandroRL 0:dd702039127a 208
alejandroRL 0:dd702039127a 209 static void cbPageWin2(WM_MESSAGE *pMsg)
alejandroRL 0:dd702039127a 210 {
alejandroRL 0:dd702039127a 211 int NCode;
alejandroRL 0:dd702039127a 212 int Id;
alejandroRL 0:dd702039127a 213
alejandroRL 0:dd702039127a 214 switch (pMsg->MsgId)
alejandroRL 0:dd702039127a 215 {
alejandroRL 0:dd702039127a 216 case WM_NOTIFY_PARENT:
alejandroRL 0:dd702039127a 217 Id = WM_GetId(pMsg->hWinSrc);
alejandroRL 0:dd702039127a 218 NCode = pMsg->Data.v;
alejandroRL 0:dd702039127a 219
alejandroRL 0:dd702039127a 220 switch (Id)
alejandroRL 0:dd702039127a 221 {
alejandroRL 0:dd702039127a 222 case GUI_ID_SLIDER0:
alejandroRL 0:dd702039127a 223 switch (NCode)
alejandroRL 0:dd702039127a 224 {
alejandroRL 0:dd702039127a 225 case WM_NOTIFICATION_VALUE_CHANGED:
alejandroRL 0:dd702039127a 226 PROGBAR_SetValue(hProgbar0, SLIDER_GetValue(hSlider0));
alejandroRL 0:dd702039127a 227 break;
alejandroRL 0:dd702039127a 228 }
alejandroRL 0:dd702039127a 229 break;
alejandroRL 0:dd702039127a 230
alejandroRL 0:dd702039127a 231 case GUI_ID_SLIDER1:
alejandroRL 0:dd702039127a 232 switch (NCode)
alejandroRL 0:dd702039127a 233 {
alejandroRL 0:dd702039127a 234 case WM_NOTIFICATION_VALUE_CHANGED:
alejandroRL 0:dd702039127a 235 SPINBOX_SetValue(hSpinbox0, SLIDER_GetValue(hSlider1));
alejandroRL 0:dd702039127a 236 break;
alejandroRL 0:dd702039127a 237 }
alejandroRL 0:dd702039127a 238 break;
alejandroRL 0:dd702039127a 239
alejandroRL 0:dd702039127a 240 case GUI_ID_SPINBOX0:
alejandroRL 0:dd702039127a 241 switch (NCode)
alejandroRL 0:dd702039127a 242 {
alejandroRL 0:dd702039127a 243 case WM_NOTIFICATION_VALUE_CHANGED:
alejandroRL 0:dd702039127a 244 SLIDER_SetValue(hSlider1, SPINBOX_GetValue(hSpinbox0));
alejandroRL 0:dd702039127a 245 break;
alejandroRL 0:dd702039127a 246 }
alejandroRL 0:dd702039127a 247 break;
alejandroRL 0:dd702039127a 248 }
alejandroRL 0:dd702039127a 249 break;
alejandroRL 0:dd702039127a 250
alejandroRL 0:dd702039127a 251 default:
alejandroRL 0:dd702039127a 252 WM_DefaultProc(pMsg);
alejandroRL 0:dd702039127a 253 break;
alejandroRL 0:dd702039127a 254 }
alejandroRL 0:dd702039127a 255 }
alejandroRL 0:dd702039127a 256
alejandroRL 0:dd702039127a 257 /*!
alejandroRL 0:dd702039127a 258 * @brief Main function
alejandroRL 0:dd702039127a 259 */
alejandroRL 0:dd702039127a 260 int main(void)
alejandroRL 0:dd702039127a 261 {
alejandroRL 0:dd702039127a 262 BOARD_InitPins();
alejandroRL 0:dd702039127a 263 BOARD_InitI2C1Pins();
alejandroRL 0:dd702039127a 264 BOARD_InitSemcPins();
alejandroRL 0:dd702039127a 265 BOARD_InitLcdifPixelClock();
alejandroRL 0:dd702039127a 266 BOARD_InitLcd();
alejandroRL 0:dd702039127a 267
alejandroRL 0:dd702039127a 268 pc.baud(115200);
alejandroRL 0:dd702039127a 269 pc.printf("GUI demo start.\r\n");
alejandroRL 0:dd702039127a 270
alejandroRL 0:dd702039127a 271 GUI_Init();
alejandroRL 0:dd702039127a 272
alejandroRL 0:dd702039127a 273 CHECKBOX_SetDefaultFont(GUI_NORMAL_FONT);
alejandroRL 0:dd702039127a 274 DROPDOWN_SetDefaultFont(GUI_NORMAL_FONT);
alejandroRL 0:dd702039127a 275 MULTIPAGE_SetDefaultFont(GUI_NORMAL_FONT);
alejandroRL 0:dd702039127a 276 RADIO_SetDefaultFont(GUI_NORMAL_FONT);
alejandroRL 0:dd702039127a 277
alejandroRL 0:dd702039127a 278 /* Create multipage widget */
alejandroRL 0:dd702039127a 279 MULTIPAGE_Handle hMultipage0;
alejandroRL 0:dd702039127a 280 hMultipage0 = MULTIPAGE_CreateEx(GUI_SCALE_RECT(10, 10, 300, 220), 0, WM_CF_SHOW, 0, GUI_ID_MULTIPAGE0);
alejandroRL 0:dd702039127a 281
alejandroRL 0:dd702039127a 282 WM_HWIN hPageWin;
alejandroRL 0:dd702039127a 283
alejandroRL 0:dd702039127a 284 /* Create window for page 1 and add it */
alejandroRL 0:dd702039127a 285 hPageWin = WINDOW_CreateEx(GUI_SCALE_RECT(0, 0, 300, 200), WM_HBKWIN, 0, 0, GUI_ID_PAGEWIN1, cbPageWin1);
alejandroRL 0:dd702039127a 286 MULTIPAGE_AddPage(hMultipage0, hPageWin, "Shapes & Colors");
alejandroRL 0:dd702039127a 287
alejandroRL 0:dd702039127a 288 /* Create widgets on page 1 */
alejandroRL 0:dd702039127a 289 hDropdown0 = DROPDOWN_CreateEx(GUI_SCALE_RECT(10, 10, 100, 80), hPageWin, WM_CF_SHOW, DROPDOWN_CF_AUTOSCROLLBAR,
alejandroRL 0:dd702039127a 290 GUI_ID_DROPDOWN0);
alejandroRL 0:dd702039127a 291 DROPDOWN_SetTextHeight(hDropdown0, GUI_SCALE_Y(20));
alejandroRL 0:dd702039127a 292 DROPDOWN_SetScrollbarWidth(hDropdown0, GUI_SCALE_X(20));
alejandroRL 0:dd702039127a 293 DROPDOWN_AddString(hDropdown0, "Black");
alejandroRL 0:dd702039127a 294 DROPDOWN_AddString(hDropdown0, "Yellow");
alejandroRL 0:dd702039127a 295 DROPDOWN_AddString(hDropdown0, "Orange");
alejandroRL 0:dd702039127a 296 DROPDOWN_AddString(hDropdown0, "Red");
alejandroRL 0:dd702039127a 297 DROPDOWN_AddString(hDropdown0, "Purple");
alejandroRL 0:dd702039127a 298 DROPDOWN_AddString(hDropdown0, "Blue");
alejandroRL 0:dd702039127a 299 DROPDOWN_AddString(hDropdown0, "Cyan");
alejandroRL 0:dd702039127a 300 DROPDOWN_AddString(hDropdown0, "Green");
alejandroRL 0:dd702039127a 301
alejandroRL 0:dd702039127a 302 hRadio0 =
alejandroRL 0:dd702039127a 303 RADIO_CreateEx(GUI_SCALE_RECT(10, 50, 100, 90), hPageWin, WM_CF_SHOW, 0, GUI_ID_RADIO0, 3, GUI_SCALE_Y(30));
alejandroRL 0:dd702039127a 304 RADIO_SetText(hRadio0, "Square", 0);
alejandroRL 0:dd702039127a 305 RADIO_SetText(hRadio0, "Triangle", 1);
alejandroRL 0:dd702039127a 306 RADIO_SetText(hRadio0, "Circle", 2);
alejandroRL 0:dd702039127a 307
alejandroRL 0:dd702039127a 308 hCheck0 = CHECKBOX_CreateEx(GUI_SCALE_RECT(10, 150, 100, 16), hPageWin, WM_CF_SHOW, 0, GUI_ID_CHECK0);
alejandroRL 0:dd702039127a 309 CHECKBOX_SetText(hCheck0, "Fill");
alejandroRL 0:dd702039127a 310
alejandroRL 0:dd702039127a 311 hDrawArea =
alejandroRL 0:dd702039127a 312 WINDOW_CreateEx(GUI_SCALE_RECT(130, 30, 140, 140), hPageWin, WM_CF_SHOW, 0, GUI_ID_DRAWAREA, cbDrawArea);
alejandroRL 0:dd702039127a 313
alejandroRL 0:dd702039127a 314 /* Create window for page 2 and add it */
alejandroRL 0:dd702039127a 315 hPageWin = WINDOW_CreateEx(GUI_SCALE_RECT(0, 0, 300, 200), WM_HBKWIN, 0, 0, GUI_ID_PAGEWIN2, cbPageWin2);
alejandroRL 0:dd702039127a 316 MULTIPAGE_AddPage(hMultipage0, hPageWin, "Sliders & spinbox");
alejandroRL 0:dd702039127a 317
alejandroRL 0:dd702039127a 318 /* Create widgets on page 2 */
alejandroRL 0:dd702039127a 319 hSlider0 = SLIDER_CreateEx(GUI_SCALE_RECT(60, 160, 200, 30), hPageWin, WM_CF_SHOW, 0, GUI_ID_SLIDER0);
alejandroRL 0:dd702039127a 320 SLIDER_SetWidth(hSlider0, GUI_SCALE(10));
alejandroRL 0:dd702039127a 321 SLIDER_SetValue(hSlider0, 50);
alejandroRL 0:dd702039127a 322
alejandroRL 0:dd702039127a 323 hSlider1 =
alejandroRL 0:dd702039127a 324 SLIDER_CreateEx(GUI_SCALE_RECT(10, 10, 30, 180), hPageWin, WM_CF_SHOW, SLIDER_CF_VERTICAL, GUI_ID_SLIDER1);
alejandroRL 0:dd702039127a 325 SLIDER_SetWidth(hSlider1, GUI_SCALE(10));
alejandroRL 0:dd702039127a 326 SLIDER_SetValue(hSlider1, 50);
alejandroRL 0:dd702039127a 327
alejandroRL 0:dd702039127a 328 hSpinbox0 = SPINBOX_CreateEx(GUI_SCALE_RECT(100, 80, 100, 50), hPageWin, WM_CF_SHOW, GUI_ID_SPINBOX0, 0, 100);
alejandroRL 0:dd702039127a 329 SPINBOX_SetFont(hSpinbox0, GUI_LARGE_FONT);
alejandroRL 0:dd702039127a 330 SPINBOX_SetValue(hSpinbox0, 50);
alejandroRL 0:dd702039127a 331
alejandroRL 0:dd702039127a 332 hProgbar0 =
alejandroRL 0:dd702039127a 333 PROGBAR_CreateEx(GUI_SCALE_RECT(60, 10, 200, 40), hPageWin, WM_CF_SHOW, PROGBAR_CF_HORIZONTAL, GUI_ID_PROGBAR0);
alejandroRL 0:dd702039127a 334 PROGBAR_SetFont(hProgbar0, GUI_LARGE_FONT);
alejandroRL 0:dd702039127a 335 PROGBAR_SetValue(hProgbar0, 50);
alejandroRL 0:dd702039127a 336
alejandroRL 0:dd702039127a 337 WM_SetDesktopColor(GUI_WHITE);
alejandroRL 0:dd702039127a 338 WM_Exec();
alejandroRL 0:dd702039127a 339
alejandroRL 0:dd702039127a 340 while (1)
alejandroRL 0:dd702039127a 341 {
alejandroRL 0:dd702039127a 342 /* Poll touch controller for update */
alejandroRL 0:dd702039127a 343 if (BOARD_Touch_Poll())
alejandroRL 0:dd702039127a 344 {
alejandroRL 0:dd702039127a 345 GUI_Exec();
alejandroRL 0:dd702039127a 346 }
alejandroRL 0:dd702039127a 347 }
alejandroRL 0:dd702039127a 348 }