1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
31
32
35
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
77
78
79
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
103
114
115
120
121
122
123
124
125
126
127
128
132
136
137
138
143
154
155
160
161
162
163
164
165
166
167
168
172
176
177
178
183
194
195
200
201
202
203
204
205
206
207
208
212
216
217
218
223
234
235
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
292
309
312
313
314
315
316
323
328
329
332
333
/* ... */
#include "main.h"
#include "gardening_control_res.c"
/* ... */
/* ... */
Includes
static void Startup(WM_HWIN hWin, uint16_t xpos, uint16_t ypos);
Private function prototypes
K_ModuleItem_Typedef gardening_control_board =
{
5,
"garden control",
open_gardening,
0,
Startup,
NULL,
...}
;
Private typedef
#define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON_INFO_CLOSE (GUI_ID_USER + 0x03)
#define ID_BUTTON_CONTROL (GUI_ID_USER + 0x05)
#define ID_BUTTON_SPRINKLERS (GUI_ID_USER + 0x06)
#define ID_BUTTON_DROWISE (GUI_ID_USER + 0x07)
#define ID_TEXT_CONTROL (GUI_ID_USER + 0x09)
#define ID_TEXT_CONTROL2 (GUI_ID_USER + 0x0A)
#define ID_TEXT_CONTROL3 (GUI_ID_USER + 0x0B)
#define ID_TEXT_SPRINKLERS (GUI_ID_USER + 0x0C)
#define ID_TEXT_DROWISE (GUI_ID_USER + 0x0D)
#define ID_BUTTON_EXIT (GUI_ID_USER + 0x08)
11 defines
Private defines
static const GUI_WIDGET_CREATE_INFO _aDialog[] =
{
{ WINDOW_CreateIndirect, "", ID_WINDOW_0, 0, 0, 800, 480, 0, 0x64, 0 },
{ TEXT_CreateIndirect, "main", ID_TEXT_CONTROL, 80, 320, 100, 30, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "control", ID_TEXT_CONTROL2, 135, 320, 100, 30, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "(on/off)", ID_TEXT_CONTROL3, 100, 340, 100, 30, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "sprinklers", ID_TEXT_SPRINKLERS, 355, 320, 100, 30, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "drowise", ID_TEXT_DROWISE, 610, 320, 100, 30, 0, 0x0, 0 },
...};
Private variables
/* ... */
static void _OnPaint_exit(BUTTON_Handle hObj) {
GUI_SetBkColor(FRAMEWIN_GetDefaultClientColor());
GUI_Clear();
GUI_SetColor(GUI_STCOLOR_LIGHTBLUE);
GUI_AA_FillCircle(100, 0, 100);
GUI_SetBkColor(GUI_STCOLOR_LIGHTBLUE);
GUI_SetColor(GUI_WHITE);
GUI_SetFont(&GUI_FontLubalGraph32);
GUI_DispStringAt("Menu", 20, 20);
}{ ... }
/* ... */
static void _cbButton_exit(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
_OnPaint_exit(pMsg->hWin);
break;case WM_PAINT:
default:
BUTTON_Callback(pMsg);
break;default
}switch (pMsg->MsgId) { ... }
}{ ... }
/* ... */
static void _OnPaint_control(BUTTON_Handle hObj) {
int Index;
GUI_SetBkColor(FRAMEWIN_GetDefaultClientColor());
GUI_Clear();
Index = (WIDGET_GetState(hObj) & BUTTON_STATE_PRESSED) ? 1 : 0;
if(Index)
{
GUI_DrawBitmap(&bmdes_control_sub, 0, 0);
}if (Index) { ... }
else
{
GUI_DrawBitmap(&bmcontrol_sub, 0, 0);
}else { ... }
}{ ... }
/* ... */
static void _cbButton_control(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
_OnPaint_control(pMsg->hWin);
break;case WM_PAINT:
default:
BUTTON_Callback(pMsg);
break;default
}switch (pMsg->MsgId) { ... }
}{ ... }
/* ... */
static void _OnPaint_sprinklers(BUTTON_Handle hObj) {
int Index;
GUI_SetBkColor(FRAMEWIN_GetDefaultClientColor());
GUI_Clear();
Index = (WIDGET_GetState(hObj) & BUTTON_STATE_PRESSED) ? 1 : 0;
if(Index)
{
GUI_DrawBitmap(&bmdes_garden_sub, 0, 0);
}if (Index) { ... }
else
{
GUI_DrawBitmap(&bmgarden_sub, 0, 0);
}else { ... }
}{ ... }
/* ... */
static void _cbButton_sprinklers(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
_OnPaint_sprinklers(pMsg->hWin);
break;case WM_PAINT:
default:
BUTTON_Callback(pMsg);
break;default
}switch (pMsg->MsgId) { ... }
}{ ... }
/* ... */
static void _OnPaint_drowise(BUTTON_Handle hObj) {
int Index;
GUI_SetBkColor(FRAMEWIN_GetDefaultClientColor());
GUI_Clear();
Index = (WIDGET_GetState(hObj) & BUTTON_STATE_PRESSED) ? 1 : 0;
if(Index)
{
GUI_DrawBitmap(&bmdes_water_sub, 0, 0);
}if (Index) { ... }
else
{
GUI_DrawBitmap(&bmwater_sub, 0, 0);
}else { ... }
}{ ... }
/* ... */
static void _cbButton_drowise(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
_OnPaint_drowise(pMsg->hWin);
break;case WM_PAINT:
default:
BUTTON_Callback(pMsg);
break;default
}switch (pMsg->MsgId) { ... }
}{ ... }
/* ... */
static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int Id, NCode;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
hItem = BUTTON_CreateEx(700, 0, 100,100, pMsg->hWin, WM_CF_SHOW, 0, ID_BUTTON_EXIT);
WM_SetCallback(hItem, _cbButton_exit);
hItem = BUTTON_CreateEx(50, 140, 180, 180, pMsg->hWin, WM_CF_SHOW, 0, ID_BUTTON_CONTROL);
WM_SetCallback(hItem, _cbButton_control);
hItem = BUTTON_CreateEx(310, 140, 180, 180, pMsg->hWin, WM_CF_SHOW, 0, ID_BUTTON_SPRINKLERS);
WM_SetCallback(hItem, _cbButton_sprinklers);
hItem = BUTTON_CreateEx(570, 140, 180, 180, pMsg->hWin, WM_CF_SHOW, 0, ID_BUTTON_DROWISE);
WM_SetCallback(hItem, _cbButton_drowise);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_CONTROL);
TEXT_SetText(hItem, "main");
TEXT_SetFont(hItem, &GUI_FontLubalGraph24B);
TEXT_SetTextColor(hItem, GUI_STCOLOR_LIGHTBLUE);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_CONTROL2);
TEXT_SetText(hItem, "control");
TEXT_SetFont(hItem, &GUI_FontLubalGraph24B);
TEXT_SetTextColor(hItem, GUI_STCOLOR_DARKBLUE);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_CONTROL3);
TEXT_SetText(hItem, "(on/off)");
TEXT_SetFont(hItem, &GUI_FontLubalGraph24B);
TEXT_SetTextColor(hItem, GUI_STCOLOR_DARKBLUE);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_SPRINKLERS);
TEXT_SetText(hItem, "sprinklers");
TEXT_SetFont(hItem, &GUI_FontLubalGraph24B);
TEXT_SetTextColor(hItem, GUI_STCOLOR_LIGHTBLUE);
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_DROWISE);
TEXT_SetText(hItem, "dropwise");
TEXT_SetFont(hItem, &GUI_FontLubalGraph24B);
TEXT_SetTextColor(hItem, GUI_STCOLOR_DARKBLUE);
break;
case WM_INIT_DIALOG:
case WM_PAINT:
break; case WM_PAINT:
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id) {
case ID_BUTTON_EXIT:
switch(NCode) {
case WM_NOTIFICATION_RELEASED:
GUI_EndDialog(pMsg->hWin, 0);
break;case WM_NOTIFICATION_RELEASED:
}switch (NCode) { ... }
break; case ID_BUTTON_EXIT:
}switch (Id) { ... }
break;case WM_NOTIFY_PARENT:
default:
WM_DefaultProc(pMsg);
break;default
}switch (pMsg->MsgId) { ... }
}{ ... }
/* ... */
static void Startup(WM_HWIN hWin, uint16_t xpos, uint16_t ypos)
{
GUI_CreateDialogBox(_aDialog, GUI_COUNTOF(_aDialog), _cbDialog, hWin, xpos, ypos);
}{ ... }
/* ... */
/* ... */