NuMaker emWin HMI

Committer:
csyang2
Date:
Mon Mar 04 15:47:41 2024 +0800
Revision:
10:c8165817d92a
Parent:
6:d15151941247
Support NuMaker-IoT-M467

Who changed what in which revision?

UserRevisionLine numberNew contents of line
csyang2 1:c0f972361605 1 /*********************************************************************
csyang2 1:c0f972361605 2 * *
csyang2 1:c0f972361605 3 * SEGGER Microcontroller GmbH & Co. KG *
csyang2 1:c0f972361605 4 * Solutions for real time microcontroller applications *
csyang2 1:c0f972361605 5 * *
csyang2 1:c0f972361605 6 **********************************************************************
csyang2 1:c0f972361605 7 * *
csyang2 1:c0f972361605 8 * C-file generated by: *
csyang2 1:c0f972361605 9 * *
csyang2 1:c0f972361605 10 * GUI_Builder for emWin version 5.46 *
csyang2 1:c0f972361605 11 * Compiled Dec 12 2017, 16:38:40 *
csyang2 1:c0f972361605 12 * (c) 2017 Segger Microcontroller GmbH & Co. KG *
csyang2 1:c0f972361605 13 * *
csyang2 1:c0f972361605 14 **********************************************************************
csyang2 1:c0f972361605 15 * *
csyang2 1:c0f972361605 16 * Internet: www.segger.com Support: support@segger.com *
csyang2 1:c0f972361605 17 * *
csyang2 1:c0f972361605 18 **********************************************************************
csyang2 1:c0f972361605 19 */
csyang2 1:c0f972361605 20
csyang2 1:c0f972361605 21 // USER START (Optionally insert additional includes)
csyang2 1:c0f972361605 22 // USER END
csyang2 1:c0f972361605 23 #include "stdio.h"
csyang2 1:c0f972361605 24 #include "DIALOG.h"
csyang2 1:c0f972361605 25
csyang2 6:d15151941247 26 #include "NuMicro.h"
csyang2 1:c0f972361605 27 /* Scheduler include files. */
csyang2 1:c0f972361605 28 //#include "FreeRTOS.h"
csyang2 1:c0f972361605 29 //#include "task.h"
csyang2 1:c0f972361605 30 //#include "semphr.h"
csyang2 1:c0f972361605 31
csyang2 1:c0f972361605 32 //extern xSemaphoreHandle psGUISemaphore;
csyang2 1:c0f972361605 33 /*********************************************************************
csyang2 1:c0f972361605 34 *
csyang2 1:c0f972361605 35 * Defines
csyang2 1:c0f972361605 36 *
csyang2 1:c0f972361605 37 **********************************************************************
csyang2 1:c0f972361605 38 */
csyang2 1:c0f972361605 39 #define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
csyang2 1:c0f972361605 40 #define ID_BUTTON_0 (GUI_ID_USER + 0x05)
csyang2 1:c0f972361605 41 #define ID_BUTTON_1 (GUI_ID_USER + 0x06)
csyang2 1:c0f972361605 42 #define ID_BUTTON_2 (GUI_ID_USER + 0x07)
csyang2 1:c0f972361605 43 #define ID_BUTTON_3 (GUI_ID_USER + 0x08)
csyang2 1:c0f972361605 44 #define ID_EDIT_0 (GUI_ID_USER + 0x09)
csyang2 1:c0f972361605 45 #define ID_TEXT_0 (GUI_ID_USER + 0x0B)
csyang2 1:c0f972361605 46
csyang2 1:c0f972361605 47
csyang2 1:c0f972361605 48 // USER START (Optionally insert additional defines)
csyang2 1:c0f972361605 49 // USER END
csyang2 1:c0f972361605 50
csyang2 1:c0f972361605 51 /*********************************************************************
csyang2 1:c0f972361605 52 *
csyang2 1:c0f972361605 53 * Static data
csyang2 1:c0f972361605 54 *
csyang2 1:c0f972361605 55 **********************************************************************
csyang2 1:c0f972361605 56 */
csyang2 1:c0f972361605 57
csyang2 1:c0f972361605 58 // USER START (Optionally insert additional static data)
csyang2 1:c0f972361605 59 // USER END
csyang2 1:c0f972361605 60
csyang2 1:c0f972361605 61 /*********************************************************************
csyang2 1:c0f972361605 62 *
csyang2 1:c0f972361605 63 * _aDialogCreate
csyang2 1:c0f972361605 64 */
csyang2 1:c0f972361605 65 static const GUI_WIDGET_CREATE_INFO _aDialogCreate[7] =
csyang2 1:c0f972361605 66 {
csyang2 1:c0f972361605 67 { FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_0, 0, 0, 320, 240, 0, 0x0 },
csyang2 1:c0f972361605 68 { BUTTON_CreateIndirect, "+ 1", ID_BUTTON_0, 43, 38, 80, 20, 0, 0x0 },
csyang2 1:c0f972361605 69 { BUTTON_CreateIndirect, "+ 10", ID_BUTTON_1, 43, 77, 80, 20, 0, 0x0 },
csyang2 1:c0f972361605 70 { BUTTON_CreateIndirect, "- 1", ID_BUTTON_2, 45, 116, 80, 20, 0, 0x0 },
csyang2 1:c0f972361605 71 { BUTTON_CreateIndirect, "- 10", ID_BUTTON_3, 46, 158, 80, 20, 0, 0x0 },
csyang2 1:c0f972361605 72 { EDIT_CreateIndirect, "Edit", ID_EDIT_0, 204, 72, 80, 20, 0, 0x64 },
csyang2 1:c0f972361605 73 { TEXT_CreateIndirect, "Result :", ID_TEXT_0, 151, 74, 50, 20, 0, 0x0 },
csyang2 1:c0f972361605 74 // USER START (Optionally insert additional widgets)
csyang2 1:c0f972361605 75 // USER END
csyang2 1:c0f972361605 76 };
csyang2 1:c0f972361605 77
csyang2 1:c0f972361605 78 /*********************************************************************
csyang2 1:c0f972361605 79 *
csyang2 1:c0f972361605 80 * Static code
csyang2 1:c0f972361605 81 *
csyang2 1:c0f972361605 82 **********************************************************************
csyang2 1:c0f972361605 83 */
csyang2 1:c0f972361605 84
csyang2 1:c0f972361605 85 // USER START (Optionally insert additional static code)
csyang2 1:c0f972361605 86 // USER END
csyang2 1:c0f972361605 87
csyang2 1:c0f972361605 88 int value;
csyang2 1:c0f972361605 89 char sBuf[20];
csyang2 1:c0f972361605 90 /*********************************************************************
csyang2 1:c0f972361605 91 *
csyang2 1:c0f972361605 92 * _cbDialog
csyang2 1:c0f972361605 93 */
csyang2 1:c0f972361605 94 static void _cbDialog(WM_MESSAGE * pMsg)
csyang2 1:c0f972361605 95 {
csyang2 1:c0f972361605 96 WM_HWIN hItem;
csyang2 1:c0f972361605 97 int NCode;
csyang2 1:c0f972361605 98 int Id;
csyang2 1:c0f972361605 99 // USER START (Optionally insert additional variables)
csyang2 1:c0f972361605 100 // USER END
csyang2 1:c0f972361605 101
csyang2 1:c0f972361605 102 switch (pMsg->MsgId)
csyang2 1:c0f972361605 103 {
csyang2 1:c0f972361605 104 case WM_INIT_DIALOG:
csyang2 1:c0f972361605 105 //
csyang2 1:c0f972361605 106 // Initialization of 'Edit'
csyang2 1:c0f972361605 107 //
csyang2 1:c0f972361605 108 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
csyang2 1:c0f972361605 109 EDIT_SetText(hItem, "123");
csyang2 1:c0f972361605 110 value = 123;
csyang2 1:c0f972361605 111 // USER START (Optionally insert additional code for further widget initialization)
csyang2 1:c0f972361605 112 // USER END
csyang2 1:c0f972361605 113 break;
csyang2 1:c0f972361605 114 case WM_NOTIFY_PARENT:
csyang2 1:c0f972361605 115 Id = WM_GetId(pMsg->hWinSrc);
csyang2 1:c0f972361605 116 NCode = pMsg->Data.v;
csyang2 1:c0f972361605 117 switch(Id)
csyang2 1:c0f972361605 118 {
csyang2 1:c0f972361605 119 case ID_BUTTON_0: // Notifications sent by '+ 1'
csyang2 1:c0f972361605 120 switch(NCode)
csyang2 1:c0f972361605 121 {
csyang2 1:c0f972361605 122 case WM_NOTIFICATION_CLICKED:
csyang2 1:c0f972361605 123 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 124 // USER END
csyang2 1:c0f972361605 125 value += 1;
csyang2 1:c0f972361605 126 sprintf(sBuf,"%d ", value);
csyang2 1:c0f972361605 127 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
csyang2 1:c0f972361605 128 EDIT_SetText(hItem, sBuf);
csyang2 1:c0f972361605 129 break;
csyang2 1:c0f972361605 130 case WM_NOTIFICATION_RELEASED:
csyang2 1:c0f972361605 131 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 132 // USER END
csyang2 1:c0f972361605 133 break;
csyang2 1:c0f972361605 134 // USER START (Optionally insert additional code for further notification handling)
csyang2 1:c0f972361605 135 // USER END
csyang2 1:c0f972361605 136 }
csyang2 1:c0f972361605 137 break;
csyang2 1:c0f972361605 138 case ID_BUTTON_1: // Notifications sent by '+ 10'
csyang2 1:c0f972361605 139 switch(NCode)
csyang2 1:c0f972361605 140 {
csyang2 1:c0f972361605 141 case WM_NOTIFICATION_CLICKED:
csyang2 1:c0f972361605 142 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 143 // USER END
csyang2 1:c0f972361605 144 value += 10;
csyang2 1:c0f972361605 145 sprintf(sBuf,"%d ", value);
csyang2 1:c0f972361605 146 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
csyang2 1:c0f972361605 147 EDIT_SetText(hItem, sBuf);
csyang2 1:c0f972361605 148 break;
csyang2 1:c0f972361605 149 case WM_NOTIFICATION_RELEASED:
csyang2 1:c0f972361605 150 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 151 // USER END
csyang2 1:c0f972361605 152 break;
csyang2 1:c0f972361605 153 // USER START (Optionally insert additional code for further notification handling)
csyang2 1:c0f972361605 154 // USER END
csyang2 1:c0f972361605 155 }
csyang2 1:c0f972361605 156 break;
csyang2 1:c0f972361605 157 case ID_BUTTON_2: // Notifications sent by '- 1'
csyang2 1:c0f972361605 158 switch(NCode)
csyang2 1:c0f972361605 159 {
csyang2 1:c0f972361605 160 case WM_NOTIFICATION_CLICKED:
csyang2 1:c0f972361605 161 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 162 // USER END
csyang2 1:c0f972361605 163 value -= 1;
csyang2 1:c0f972361605 164 sprintf(sBuf,"%d ", value);
csyang2 1:c0f972361605 165 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
csyang2 1:c0f972361605 166 EDIT_SetText(hItem, sBuf);
csyang2 1:c0f972361605 167 break;
csyang2 1:c0f972361605 168 case WM_NOTIFICATION_RELEASED:
csyang2 1:c0f972361605 169 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 170 // USER END
csyang2 1:c0f972361605 171 break;
csyang2 1:c0f972361605 172 // USER START (Optionally insert additional code for further notification handling)
csyang2 1:c0f972361605 173 // USER END
csyang2 1:c0f972361605 174 }
csyang2 1:c0f972361605 175 break;
csyang2 1:c0f972361605 176 case ID_BUTTON_3: // Notifications sent by '- 10'
csyang2 1:c0f972361605 177 switch(NCode)
csyang2 1:c0f972361605 178 {
csyang2 1:c0f972361605 179 case WM_NOTIFICATION_CLICKED:
csyang2 1:c0f972361605 180 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 181 value -= 10;
csyang2 1:c0f972361605 182 sprintf(sBuf,"%d ", value);
csyang2 1:c0f972361605 183 hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
csyang2 1:c0f972361605 184 EDIT_SetText(hItem, sBuf);
csyang2 1:c0f972361605 185 // USER END
csyang2 1:c0f972361605 186 break;
csyang2 1:c0f972361605 187 case WM_NOTIFICATION_RELEASED:
csyang2 1:c0f972361605 188 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 189 // USER END
csyang2 1:c0f972361605 190 break;
csyang2 1:c0f972361605 191 // USER START (Optionally insert additional code for further notification handling)
csyang2 1:c0f972361605 192 // USER END
csyang2 1:c0f972361605 193 }
csyang2 1:c0f972361605 194 break;
csyang2 1:c0f972361605 195 case ID_EDIT_0: // Notifications sent by 'Edit'
csyang2 1:c0f972361605 196 switch(NCode)
csyang2 1:c0f972361605 197 {
csyang2 1:c0f972361605 198 case WM_NOTIFICATION_CLICKED:
csyang2 1:c0f972361605 199 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 200 // USER END
csyang2 1:c0f972361605 201 break;
csyang2 1:c0f972361605 202 case WM_NOTIFICATION_RELEASED:
csyang2 1:c0f972361605 203 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 204 // USER END
csyang2 1:c0f972361605 205 break;
csyang2 1:c0f972361605 206 case WM_NOTIFICATION_VALUE_CHANGED:
csyang2 1:c0f972361605 207 // USER START (Optionally insert code for reacting on notification message)
csyang2 1:c0f972361605 208 // USER END
csyang2 1:c0f972361605 209 break;
csyang2 1:c0f972361605 210 // USER START (Optionally insert additional code for further notification handling)
csyang2 1:c0f972361605 211 // USER END
csyang2 1:c0f972361605 212 }
csyang2 1:c0f972361605 213 break;
csyang2 1:c0f972361605 214 // USER START (Optionally insert additional code for further Ids)
csyang2 1:c0f972361605 215 // USER END
csyang2 1:c0f972361605 216 }
csyang2 1:c0f972361605 217 break;
csyang2 1:c0f972361605 218 // USER START (Optionally insert additional message handling)
csyang2 1:c0f972361605 219 // USER END
csyang2 1:c0f972361605 220 default:
csyang2 1:c0f972361605 221 WM_DefaultProc(pMsg);
csyang2 1:c0f972361605 222 // xSemaphoreTake(psGUISemaphore, 10/portTICK_RATE_MS);
csyang2 1:c0f972361605 223 break;
csyang2 1:c0f972361605 224 }
csyang2 1:c0f972361605 225 }
csyang2 1:c0f972361605 226
csyang2 1:c0f972361605 227 /*********************************************************************
csyang2 1:c0f972361605 228 *
csyang2 1:c0f972361605 229 * Public code
csyang2 1:c0f972361605 230 *
csyang2 1:c0f972361605 231 **********************************************************************
csyang2 1:c0f972361605 232 */
csyang2 1:c0f972361605 233 /*********************************************************************
csyang2 1:c0f972361605 234 *
csyang2 1:c0f972361605 235 * CreateFramewin
csyang2 1:c0f972361605 236 */
csyang2 1:c0f972361605 237 WM_HWIN CreateFramewin(void);
csyang2 1:c0f972361605 238 WM_HWIN CreateFramewin(void)
csyang2 1:c0f972361605 239 {
csyang2 1:c0f972361605 240 WM_HWIN hWin;
csyang2 1:c0f972361605 241
csyang2 1:c0f972361605 242 hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
csyang2 1:c0f972361605 243 return hWin;
csyang2 1:c0f972361605 244 }
csyang2 1:c0f972361605 245
csyang2 1:c0f972361605 246 // USER START (Optionally insert additional public code)
csyang2 1:c0f972361605 247 // USER END
csyang2 1:c0f972361605 248
csyang2 1:c0f972361605 249 /*************************** End of file ****************************/