📄 task_0.c
字号:
}
}
/*********************************************************************
*
* _cbCallback
*/
static void _cbCallback(WM_MESSAGE * pMsg) {
int i;
int NCode, Id;
WM_HWIN hDlg, hItem;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_PAINT:
_OnPaint();
return;
case WM_INIT_DIALOG:
for (i = 0; i < 3; i++) {
hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0 + i);
SLIDER_SetRange(hItem, 0, 255);
SLIDER_SetValue(hItem, _aColorSep[i]);
/* Init EDIT-widgets */
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0 + i);
EDIT_SetDecMode(hItem, _aColorSep[i], 0, 255, 0, 0);
}
/* Init checkbox */
hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK0);
CHECKBOX_SetText(hItem, "Auto");
CHECKBOX_SetState(hItem, _Auto);
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
case GUI_KEY_ESCAPE:
;
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hDlg, 0);
break;
}
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (NCode) {
case WM_NOTIFICATION_RELEASED:
if (Id == GUI_ID_OK) {
GUI_EndDialog(hDlg, 0);
}
if (Id == GUI_ID_CANCEL) {
GUI_EndDialog(hDlg, 1);
}
break;
case WM_NOTIFICATION_VALUE_CHANGED:
switch (Id) {
case GUI_ID_CHECK0:
hItem = WM_GetDialogItem(hDlg, Id);
_Auto = CHECKBOX_GetState(hItem);
break;
default:
_OnValueChanged(hDlg, Id);
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
/*********************************************************************
*
* _PlayNextEvent
*/
static void _PlayNextEvent(WM_HWIN hWin) {
static int iList;
static int iEntry;
GUI_PID_STATE State = {0};
static PID_EVENT * pEvent;
if (pEvent) {
GUI_PID_GetState(&State);
if ((State.Layer == LAYER) && State.Pressed && ((State.x != pEvent->x) || (State.y != pEvent->y))) {
WM_HWIN hItem;
hItem = WM_GetDialogItem(hWin, GUI_ID_CHECK0);
CHECKBOX_SetState(hItem, 0);
}
}
pEvent = _aEventList[iList].p + iEntry;
State.x = pEvent->x;
State.y = pEvent->y;
State.Pressed = pEvent->Pressed;
State.Layer = LAYER;
GUI_PID_StoreState(&State);
GUI_Delay(pEvent->Duration);
if (++iEntry == _aEventList[iList].NumEvents) {
iEntry = 0;
iList++;
if (iList == GUI_COUNTOF(_aEventList)) {
iList = 0;
}
}
}
/*********************************************************************
*
* Public code
*
**********************************************************************
*/
/*********************************************************************
*
* Task_0
*/
void Task_0(void) {
WM_HWIN hWin = 0;
_Auto = 1;
GUI_SelectLayer(LAYER);
WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
WM_EnableMemdev(WM_HBKWIN);
WM_SetCallback(WM_HBKWIN, _cbBkWindow);
GUI_Exec();
GUI_CURSOR_ShowEx(LAYER);
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
while (1) {
if (_Auto) {
_PlayNextEvent(hWin);
} else {
SIM_Delay(100);
}
if (WM_IsWindow(hWin) == 0) {
SIM_Delay(1000);
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, WM_GetDesktopWindowEx(LAYER), 0, 0);
}
}
}
/*************************** End of file ****************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -