/** * @brief Callback function of the Settings dialog * @param pMsg: pointer to a data structure of type WM_MESSAGE * @retval None */ static void _cbDialogSettings(WM_MESSAGE * pMsg) { WM_HWIN hItem; int Id, NCode, idx; static int8_t sec, min, hour; static int8_t asec, amin, ahour; static int8_t day, month, max_days; static int16_t year; SPINBOX_Handle hSpin; DROPDOWN_Handle hDropMonth; TEXT_Handle hText ; static CALENDAR_DATE current_date; RTC_TimeTypeDef RTC_TimeStructure; RTC_DateTypeDef RTC_DateStructure; static uint8_t TempStr[50]; switch (pMsg->MsgId) { case WM_INIT_DIALOG: /* Get Clock setting from RTC */ RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure); sec = RTC_TimeStructure.RTC_Seconds; min = RTC_TimeStructure.RTC_Minutes; hour = RTC_TimeStructure.RTC_Hours; RTC_GetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure); asec = RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds; amin = RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes; ahour = RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours; RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure); year = RTC_DateStructure.RTC_Year + 2000; month = RTC_DateStructure.RTC_Month; day = RTC_DateStructure.RTC_Date; max_days = GetMaxDays(month, year); /* Update the dialog items */ hItem = pMsg->hWin; FRAMEWIN_SetFont(hItem, GUI_FONT_13B_ASCII); /* Date */ hText = TEXT_CreateEx(20, 20, 100, 25, pMsg->hWin, WM_CF_SHOW,0, 0x11F," Date : "); TEXT_SetFont(hText, GUI_FONT_13B_ASCII); TEXT_SetTextColor(hText, 0x00804000); hSpin = SPINBOX_CreateEx(20, 35, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_DAY, 1, max_days); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_EnableBlink(hSpin, 250, 1); SPINBOX_SetValue(hSpin, day); hDropMonth = DROPDOWN_CreateEx(65, 35, 80, 160, pMsg->hWin, WM_CF_SHOW, 0, ID_CLOCK_MONTH); DROPDOWN_SetFont(hDropMonth, GUI_FONT_13B_ASCII); DROPDOWN_SetTextColor(hDropMonth, DROPDOWN_CI_UNSEL, 0x00804000); DROPDOWN_SetTextColor(hDropMonth, DROPDOWN_CI_SEL, 0x00804000); for (idx = 0; idx < 12; idx++ ) { DROPDOWN_AddString (hDropMonth, (char *)strMonth[idx]); } DROPDOWN_SetSel(hDropMonth, month - 1); hSpin = SPINBOX_CreateEx(150, 35, 50, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_YEAR, 2000, 2099); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_EnableBlink(hSpin, 250, 1); SPINBOX_SetValue(hSpin, year); hItem = CHECKBOX_Create(205, 37, 20, 26, pMsg->hWin, ID_CLOCK_CHECK_DATE ,WM_CF_SHOW); CHECKBOX_SetState(hItem, 1); /* Time */ hText = TEXT_CreateEx(20, 50 + 20, 100, 25, pMsg->hWin, WM_CF_SHOW,0, 0x123," Time : "); TEXT_SetFont(hText, GUI_FONT_13B_ASCII); TEXT_SetTextColor(hText, 0x00804000); hSpin = SPINBOX_CreateEx(20, 65 + 20, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_HOUR, 0,23); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, hour); SPINBOX_EnableBlink(hSpin, 250, 1); hSpin = SPINBOX_CreateEx(75, 65 + 20, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_MIN, 0, 59); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, min); SPINBOX_EnableBlink(hSpin, 250, 1); hSpin = SPINBOX_CreateEx(130, 65 + 20, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_SEC, 0, 59); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, sec); SPINBOX_EnableBlink(hSpin, 250, 1); hItem = CHECKBOX_Create(205, 65 + 20, 20, 26, pMsg->hWin, ID_CLOCK_CHECK_TIME ,WM_CF_SHOW); CHECKBOX_SetState(hItem, 1); /* Alarm */ hText = TEXT_CreateEx(20, 78 + 40, 100, 25, pMsg->hWin, WM_CF_SHOW,0, 0x126," Alarm : "); TEXT_SetFont(hText, GUI_FONT_13B_ASCII); TEXT_SetTextColor(hText, 0x00804000); hSpin = SPINBOX_CreateEx(20, 93 + 40, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_AHOUR, 0,23); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, ahour); SPINBOX_EnableBlink(hSpin, 250, 1); hSpin = SPINBOX_CreateEx(75, 93 + 40, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_AMIN, 0, 59); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, amin); SPINBOX_EnableBlink(hSpin, 250, 1); hSpin = SPINBOX_CreateEx(130, 93 + 40, 40, 18, pMsg->hWin, WM_CF_SHOW, ID_CLOCK_ASEC, 0, 59); SPINBOX_SetFont(hSpin, GUI_FONT_13B_ASCII); SPINBOX_SetTextColor(hSpin, SPINBOX_CI_ENABLED, 0x00804000); SPINBOX_SetValue(hSpin, asec); hItem = CHECKBOX_Create(205, 93 + 40, 20, 26, pMsg->hWin, ID_CLOCK_CHECK_ALARM ,WM_CF_SHOW); CHECKBOX_SetState(hItem, 1); SPINBOX_EnableBlink(hSpin, 250, 1); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_CLOSE_SETTINGS: /* Notifications sent by 'Close' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: /* Exit */ GUI_EndDialog(pMsg->hWin, 0); GUI_EndDialog (hNumPad, 0); break; } break; case ID_SET_SETTINGS: /* Notifications sent by 'Apply' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: if(CHECKBOX_GetState( WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_CLOCK_CHECK_DATE))) { current_date.Year = year = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_YEAR)); current_date.Month = month = DROPDOWN_GetSel (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_MONTH)) + 1; current_date.Day = day = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_DAY)); RTC_DateStructure.RTC_Year = year - 2000; RTC_DateStructure.RTC_Month = month; RTC_DateStructure.RTC_Date = day; RTC_DateStructure.RTC_WeekDay = 0; RTC_SetDate(RTC_Format_BIN, &RTC_DateStructure); hItem = WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_CALENDAR); CALENDAR_SetDate(hItem, ¤t_date); CALENDAR_SetSel(hItem, ¤t_date); /* Date */ hItem = WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_TEXT_DATE); sprintf((char *)TempStr, "%02d, %s, %04d",day , strMonth[month-1], year); TEXT_SetText(hItem, (char *)TempStr); } if(CHECKBOX_GetState( WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_CLOCK_CHECK_TIME))) { /* Save new param in RTC */ sec = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_SEC)); min = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_MIN)); hour = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_HOUR)); RTC_TimeStructure.RTC_Seconds = sec; RTC_TimeStructure.RTC_Minutes = min; RTC_TimeStructure.RTC_Hours = hour; RTC_SetTime(RTC_Format_BIN, &RTC_TimeStructure); } if(CHECKBOX_GetState( WM_GetDialogItem(WM_GetParent(pMsg->hWin), ID_CLOCK_CHECK_ALARM))) { asec = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_ASEC)); amin = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_AMIN)); ahour = SPINBOX_GetValue (WM_GetDialogItem(pMsg->hWin, ID_CLOCK_AHOUR)); /* Disable the Alarm A */ RTC_AlarmCmd(RTC_Alarm_A, DISABLE); /* Disable the RTC Alarm A Interrupt */ RTC_ITConfig(RTC_IT_ALRA, DISABLE); STM_EVAL_LEDOff(LED4); RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = asec; RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = amin; RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = ahour; RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date; RTC_AlarmStructure.RTC_AlarmDateWeekDay = day; RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure); /* Enable the RTC Alarm A Interrupt */ RTC_ITConfig(RTC_IT_ALRA, ENABLE); /* Enable the alarm A */ RTC_AlarmCmd(RTC_Alarm_A, ENABLE); alarm_set = 1; } /* Exit */ WM_InvalidateWindow(WM_GetParent(pMsg->hWin)); GUI_EndDialog(pMsg->hWin, 0); GUI_EndDialog (hNumPad, 0); break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _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 SWRB_TestCheckboxStateSet(u8 stateNum) { int i; WM_HWIN hItem; for(i=ID_PCBTEST_CHECKBOX_WHEEL;i<ID_PCBTEST_CHECKBOX_BOUND;i++){ hItem = WM_GetDialogItem(hWin_SWRB_PCBTEST, i); CHECKBOX_SetState(hItem, stateNum); } }
/********************************************************************* * * _OnKey */ static void _OnKey(CHECKBOX_Handle hObj, CHECKBOX_Obj * pObj, WM_MESSAGE * pMsg) { WM_KEY_INFO * pKeyInfo; if (WM__IsEnabled(hObj)) { pKeyInfo = (WM_KEY_INFO *)(pMsg->Data.p); if (pKeyInfo->PressedCnt > 0) { switch (pKeyInfo->Key) { case GUI_KEY_SPACE: CHECKBOX_SetState(hObj, (pObj->CurrentState + 1) % pObj->NumStates); break; /* Send to parent by not doing anything */ } } } }
/********************************************************************* * * _OnTouch */ static void _OnTouch(CHECKBOX_Handle hObj, CHECKBOX_Obj* pObj, WM_MESSAGE*pMsg) { int Notification = 0; int Hit = 0; const GUI_PID_STATE* pState = (const GUI_PID_STATE*)pMsg->Data.p; if (pMsg->Data.p) { /* Something happened in our area (pressed or released) */ if (!WM_HasCaptured(hObj)) { if (pState->Pressed) { WM_SetCapture(hObj, 1); CHECKBOX_SetState(hObj, (pObj->CurrentState + 1) % pObj->NumStates); Notification = WM_NOTIFICATION_CLICKED; } else { Hit =1; Notification = WM_NOTIFICATION_RELEASED; } } } else { Notification = WM_NOTIFICATION_MOVED_OUT; } WM_NotifyParent(hObj, Notification); if (Hit == 1) { GUI_DEBUG_LOG("CHECKBOX: Hit\n"); GUI_StoreKey(pObj->Widget.Id); } }
/********************************************************************* * * _cbCallback * * Purpose: * Callback function of the dialog */ static void _cbCallback(WM_MESSAGE * pMsg) { int NCode, Id, Value, i; WM_HWIN hDlg, hItem; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); _InitPoints(); /* Add graphs */ for (i = 0; i < 3; i++) { GRAPH_DATA_Handle hDataXY; hDataXY = GRAPH_DATA_XY_Create(_aColor[i], GUI_COUNTOF(_aPoint[i]), _aPoint[i], GUI_COUNTOF(_aPoint[i])); GRAPH_DATA_XY_SetLineStyle(hDataXY, _aLStyle[i]); GRAPH_AttachData(hItem, hDataXY); } /* Set graph attributes */ GRAPH_SetGridDistY(hItem, 25); GRAPH_SetGridVis(hItem, 1); GRAPH_SetUserDraw(hItem, _UserDraw); /* Create and add vertical scale */ _hScaleV = GRAPH_SCALE_Create( 35, GUI_TA_RIGHT, GRAPH_SCALE_CF_VERTICAL, 25); GRAPH_SCALE_SetOff(_hScaleV, 100); GRAPH_SCALE_SetFactor(_hScaleV, 0.04f); GRAPH_SCALE_SetTextColor(_hScaleV, GUI_RED); GRAPH_AttachScale(hItem, _hScaleV); /* Create and add horizontal scale */ _hScaleH = GRAPH_SCALE_Create(70, GUI_TA_HCENTER, GRAPH_SCALE_CF_HORIZONTAL, 50); GRAPH_SCALE_SetFactor(_hScaleH, 0.02f); GRAPH_SCALE_SetTextColor(_hScaleH, GUI_DARKGREEN); GRAPH_AttachScale(hItem, _hScaleH); /* Init check boxes */ hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK2); CHECKBOX_SetText(hItem, "L"); CHECKBOX_SetState(hItem, 1); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK3); CHECKBOX_SetText(hItem, "T"); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK4); CHECKBOX_SetText(hItem, "R"); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK5); CHECKBOX_SetText(hItem, "B"); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK1); CHECKBOX_SetText(hItem, "Grid"); CHECKBOX_SetState(hItem, 1); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK6); CHECKBOX_SetText(hItem, "HScroll"); hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK7); CHECKBOX_SetText(hItem, "VScroll"); /* Init slider widgets */ hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0); SLIDER_SetRange(hItem, 0, 10); SLIDER_SetValue(hItem, 5); SLIDER_SetNumTicks(hItem, 6); hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER1); SLIDER_SetRange(hItem, 0, 20); SLIDER_SetValue(hItem, 5); SLIDER_SetNumTicks(hItem, 6); /* Init radio widget */ hItem = WM_GetDialogItem(hDlg, GUI_ID_RADIO0); RADIO_SetText(hItem, "3D", 0); RADIO_SetText(hItem, "flat", 1); RADIO_SetText(hItem, "-", 2); /* Init button widget */ hItem = WM_GetDialogItem(hDlg, GUI_ID_BUTTON0); WM_SetStayOnTop(hItem, 1); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); /* Id of widget */ NCode = pMsg->Data.v; /* Notification code */ switch (NCode) { case WM_NOTIFICATION_CLICKED: switch (Id) { case GUI_ID_BUTTON0: _ToggleFullScreenMode(hDlg); break; } break; case WM_NOTIFICATION_VALUE_CHANGED: switch (Id) { case GUI_ID_CHECK1: /* Toggle grid */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); GRAPH_SetGridVis(hItem, CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK1))); break; case GUI_ID_CHECK2: case GUI_ID_CHECK3: case GUI_ID_CHECK4: case GUI_ID_CHECK5: /* Toggle border */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); GRAPH_SetBorder(hItem, CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK2)) * 40, CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK3)) * 5, CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK4)) * 5, CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK5)) * 5); break; case GUI_ID_SLIDER0: /* Set horizontal grid spacing */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); Value = SLIDER_GetValue(pMsg->hWinSrc) * 10; GRAPH_SetGridDistX(hItem, Value); GRAPH_SCALE_SetTickDist(_hScaleH, Value); if (Value != 50) { GRAPH_SCALE_SetNumDecs(_hScaleH, 1); } else { GRAPH_SCALE_SetNumDecs(_hScaleH, 0); } break; case GUI_ID_SLIDER1: /* Set vertical grid spacing */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); Value = SLIDER_GetValue(pMsg->hWinSrc) * 5; GRAPH_SetGridDistY(hItem, Value); GRAPH_SCALE_SetTickDist(_hScaleV, Value); if (Value != 25) { GRAPH_SCALE_SetNumDecs(_hScaleV, 1); } else { GRAPH_SCALE_SetNumDecs(_hScaleV, 0); } break; case GUI_ID_RADIO0: /* Set the widget effect */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); switch (RADIO_GetValue(pMsg->hWinSrc)) { case 0: WIDGET_SetEffect(hItem, &WIDGET_Effect_3D); break; case 1: WIDGET_SetEffect(hItem, &WIDGET_Effect_Simple); break; case 2: WIDGET_SetEffect(hItem, &WIDGET_Effect_None); break; } break; case GUI_ID_CHECK6: /* Toggle horizontal scroll bar */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); if (CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK6))) { GRAPH_SetVSizeX(hItem, 500); } else { GRAPH_SetVSizeX(hItem, 0); } break; case GUI_ID_CHECK7: /* Toggle vertical scroll bar */ hItem = WM_GetDialogItem(hDlg, GUI_ID_GRAPH0); if (CHECKBOX_IsChecked(WM_GetDialogItem(hDlg, GUI_ID_CHECK7))) { GRAPH_SetVSizeY(hItem, 300); } else { GRAPH_SetVSizeY(hItem, 0); } break; } break; } break; default: WM_DefaultProc(pMsg); } }
void Checkbox_Set_State(WM_HWIN hWin, int checkboxId, unsigned int checkboxState) { WM_HWIN hItem; hItem = WM_GetDialogItem(hWin, checkboxId); CHECKBOX_SetState(hItem, checkboxState); }
/********************************************************************* * * _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); } }
static void _cbDialog_VNC_SETTINGS(WM_MESSAGE * pMsg) { WM_HWIN hItem; int Id, NCode; switch (pMsg->MsgId) { case WM_INIT_DIALOG: /* Restore VNC settings */ _VNCServer_RestoreSettings(); /* Initialization of 'VNC Server Settings' */ hItem = pMsg->hWin; FRAMEWIN_SetTitleHeight(hItem, 18); /* Initialization of 'DHCP' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_DHCP); CHECKBOX_SetText(hItem, "Enable DHCP"); CHECKBOX_SetState(hItem, VNCSettings.dhcp_use.b.dhcp); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_3); EDIT_SetDecMode(hItem, VNCSettings.ipaddr.b.addr3, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_2); EDIT_SetDecMode(hItem, VNCSettings.ipaddr.b.addr2, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_1); EDIT_SetDecMode(hItem, VNCSettings.ipaddr.b.addr1, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_0); EDIT_SetDecMode(hItem, VNCSettings.ipaddr.b.addr0, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_3); EDIT_SetDecMode(hItem, VNCSettings.maskaddr.b.addr3, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_2); EDIT_SetDecMode(hItem, VNCSettings.maskaddr.b.addr2, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_1); EDIT_SetDecMode(hItem, VNCSettings.maskaddr.b.addr1, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_0); EDIT_SetDecMode(hItem, VNCSettings.maskaddr.b.addr0, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_3); EDIT_SetDecMode(hItem, VNCSettings.gwaddr.b.addr3, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_2); EDIT_SetDecMode(hItem, VNCSettings.gwaddr.b.addr2, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_1); EDIT_SetDecMode(hItem, VNCSettings.gwaddr.b.addr1, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* Initialization of 'Edit' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_0); EDIT_SetDecMode(hItem, VNCSettings.gwaddr.b.addr0, 0, 255, 0, GUI_EDIT_SUPPRESS_LEADING_ZEROES); /* If DHCP enabled: disable all Edits*/ if (VNCSettings.dhcp_use.b.dhcp) { hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); } break; case WM_DELETE: hWinVNC_Settings = 0; 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 */ switch (Id) { case ID_BUTTON_SETTINGS_CANCEL: /* Settings: Cancel */ /* Delete NumPad VNC Window */ WM_DeleteWindow(hNumPad); GUI_EndDialog(pMsg->hWin, 0); break; case ID_BUTTON_SETTINGS_OK: /* Settings: OK */ /* Save Settings */ hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_DHCP); if (CHECKBOX_GetState(hItem)) /* Use DHCP to allocate dynamic IP address */ { if(VNCSettings.dhcp_use.b.dhcp == 0) { VNCSettings.dhcp_use.b.dhcp = 1; VNCSettings.ipaddr.b.addr0 = 0; VNCSettings.ipaddr.b.addr1 = 0; VNCSettings.ipaddr.b.addr2 = 0; VNCSettings.ipaddr.b.addr3 = 0; VNCSettings.maskaddr.b.addr0 = 0; VNCSettings.maskaddr.b.addr1 = 0; VNCSettings.maskaddr.b.addr2 = 0; VNCSettings.maskaddr.b.addr3 = 0; VNCSettings.gwaddr.b.addr0 = 0; VNCSettings.gwaddr.b.addr1 = 0; VNCSettings.gwaddr.b.addr2 = 0; VNCSettings.gwaddr.b.addr3 = 0; hItem = WM_GetDialogItem(hWinVNC, ID_TEXT_DHCP_STATE); TEXT_SetText(hItem, (char const *)"Enabled"); hItem = WM_GetDialogItem(hWinVNC, ID_TEXT_IPADDR_VALUE); TEXT_SetText(hItem, (char const *)"Not assigned"); hItem = WM_GetDialogItem(hWinVNC, ID_TEXT_SUBNETMASK_VALUE); TEXT_SetText(hItem, (char const *)"Not assigned"); hItem = WM_GetDialogItem(hWinVNC, ID_TEXT_GWADDR_VALUE); TEXT_SetText(hItem, (char const *)"Not assigned"); if (start_button == VNC_HIDE) { hItem = WM_GetDialogItem(hWinVNC, ID_MULTIEDIT_VNC); MULTIEDIT_AddText(hItem, (const char *) "Network settings has been modified\r\n"); MULTIEDIT_AddText(hItem, (const char *) "Restart to apply new settings\r\n"); } } } /* Use static IP address */ else { if (VNCSettings.dhcp_use.b.dhcp == 1) { VNCSettings.dhcp_use.b.dhcp = 0; } if (start_button == VNC_HIDE) { hItem = WM_GetDialogItem(hWinVNC, ID_MULTIEDIT_VNC); MULTIEDIT_AddText(hItem, (const char *) "Network settings has been modified\r\n"); MULTIEDIT_AddText(hItem, (const char *) "Restart to apply new settings\r\n"); } /* Get the new network addresses configuration */ hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_3); VNCSettings.ipaddr.b.addr3 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_2); VNCSettings.ipaddr.b.addr2 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_1); VNCSettings.ipaddr.b.addr1 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_0); VNCSettings.ipaddr.b.addr0 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_3); VNCSettings.maskaddr.b.addr3 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_2); VNCSettings.maskaddr.b.addr2 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_1); VNCSettings.maskaddr.b.addr1 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_0); VNCSettings.maskaddr.b.addr0 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_3); VNCSettings.gwaddr.b.addr3 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_2); VNCSettings.gwaddr.b.addr2 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_1); VNCSettings.gwaddr.b.addr1 = EDIT_GetValue(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_0); VNCSettings.gwaddr.b.addr0 = EDIT_GetValue(hItem); _VNCApp_GetIPAddress(IP_ADDRESS, VNCSettings.ipaddr.b.addr3, VNCSettings.ipaddr.b.addr2, VNCSettings.ipaddr.b.addr1, VNCSettings.ipaddr.b.addr0); _VNCApp_GetIPAddress(SUBNET_MASK, VNCSettings.maskaddr.b.addr3, VNCSettings.maskaddr.b.addr2, VNCSettings.maskaddr.b.addr1, VNCSettings.maskaddr.b.addr0); _VNCApp_GetIPAddress(GW_ADDRESS, VNCSettings.gwaddr.b.addr3, VNCSettings.gwaddr.b.addr2, VNCSettings.gwaddr.b.addr1, VNCSettings.gwaddr.b.addr0); } /********** Save Settings ***********/ _VNCServer_SaveSettings(); /* Delete NumPad VNC Window */ WM_DeleteWindow(hNumPad); GUI_EndDialog(pMsg->hWin, 0); break; } break; case WM_NOTIFICATION_VALUE_CHANGED: switch (Id) { case ID_CHECKBOX_DHCP: { hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_DHCP); if (CHECKBOX_IsChecked(hItem)) { hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_3); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_2); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_1); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_0); WM_DisableWindow(hItem); EDIT_SetFocussable(hItem, 0); } else { hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_3); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_2); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_1); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_IPADDRESS_0); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_3); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_2); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_1); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_SNMASK_0); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_3); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_2); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_1); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_GWADDRESS_0); WM_EnableWindow(hItem); EDIT_SetFocussable(hItem, 1); } } break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
void update_conf_item() { WM_SetFocus( WM_GetDialogItem( configPageWin, ID_CONF_DSTP_CFG_PRT_ONB + current_ekran.index_position ) ); for (int i = 0; i < NUM_CONF_ITEMS; i++) { CHECKBOX_Handle checkBox = WM_GetDialogItem(configPageWin, ID_CONF_DSTP_CFG_PRT_ONB + i); if (sel_conf_language != sel_language) { CHECKBOX_SetText(checkBox, conf_checkbox_item[sel_language][i]); } if (WM_HasFocus(checkBox)) { CHECKBOX_SetTextColor(checkBox, GUI_YELLOW); CHECKBOX_SetBkColor(checkBox, GUI_BLUE); } else { CHECKBOX_SetTextColor(checkBox, GUI_BLACK); CHECKBOX_SetBkColor(checkBox, GUI_FRM_COLOR); } if (_CHECK_BIT_UCHAR(selInfConf, i)) { if (CHECKBOX_GetState(checkBox) == 0) { CHECKBOX_SetState(checkBox, 1); } } else { if (CHECKBOX_GetState(checkBox) != 0) { CHECKBOX_SetState(checkBox, 0); } } } if (sel_conf_language != sel_language) { sel_conf_language = sel_language; BUTTON_SetText( WM_GetDialogItem( configPageWin, ID_CONF_BUTTON_ESC ), escButtonExpl[sel_language] ); BUTTON_SetText( WM_GetDialogItem( configPageWin, ID_CONF_BUTTON_ENTER ), enterButtonExpl[sel_language] ); } char titleText[100] = {0}; unsigned int i = 0; for (; confFrmText[sel_language][i] != '\0'; i++) { titleText[i] = confFrmText[sel_language][i]; } if (current_ekran.edition != 0) { _CONCAT_STR(titleText, editModeAdditionalText[sel_language]); } FRAMEWIN_SetText(configPageWin, titleText); EDIT_SetText(hEdit, confExplText[sel_language]); }