/********************************************************************* * * _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); } 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); /* Id of widget */ NCode = pMsg->Data.v; /* Notification code */ switch (NCode) { case WM_NOTIFICATION_RELEASED: /* React only if released */ if (Id == GUI_ID_OK) { /* OK Button */ GUI_EndDialog(hDlg, 0); } if (Id == GUI_ID_CANCEL) { /* Cancel Button */ GUI_EndDialog(hDlg, 1); } break; case WM_NOTIFICATION_VALUE_CHANGED: /* Value has changed */ _OnValueChanged(hDlg, Id); break; } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbCallback */ static void _cbCallback(WM_MESSAGE * pMsg) { WM_HWIN hDlg, hWinSrc, hItem; int Id, NCode, i; hWinSrc = pMsg->hWinSrc; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_INIT_DIALOG: WM_MakeModal(hDlg); FRAMEWIN_SetFont(hDlg, &GUI_Font24B_ASCII); FRAMEWIN_SetTextAlign(hDlg, GUI_TA_HCENTER); FRAMEWIN_SetClientColor(hDlg, GUI_YELLOW); for (i = 0; i < 4; i++) { hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0 + i); SLIDER_SetRange(hItem, 0, 999); SLIDER_SetValue(hItem, _aSlider[i]); hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0 + i); EDIT_SetDecMode(hItem, _aSlider[i], 0, 999, 0, 0); WM_DisableWindow(hItem); } break; case WM_NOTIFY_PARENT: Id = WM_GetId(hWinSrc); /* Id of widget */ NCode = pMsg->Data.v; /* Notification code */ if (NCode == WM_NOTIFICATION_RELEASED) { /* React only if released */ if (Id == GUI_ID_OK) { /* OK Button */ GUI_EndDialog(hDlg, 0); WM_SetFocus(_hPrevWin); } } if (NCode == WM_NOTIFICATION_VALUE_CHANGED) { _OnValueChanged(hDlg, Id); } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbCallback */ static void _cbCallback(WM_MESSAGE * pMsg) { WM_HWIN hDlg; WM_HWIN hItem; int i; int NCode; int Id; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_INIT_DIALOG: for (i = 0; i < 3; i++) { hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0 + i); SLIDER_SetRange(hItem, 0, 100); SLIDER_SetValue(hItem, _duty[i]); // // Init EDIT-widgets // hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0 + i); EDIT_SetDecMode(hItem, _duty[i], 0, 255, 0, 0); } 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); // Id of widget NCode = pMsg->Data.v; // Notification code switch (NCode) { case WM_NOTIFICATION_RELEASED: // React only if released if (Id == GUI_ID_OK) { // OK Button GUI_EndDialog(hDlg, 0); } if (Id == GUI_ID_BUTTON3) { // Stop Button AzimuthalMotor.dutyCycle(0); AzimuthalMotor.start(); VerticalMotor.dutyCycle(0); VerticalMotor.start(); ClawMotor.dutyCycle(0); ClawMotor.start(); } if (Id == GUI_ID_BUTTON0) { // Azimuthal Button VerticalMotor.dutyCycle(0); VerticalMotor.start(); ClawMotor.dutyCycle(0); ClawMotor.start(); AzimuthalMotor.dutyCycle(_duty[0]); AzimuthalMotor.start(); } if (Id == GUI_ID_BUTTON1) { // Vertical Button AzimuthalMotor.dutyCycle(0); AzimuthalMotor.start(); ClawMotor.dutyCycle(0); ClawMotor.start(); VerticalMotor.dutyCycle(_duty[1]); VerticalMotor.start(); } if (Id == GUI_ID_BUTTON2) { // Claw Button AzimuthalMotor.dutyCycle(0); AzimuthalMotor.start(); VerticalMotor.dutyCycle(0); VerticalMotor.start(); ClawMotor.dutyCycle(_duty[2]); ClawMotor.start(); } if (Id == GUI_ID_BUTTON4) { // Forward Button HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, GPIO_PIN_RESET); } if (Id == GUI_ID_BUTTON5) { // Reverse Button HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, GPIO_PIN_SET); } break; case WM_NOTIFICATION_VALUE_CHANGED: // Value has changed _OnValueChanged(hDlg, Id); break; } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _cbCallback */ static void _cbCallback(WM_MESSAGE * pMsg) { WM_KEY_INFO * pKeyInfo; WM_HWIN hItem; WM_HWIN hDlg; int NCode; int Id; int i; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: _OnPaint(); return; case WM_INIT_DIALOG: // // Init SLIDER and EDIT widgets // for (i = 0; i < 3; i++) { hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0 + i); SLIDER_SetRange(hItem, 0, 255); SLIDER_SetValue(hItem, _aColorSep[i]); 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: pKeyInfo = (WM_KEY_INFO *)(pMsg->Data.p); switch (pKeyInfo->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); } }