NXP
/
rt1050_emwin_gui_demo
RT1050 GUI demo using emWin library
source/main.cpp@0:dd702039127a, 2018-09-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |