/********************************************************************* * * _PlayNextEvent */ static void _PlayNextEvent(WM_HWIN hWin) { static PID_EVENT * pEvent; static int iList; static int iEntry; GUI_PID_STATE State = { 0 }; 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].pEvent + 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; } } }
void MainTask(void) { static GUI_PID_STATE OldState; GUI_PID_STATE CurrentState; int tEnd; GUI_Init(); BUTTON_SetReactOnLevel(); // // Check if recommended memory for the sample is available // if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) { GUI_ErrorOut("Not enough memory available."); return; } do { WM_HWIN hButton0, hButton1; WM_SetCallback(WM_HBKWIN, _cbBkWin); hButton0 = _CreateButton(100, 220, 170, 150, 5, 25, "Dashboard" , &bmDashboard , GUI_ID_BUTTON0); hButton1 = _CreateButton(370, 220, 170, 150, 5, 25, "Cash Terminal", &bmCashTerminal, GUI_ID_BUTTON1); WM_SetFocus(hButton0); tEnd = GUI_GetTime() + 4000; do { GUI_PID_GetState(&CurrentState); if ((OldState.x != CurrentState.x) || (OldState.y != CurrentState.y)) { tEnd = GUI_GetTime() + 10000; } OldState = CurrentState; GUI_Delay(100); if (GUI_GetTime() >= tEnd) { if (_AppSelectionOld) { _AppSelection = ((_AppSelectionOld - 1) ^ 1) + 1; } else { _AppSelection = APP_DASHBOARD; } } } while (!_AppSelection && !_Break); WM_DeleteWindow(hButton0); WM_DeleteWindow(hButton1); if (!_Break) { switch (_AppSelection) { case APP_DASHBOARD: AppDashBoard(); break; case APP_CASHTERMINAL: AppCashTerminal(); break; } GUI_CURSOR_Hide(); _AppSelectionOld = _AppSelection; _AppSelection = 0; } } while (!_Break); }
void MainTask(void) { static GUI_PID_STATE OldState; GUI_PID_STATE CurrentState; int tEnd; GUI_Init(); do { WM_HWIN hButton0, hButton1; WM_SetCallback(WM_HBKWIN, _cbBkWin); hButton0 = _CreateButton(100, 220, 170, 150, 5, 25, "Dashboard" , &bmDashboard , GUI_ID_BUTTON0); hButton1 = _CreateButton(370, 220, 170, 150, 5, 25, "Cash Terminal", &bmCashTerminal, GUI_ID_BUTTON1); WM_SetFocus(hButton0); tEnd = GUI_GetTime() + 4000; do { GUI_PID_GetState(&CurrentState); if ((OldState.x != CurrentState.x) || (OldState.y != CurrentState.y)) { tEnd = GUI_GetTime() + 10000; } OldState = CurrentState; GUI_Delay(100); if (GUI_GetTime() >= tEnd) { if (_AppSelectionOld) { _AppSelection = ((_AppSelectionOld - 1) ^ 1) + 1; } else { _AppSelection = APP_DASHBOARD; } } } while (!_AppSelection && !_Break); WM_DeleteWindow(hButton0); WM_DeleteWindow(hButton1); if (!_Break) { switch (_AppSelection) { case APP_DASHBOARD: AppDashBoard(); break; case APP_CASHTERMINAL: AppCashTerminal(); break; } GUI_CURSOR_Hide(); _AppSelectionOld = _AppSelection; _AppSelection = 0; } } while (!_Break); }
/********************************************************************* * * _cbTransWindow */ static void _cbTransWindow(WM_MESSAGE* pMsg) { static GUI_PID_STATE StateOld; GUI_PID_STATE * pState; GUI_PID_STATE StateNew; GUI_PID_STATE State; WM_HWIN hBelow; WM_HWIN hWin; hWin = pMsg->hWin; GUI_PID_GetState(&StateNew); State = ((StateNew.x == -1) && (StateNew.y == -1)) ? StateOld : StateNew; StateOld = State; switch (pMsg->MsgId) { case WM_PAINT: State.x -= WM_GetWindowOrgX(hWin); State.y -= WM_GetWindowOrgY(hWin); _DrawEye(EYE_X1, EYE_Y, State.x, State.y, EYE_RX, EYE_RY); _DrawEye(EYE_X2, EYE_Y, State.x, State.y, EYE_RX, EYE_RY); break; case WM_TOUCH: if (pMsg->Data.p) { pState = (GUI_PID_STATE *)pMsg->Data.p; if (pState->Pressed) { if (!_ClickedOutsideArea(pState->x, pState->y) || WM_HasCaptured(hWin)) { WM_SetCaptureMove(hWin, pState, MIN_VISIBILITY, 0); } else { // // Transfer the message to the underlying window, since the transparent area has been clicked // hBelow = WM_Screen2hWinEx(hWin, State.x, State.y); if (hBelow) { pState->x = State.x - WM_GetWindowOrgX(hBelow); pState->y = State.y - WM_GetWindowOrgY(hBelow); WM_SendMessage(hBelow, pMsg); } } } } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbEffect */ static int _cbEffect(int TimeRem, void * pVoid) { GUI_PID_STATE State; int Pressed; GUI_USE_PARA(TimeRem); Pressed = *((int *)pVoid); GUI_Exec(); GUI_PID_GetState(&State); if (State.Pressed) { *((int *)pVoid) = 1; return 0; } else { if ((State.Pressed == 0) && (Pressed == 1)) { *((int *)pVoid) = 0; _Next = 1; return 1; } _Next = GUIDEMO_CheckCancel(); return _Next; } }