/********************************************************************* * * _ShowEdgeWeights */ static void _ShowEdgeWeights(void) { const char * Weight_name[] = { "\nlight: ", "\nsemi-light: ", "\nregular: ", "\nsemi-bold: ", "\nbold: " }; const char Chinese_string[] = { "\xe5\x9f\xba\xe6\x9c\xac\xe4\xb8\x8a\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba\xe5\x8f\xaa\xe6\x98\xaf\xe5\xa4\x84\xe7\x90\x86\xe6\x95\xb0\xe5\xad\x97\xe5\xae\x83\xe4\xbb\xac\xe6\x8c\x87\xe5\xae\x9a\xe4\xb8\x80\xe4\xb8\xaa\n" }; const char Weight_order[] = { 0, 3, 1, 2, 4 }; int i; int j; GUI_Clear(); i = 0; GUI_ITYPE_GetFamilyName(&_aFont[i], _acFamily, sizeof(_acFamily)); GUI_ITYPE_GetStyleName(&_aFont[i], _acStyle, sizeof(_acStyle)); GUI_SetFont(&GUI_Font20_1); GUI_DispString(" Edge font: "); GUI_DispString(_acFamily); GUI_DispString(", "); GUI_DispString(_acStyle); GUI_DispNextLine(); GUI_DrawHLine(GUI_GetDispPosY(), 0, 0xfff); GUI_SetFont(&_aFont[1]); GUI_ITYPE_SetOutputStyle(&_aFont[1], &_aCS[1], (long)ITYPE_NO_EFFECT); // Turn off all effects GUI_ITYPE_SetOutputStyle(&_aFont[1], &_aCS[1], (long)ITYPE_GRAYMAP4); // Edge graymap output GUI_DispString("** iType Edge CSM tuning, 5 weights in the same font **"); for (j = 0; j < 5; j++){ i = Weight_order[j]; GUI_SetFont(&_aFont[i]); GUI_ITYPE_SetOutputStyle(&_aFont[i], &_aCS[i], (long)ITYPE_NO_EFFECT); // Turn off all effects GUI_ITYPE_SetOutputStyle(&_aFont[i], &_aCS[i], (long)ITYPE_EDGE_GRAYMAP4); // Edge graymap output GUI_DispNextLine(); GUI_DispString(Weight_name[j]); GUI_UC_SetEncodeUTF8(); GUI_DispString(Chinese_string); GUI_UC_SetEncodeNone(); } GUI_Delay(PAGE_DELAY); }
void StartDisplay(void) { GUI_SetColor(GUI_COLOUR_DEFAULT_FOREGROUND); GUI_SetBkColor(GUI_COLOUR_DEFAULT_BACKGROUND); GUI_UC_SetEncodeUTF8(); GUI_DrawBitmap(&bmStartingUp,0,0); }
/** * 函 数 名: _cbSysInfo(WM_MESSAGE* pMsg) * 描 述: 显示系统信息 * 参 数: pMsg * 返 回 值: 无 */ void _cbSysInfo(WM_MESSAGE* pMsg) { BUTTON_Handle ReurnButton; WM_HWIN hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_CREATE: /* 设置聚焦*/ WM_SetFocus(hWin); /* 创建返回按键按钮 */ ReurnButton = BUTTON_CreateEx(118,174,94, 52, hWin, WM_CF_SHOW, 0, SYS_INFO_BUTTON_RETURN); BUTTON_SetBitmapEx(ReurnButton,BUTTON_BI_UNPRESSED, &bmSys_return_xg, 0 ,0); BUTTON_SetBitmapEx(ReurnButton,BUTTON_BI_PRESSED, &bmSys_return, 0 ,0); break; case WM_KEY: /* 按下某个键后发送到当前包含焦点的窗口*/ switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hWin, 1); break; case GUI_KEY_TAB: WM_SetFocusOnNextChild(hWin); break; } break; case WM_PAINT: GUI_SetBkColor(BK_COLOR_2); GUI_Clear(); GUI_UC_SetEncodeNone(); GUI_SetFont(&GUI_FontHZ16); GUI_DispStringAt("MODEL:7H3DFDM-FW ",30,20); GUI_DispStringAt("VERSION: V0.01",30,50); GUI_DispStringAt("SYSINFO: IN TEST ",30,80); GUI_DispStringAt(__DATE__ " " __TIME__,50,110); GUI_UC_SetEncodeUTF8(); //_ShowBMPEx("1.bmp"); break; case WM_NOTIFY_PARENT: if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) { int Id = WM_GetId(pMsg->hWinSrc); switch (Id) { case SYS_INFO_BUTTON_RETURN: _DeleteFrame(); _CreateFrame(&_cbSysSet); break; } } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * _ShowDynamicCSM * * Function description * Shows 5 different weights of the same font by applying dynamic CSM adjustments. */ static void _ShowDynamicCSM(void) { double Alpha; double S0; double S1; double T0; double T1; double R; int i; int j; int N; N = 5; GUI_Clear(); i = 0; GUI_ITYPE_GetFamilyName(&_aFont[i], _acFamily, sizeof(_acFamily)); GUI_ITYPE_GetStyleName(&_aFont[i], _acStyle, sizeof(_acStyle)); GUI_SetFont(&GUI_Font20_1); GUI_DispString(" Edge font: "); GUI_DispString(_acFamily); GUI_DispString(", "); GUI_DispString(_acStyle); GUI_DispNextLine(); GUI_DrawHLine(GUI_GetDispPosY(), 0, 0xfff); GUI_UC_SetEncodeUTF8(); GUI_SetFont(&_aFont[0]); GUI_ITYPE_SetOutputStyle(&_aFont[0], &_aCS[0], (long)ITYPE_NO_EFFECT); // Turn off all effects GUI_ITYPE_SetOutputStyle(&_aFont[0], &_aCS[0], (long)ITYPE_EDGE_GRAYMAP4); // Edge graymap output GUI_DispString("** iType Dynamic CSM tuning **\n"); GUI_DispNextLine(); // // Parameters for adjustments // R = 1.4; S0 = 0.0; S1 = -0.001; T0 = 0.01; T1 = 0.007; // // Make 5 sets of adjustments which range from -R to R. // for (j = 0; j < N; j++){ Alpha = R * (2 * j / (N - 1) - 1); GUI_ITYPE_SetCSMAdjustments(&_aFont[i], &_aCS[i], (FS_FIXED)(Alpha*S0*65536), (FS_FIXED)(Alpha*S1*65536), (FS_FIXED)(Alpha*T0*65536), (FS_FIXED)(Alpha*T1*65536)); GUI_DispString("\xe5\x9f\xba\xe6\x9c\xac\xe4\xb8\x8a\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba\xe5\x8f\xaa\xe6\x98\xaf\xe5\xa4\x84\xe7\x90\x86\xe6\x95\xb0\xe5\xad\x97\xe5\xae\x83\xe4\xbb\xac\xe6\x8c\x87\xe5\xae\x9a\xe4\xb8\x80\xe4\xb8\xaa\n"); } GUI_Delay(PAGE_DELAY); }
int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_CRC_Init(); MX_USART1_UART_Init(); // MX_RTC_Init(); /**< 重新用cube生成工程时 注释掉此函数 再下载 */ /* USER CODE BEGIN 2 */ rtc_init(); /**< 使用改造后的初始化函数实现备份掉电时的数据 */ GUI_Init(); GUI_UC_SetEncodeUTF8(); GUI_SetFont(&GUI_Font24B_1); GUI_SetBkColor(GUI_BLACK); GUI_SetColor(GUI_GREEN); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ RTC_display_current_time(20, 170); RTC_display_current_date(120, 170); } /* USER CODE END 3 */ }
/********************************************************************* * * _ShowLanguages */ static void _ShowLanguages(void) { const char Bopomofo_string[] = { "\nBopomofo: \xe3\x84\x85 \xe3\x84\x86 \xe3\x84\x87 \xe3\x84\x88 \xe3\x84\x89 \xe3\x84\x8a \xe3\x84\x8b \xe3\x84\x8c \xe3\x84\x8d \xe3\x84\x8e \xe3\x84\x8f \xe3\x84\x90 \xe3\x84\x91 \xe3\x84\x92 \xe3\x84\x93\n" }; const char Simplified_Chinese[] = { "\nSimplified: \xe5\x9f\xba\xe6\x9c\xac\xe4\xb8\x8a\xe8\xae\xa1\xe7\xae\x97\xe6\x9c\xba\xe5\x8f\xaa\xe6\x98\xaf\xe5\xa4\x84\xe7\x90\x86\xe6\x95\xb0\xe5\xad\x97\xe5\xae\x83\xe4\xbb\xac\xe6\x8c\x87\xe5\xae\x9a\n" }; const char Traditional_Chinese[] = { "\nTraditional: \xe9\x80\x99\xe4\xba\x9b\xe7\xb7\xa8\xe7\xa2\xbc\xe7\xb3\xbb\xe7\xb5\xb1\xe4\xb9\x9f\xe6\x9c\x83\xe4\xba\x92\xe7\x9b\xb8\xe8\xa1\x9d\xe7\xaa\x81\xe4\xb9\x9f\xe5\xb0\xb1\xe6\x98\xaf\xe8\xaa\xaa\xe5\x85\xa9\xe7\xa8\xae" }; int i; GUI_Clear(); i = 0; GUI_ITYPE_GetFamilyName(&_aFont[i], _acFamily, sizeof(_acFamily)); GUI_ITYPE_GetStyleName(&_aFont[i], _acStyle, sizeof(_acStyle)); GUI_SetFont(&GUI_Font20_1); GUI_DispString(" Linked font: "); GUI_DispString(_acFamily); GUI_DispString(", "); GUI_DispString(_acStyle); GUI_DispNextLine(); GUI_DrawHLine(GUI_GetDispPosY(), 0, 0xfff); // // Show alphabet strings // GUI_SetFont(&_aFont[i]); GUI_DispString("** iType User Defined Linked Font **"); GUI_UC_SetEncodeUTF8(); GUI_ITYPE_SetOutputStyle(&_aFont[i], &_aCS[i], (long)ITYPE_NO_EFFECT); // Turn off all effects GUI_ITYPE_SetOutputStyle(&_aFont[i], &_aCS[i], (long)ITYPE_GRAYMAP4); // Graymap output GUI_DispString("\nabcdefghijklmnopqrstuvwxyz\n"); GUI_DispString("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n"); // // Show language strings // GUI_DispString(Bopomofo_string); GUI_DispString(Simplified_Chinese); GUI_DispString(Traditional_Chinese); GUI_UC_SetEncodeNone(); GUI_Delay(PAGE_DELAY); }
__task void init (void) { os_mut_init(mut_GLCD); os_mut_init(mut_Gclock); GUI_UC_SetEncodeUTF8(); if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR6) !=1) { zhuantskid = os_tsk_create (zhuan1, 0); maintskid = os_tsk_create (Main_Task, 0); keytskid = os_tsk_create (phase_KEY, 0); servertskid = os_tsk_create (Server_Task, 0); }else { Time3Disable(); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG,GPIO_PIN_3,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG,GPIO_PIN_2,GPIO_PIN_SET); } os_tsk_create (power, 0); // os_tmr_create(500,2); os_tsk_delete_self (); }
/********************************************************************* * * _cbCallback */ static void _cbCallback(WM_MESSAGE * pMsg) { int NCode; int Id; int Sel; char ac[80]; WM_HWIN hDlg; WM_HWIN hMulti; WM_HWIN hItem; hDlg = pMsg->hWin; hMulti = WM_GetDialogItem(hDlg, GUI_ID_MULTIEDIT0); switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0); SLIDER_SetRange(hItem, 1, 100); SLIDER_SetValue(hItem, 100); hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER1); SLIDER_SetRange(hItem, 1, 152); SLIDER_SetValue(hItem, 152); hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER2); SLIDER_SetRange(hItem, 0, 5); SLIDER_SetValue(hItem, 2); hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER3); SLIDER_SetRange(hItem, 0, 100); SLIDER_SetValue(hItem, 0); hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT1); EDIT_SetDecMode(hItem, 0, 0, 1000, 0, 0); hItem = WM_GetDialogItem(hDlg, GUI_ID_RADIO2); RADIO_SetText(hItem, "None", 0); RADIO_SetText(hItem, "Char", 1); RADIO_SetText(hItem, "Word", 2); hItem = WM_GetDialogItem(hDlg, GUI_ID_RADIO3); RADIO_SetText(hItem, "None", 0); RADIO_SetText(hItem, "Simple", 1); RADIO_SetText(hItem, "3D", 2); RADIO_SetValue(hItem, 2); RADIO_SetTextColor(hItem, GUI_BLUE); MULTIEDIT_EnableBlink(hMulti, 300, 1); MULTIEDIT_SetFont(hMulti, &GUI_Font8x16); MULTIEDIT_SetBkColor(hMulti, 0, GUI_YELLOW); MULTIEDIT_SetTextColor(hMulti, 0, GUI_BLUE); MULTIEDIT_SetAutoScrollV(hMulti, 1); MULTIEDIT_SetInsertMode(hMulti, 1); MULTIEDIT_SetPrompt(hMulti, "C:\\>"); MULTIEDIT_SetHBorder(hMulti, 2); MULTIEDIT_SetText(hMulti, "Multiedit - long line 12345678901234567890\nThis demonstrates the use of a MULTIEDIT widget"); MULTIEDIT_AddKey(hMulti, 'A'); MULTIEDIT_AddKey(hMulti, 'B'); MULTIEDIT_AddKey(hMulti, 'C'); MULTIEDIT_AddKey(hMulti, GUI_KEY_ENTER); MULTIEDIT_SetAutoScrollH(hMulti, 1); hItem = WM_GetDialogItem(hDlg, GUI_ID_BUTTON5); BUTTON_SetFocussable(hItem, 0); break; case WM_KEY: switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hDlg, 1); break; case GUI_KEY_ENTER: GUI_EndDialog(hDlg, 0); break; } break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; hItem = WM_GetDialogItem(hDlg, Id); switch (NCode) { case WM_NOTIFICATION_VALUE_CHANGED: switch (Id) { case GUI_ID_SLIDER0: Sel = SLIDER_GetValue(hItem); WM_SetYSize(hMulti, Sel); break; case GUI_ID_SLIDER1: Sel = SLIDER_GetValue(hItem); WM_SetXSize(hMulti, Sel); break; case GUI_ID_SLIDER2: Sel = SLIDER_GetValue(hItem); MULTIEDIT_SetHBorder(hMulti, Sel); break; case GUI_ID_SLIDER3: Sel = SLIDER_GetValue(hItem); MULTIEDIT_SetMaxNumChars(hMulti, Sel); break; case GUI_ID_RADIO0: // // Horizontal scrollbar // Sel = RADIO_GetValue(hItem); switch (Sel) { case 0: MULTIEDIT_SetAutoScrollH(hMulti, 1); // Auto break; case 1: MULTIEDIT_SetAutoScrollH(hMulti, 0); // Off WM_SetScrollbarH(hMulti, 0); break; case 2: MULTIEDIT_SetAutoScrollH(hMulti, 0); // On WM_SetScrollbarH(hMulti, 1); break; } break; case GUI_ID_RADIO1: // // Vertical scrollbar // Sel = RADIO_GetValue(hItem); switch (Sel) { case 0: MULTIEDIT_SetAutoScrollV(hMulti, 1); break; case 1: MULTIEDIT_SetAutoScrollV(hMulti, 0); WM_SetScrollbarV(hMulti, 0); break; case 2: MULTIEDIT_SetAutoScrollV(hMulti, 0); WM_SetScrollbarV(hMulti, 1); break; } break; case GUI_ID_RADIO2: // // Wrap // Sel = RADIO_GetValue(hItem); switch (Sel) { case 0: MULTIEDIT_SetWrapNone(hMulti); break; case 1: MULTIEDIT_SetWrapChar(hMulti); break; case 2: MULTIEDIT_SetWrapWord(hMulti); break; } break; case GUI_ID_RADIO3: // // Effect type // Sel = RADIO_GetValue(hItem); switch (Sel) { case 0: WIDGET_SetEffect(hMulti, &WIDGET_Effect_None); break; case 1: WIDGET_SetEffect(hMulti, &WIDGET_Effect_Simple); break; case 2: WIDGET_SetEffect(hMulti, &WIDGET_Effect_3D); break; } break; } break; case WM_NOTIFICATION_RELEASED: // React only if released WM_GetDialogItem(hDlg, Id); switch (Id) { case GUI_ID_OK: GUI_EndDialog(hDlg, 0); break; case GUI_ID_CANCEL: GUI_EndDialog(hDlg, 1); break; case GUI_ID_CHECK0: _RdOnly ^= 1; MULTIEDIT_SetReadOnly(hMulti, _RdOnly); break; case GUI_ID_CHECK1: _RTF8 ^= 1; if (_RTF8) { GUI_UC_SetEncodeUTF8(); } else { GUI_UC_SetEncodeNone(); } WM_InvalidateWindow(hMulti); break; case GUI_ID_CHECK2: _Password ^= 1; MULTIEDIT_SetPasswordMode(hMulti, _Password); break; case GUI_ID_BUTTON1: hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0); EDIT_GetText(hItem, &ac[0], sizeof(ac)); MULTIEDIT_SetPrompt(hMulti, ac); break; case GUI_ID_BUTTON2: hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT1); MULTIEDIT_SetCursorOffset(hMulti, EDIT_GetValue(hItem)); WM_SetFocus(hMulti); break; case GUI_ID_BUTTON3: MULTIEDIT_SetText(hMulti, "Short text"); break; case GUI_ID_BUTTON4: MULTIEDIT_SetText(hMulti, "Long text\n123456789012345678901234567890\nLast line\n"); break; case GUI_ID_BUTTON5: MULTIEDIT_AddText(hMulti, "Added"); break; case GUI_ID_BUTTON6: MULTIEDIT_SetFont(hMulti, &GUI_Font8x16); break; case GUI_ID_BUTTON7: MULTIEDIT_SetFont(hMulti, &GUI_Font16_1); break; } break; } break; default: WM_DefaultProc(pMsg); } }
/********************************************************************* * * MainTask */ void MainTask(void) { const char * pText; GUI_RECT Rect; U16 xSizeScreen; U16 ySizeScreen; U16 xSizeItem; U16 ySizeItem; U16 xSize; U16 ySize; U16 xOff; U16 yOff; U8 NumLanguagesCSV; U8 ItemCnt; U8 LangCnt; GUI_Init(); GUI_UC_SetEncodeUTF8(); xSizeScreen = LCD_GetXSize(); ySizeScreen = LCD_GetYSize(); if ((xSizeScreen < XSIZE_MIN) || (ySizeScreen < YSIZE_MIN)) { GUI_DEBUG_ERROROUT("Inaccurate display size."); } // // Stretch the sample up to a size of #define XSIZE_MAX * YSIZE_MAX. // Above that display size the sample is centered on the according axis. // if (xSizeScreen > XSIZE_MAX) { xOff = (xSizeScreen - XSIZE_MAX) / 2; xSize = XSIZE_MAX; } else { xOff = 0; xSize = xSizeScreen; } if (ySizeScreen > YSIZE_MAX) { yOff = (ySizeScreen - YSIZE_MAX) / 2; ySize = YSIZE_MAX; } else { yOff = 0; ySize = ySizeScreen; } #ifdef WIN32 _CreateLanguageResources(); #endif // // Draw background // xSizeItem = xSize / NUM_LANGUAGES; ySizeItem = (ySize - HEIGHT_TOP) / NUM_ITEMS; GUI_SetBkColor(GUI_DARKBLUE); GUI_Clear(); GUI_DrawGradientV(0, HEIGHT_TOP, xSizeScreen - 1, ySizeScreen - 1, GUI_DARKBLUE, GUI_DARKGRAY); // // Draw frames // Rect.x0 = xOff + BORDER_SIZE; Rect.x1 = xOff + xSizeItem * 2 - BORDER_SIZE; Rect.y0 = yOff + HEIGHT_TOP + BORDER_SIZE; Rect.y1 = ySizeScreen - yOff - BORDER_SIZE - 1; GUI_DrawRectEx(&Rect); GUI_DrawHLine(Rect.y0 + ySizeItem, Rect.x0, Rect.x1); Rect.x0 = xOff + xSizeItem * 2 + BORDER_SIZE; Rect.x1 = xSizeScreen - xOff - BORDER_SIZE; GUI_DrawRectEx(&Rect); GUI_DrawHLine(Rect.y0 + ySizeItem, Rect.x0, Rect.x1); // // Display headlines // GUI_SetFont(&GUI_Font20B_ASCII); GUI_SetTextMode(GUI_TM_TRANS); Rect.x0 = xOff; Rect.x1 = xOff + xSize - 1; Rect.y0 = yOff; Rect.y1 = yOff + HEIGHT_HEADLINE_1 - 1; GUI_DispStringInRect("emWin - Language Resources", &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); GUI_SetFont(&GUI_Font13B_ASCII); Rect.x1 = xOff + xSizeItem * 2 - 1; Rect.y0 = yOff + HEIGHT_HEADLINE_1; Rect.y1 = yOff + HEIGHT_TOP - 1; GUI_DispStringInRect("CSV file", &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); Rect.x0 = Rect.x1; Rect.x1 = xSizeScreen - xOff - 1; GUI_DispStringInRect("Text file", &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); // // Load resource files // GUI_LANG_SetMaxNumLang(NUM_LANGUAGES); #ifdef WIN32 NumLanguagesCSV = GUI_LANG_LoadCSVEx(_GetData, &_ResFileName[0]); GUI_LANG_LoadTextEx(_GetData, &_ResFileName[1], NumLanguagesCSV); #else NumLanguagesCSV = GUI_LANG_LoadCSV(_acGUI_LANG_CSV_Ger_Eng, sizeof(_acGUI_LANG_CSV_Ger_Eng)); GUI_LANG_LoadText(_acGUI_LANG_TXT_Jap, sizeof(_acGUI_LANG_TXT_Jap), NumLanguagesCSV); #endif // // Display the resource text in the calculated rectangle // using the according font for headline and body. // for (LangCnt = 0; LangCnt < NUM_LANGUAGES; LangCnt++) { Rect.x0 = xOff + LangCnt * xSizeItem; Rect.x1 = Rect.x0 + xSizeItem; for (ItemCnt = 0; ItemCnt < NUM_ITEMS; ItemCnt++) { pText = GUI_LANG_GetTextEx(ItemCnt, LangCnt); Rect.y0 = yOff + HEIGHT_TOP + (ItemCnt * ySizeItem); Rect.y1 = Rect.y0 + ySizeItem; if (ItemCnt == 0) { GUI_SetFont(_Languages[LangCnt].pFontHeadline); } else { GUI_SetFont(_Languages[LangCnt].pFontBody); } GUI_DispStringInRect(pText, &Rect, GUI_TA_HCENTER | GUI_TA_VCENTER); } } while (1) { GUI_Delay(100); } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; int i; switch (pMsg->MsgId) { case WM_INIT_DIALOG: GUI_UC_SetEncodeUTF8(); // // Initialization of 'Multiedit' // hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIEDIT_0); MULTIEDIT_SetFont(hItem,&GUI_Font_Song_16); MULTIEDIT_SetWrapWord(hItem);//启用自动换行 MULTIEDIT_SetReadOnly(hItem,1);//只读模式 //MULTIEDIT_SetText(hItem, FHD_PDA); for(i = 0;i < 14;i++) { MULTIEDIT_AddText(hItem, helpText[i]); } hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_0); BUTTON_SetBkColor(hItem,0,GUI_YELLOW); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); #if 0 hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_1); BUTTON_SetBkColor(hItem,0,GUI_GREEN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); #endif break; case WM_KEY: { if((((WM_KEY_INFO *)(pMsg->Data.p))->PressedCnt)==1) { switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_YELLOW: WM_DeleteWindow(g_hWin_Help); g_hWin_Help=WM_HWIN_NULL; WM_ShowWindow(g_hWin_TimeBar); WM_ShowWindow(g_hWin_Date); WM_SetFocus(g_hWin_Menu); break; case GUI_KEY_GREEN: //GUI_WARN(g_hWin_Help, GUI_MSBOX_UPDATE_CFM); //GUI_WARN(g_hWin_Help,8); //DEV_Power_Off(); //while(1); break; } } } break; default: WM_DefaultProc(pMsg); break; } }
void Test_Font_Drawing_Performance() { GUI_TIMER_TIME StartTime, EndTime; int Sec, ms; char cString[65]; GUI_UC_SetEncodeUTF8(); //繁體中文 速度測試 GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_SetFont(&GUI_FontAR_Mingti_Medium_B523); StartTime = GUI_GetTime(); DisplayArticle((const char*)_acTraditionalCHN_Article); EndTime = GUI_GetTime(); Sec = (EndTime - StartTime) / 1000; ms = (EndTime - StartTime) % 1000; GUI_MULTIBUF_End(); GUI_Delay(1500); GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_DispStringAt("繁體中文字數",280,200); snprintf(cString, sizeof(cString)-1,"%d", sizeof(_acTraditionalCHN_Article)/2); GUI_DispStringAt(cString,500,200); GUI_DispStringAt("總花費時間",280,280); snprintf(cString, sizeof(cString)-1,"%d.%d",Sec,ms); GUI_DispStringAt(cString,460,280); GUI_DispStringAt("秒",600,280); GUI_MULTIBUF_End(); GUI_Delay(3000); //簡體中文 速度測試 GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_SetFont(&GUI_FontHG_GB_Gothic23); StartTime = GUI_GetTime(); DisplayArticle((const char*)_acSimplifiedCHN_Article); EndTime = GUI_GetTime(); Sec = (EndTime - StartTime) / 1000; ms = (EndTime - StartTime) % 1000; GUI_MULTIBUF_End(); GUI_Delay(1500); GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_DispStringAt("简体中文字数",280,200); snprintf(cString, sizeof(cString)-1,"%d", sizeof(_acSimplifiedCHN_Article)/2); GUI_DispStringAt(cString,500,200); GUI_DispStringAt("总花费时间",280,280); snprintf(cString, sizeof(cString)-1,"%d.%d",Sec,ms); GUI_DispStringAt(cString,460,280); GUI_DispStringAt("秒",600,280); GUI_MULTIBUF_End(); GUI_Delay(3000); //日文 速度測試 GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_SetFont(&GUI_FontHGGothicB19); StartTime = GUI_GetTime(); DisplayArticle((const char*)_acJapanese_Article); EndTime = GUI_GetTime(); Sec = (EndTime - StartTime) / 1000; ms = (EndTime - StartTime) % 1000; GUI_MULTIBUF_End(); GUI_Delay(1500); GUI_MULTIBUF_Begin(); GUI_Clear(); GUI_DispStringAt("日文字數",280,200); snprintf(cString, sizeof(cString)-1,"%d", sizeof(_acJapanese_Article)/2); GUI_DispStringAt(cString,440,200); GUI_DispStringAt("總花費時間:",280,280); snprintf(cString, sizeof(cString)-1,"%d.%d",Sec,ms); GUI_DispStringAt(cString,460,280); GUI_DispStringAt("秒",600,280); GUI_MULTIBUF_End(); GUI_Delay(3000); }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; WM_HWIN hNumPad; u8 Mb_Val; switch (pMsg->MsgId) { case WM_INIT_DIALOG: // //Initialization of Window // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, GUI_LIGHTBLUE); // // Initialization of 'Button' // GUI_UC_SetEncodeUTF8(); GUI_SetFont(&GUI_FontSongTi16); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_BACK); BUTTON_SetFont(hItem,&GUI_FontSongTi12); BUTTON_SetText(hItem, _StringHZ[2]); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_ENTER); BUTTON_SetFont(hItem,&GUI_FontSongTi12); BUTTON_SetText(hItem, _StringHZ[3]); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_NEW); BUTTON_SetFont(hItem,&GUI_FontSongTi16); BUTTON_SetText(hItem, _StringHZ[0]); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_OPEN); BUTTON_SetFont(hItem,&GUI_FontSongTi16); BUTTON_SetText(hItem, _StringHZ[1]); // // Initialization of 'Header' // hItem = WM_GetDialogItem(pMsg->hWin, ID_HEADER_1); HEADER_AddItem(hItem, 80, "LeCoder", 14); // //Initialize EDIT0 // hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIEDIT_0); MULTIEDIT_SetText(hItem, ""); //清空EDIT内容 MULTIEDIT_SetFocussable(hItem,1); //设为捕捉光标焦点 MULTIEDIT_SetAutoScrollV(hItem,1);//自动竖直滑块 MULTIEDIT_SetAutoScrollH(hItem,1);//自动水平滑块 MULTIEDIT_SetWrapWord(hItem); //自动换行 MULTIEDIT_SetFocussable(hItem, 1); WM_SetFocus(hItem); break; case WM_PAINT: GUI_SetColor(GUI_RED); GUI_SetFont(&GUI_FontSongTi12); GUI_DispStringAt(_StringHZ[4], 100, 25); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_BACK: // Notifications sent by 'Button' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Key_Value = WINDOW_TOP; break; } break; case ID_BUTTON_ENTER: // Notifications sent by 'ENTER' case ID_BUTTON_NEW: // Notifications sent by 'New' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: //get the program name in the edit hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIEDIT_0); MULTIEDIT_GetText(hItem,program_name,sizeof(program_name)); //warning the situation of empty program name if(strcmp(program_name, "") == 0) { _MessageBox(_StringHZ[4],_StringHZ[5], &Mb_Val); } else { CreateWindow_1_1(); } break; } break; case ID_BUTTON_OPEN: // Notifications sent by 'Open' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: CreateWindow_TreeView(); break; } break; case ID_HEADER_1: // Notifications sent by 'Header' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_MOVED_OUT: break; } break; case ID_MULTIEDIT_0: // Notifications sent by 'Edit1' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: hNumPad = Create_NumPad(pMsg->hWin); WM_MakeModal(hNumPad); GUI_ExecCreatedDialog(hNumPad); break; case WM_NOTIFICATION_VALUE_CHANGED: break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; int key_num; // USER START (Optionally insert additional variables) // USER END int i; switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Edit' // GUI_UC_SetEncodeUTF8(); #if 1 hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_2); BUTTON_SetBkColor(hItem,0,GUI_GREEN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); #endif hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_3); BUTTON_SetBkColor(hItem,0,GUI_YELLOW); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_4); BUTTON_SetBkColor(hItem,0,GUI_CYAN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_1); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); BUTTON_SetBkColor(hItem,0,GUI_CYAN); hItem=WM_GetDialogItem(pMsg->hWin,ID_BUTTON_0); BUTTON_SetBkColor(hItem,0,GUI_CYAN); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0); WM_DisableWindow(hItem); EDIT_SetText(hItem, (const char *)GUI_hex2MeterAddrStr(g_sys_ctrl.recentMeterAddr, 6)); for(i = 0;i < 5; i++) { hItem=WM_GetDialogItem(pMsg->hWin,(ID_EDIT_3+i)); EDIT_SetText(hItem, "0"); WIDGET_AndState(hItem,WIDGET_STATE_FOCUSSABLE); WM_DisableWindow(hItem); } PUB_InitFreq(pMsg,ID_EDIT_2); hItem = WM_GetDialogItem(pMsg->hWin,ID_EDIT_2); WM_DisableWindow(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1); if(DL645_2007 == g_rom_para.protocol) { //EDIT_SetText(hItem, pReadSel_07[g_sys_ctrl.data_item_index]); EDIT_SetText(hItem, pReadSel_07[0]); memcpy(g_gui_para.dataItem, &c_645dataItemDef[g_rom_para.protocol][0], 4); g_gui_para.ctrlCode=0x11; } else if(DL645_1997 == g_rom_para.protocol) { //EDIT_SetText(hItem, pReadSel_97[g_sys_ctrl.data_item_index]); EDIT_SetText(hItem, pReadSel_97[0]); memcpy(g_gui_para.dataItem, &c_645dataItemDef[g_rom_para.protocol][0], 2); g_gui_para.ctrlCode=0x01; } WM_DisableWindow(hItem); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGBAR_0); PROGBAR_SetBarColor(hItem,0,GUI_GREEN); break; case WM_KEY: Id = WM_GetId(pMsg->hWinSrc); if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt) == 1) { switch(((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_YELLOW: WM_DeleteWindow(g_hWin_ReadMeter); g_hWin_ReadMeter=HBWIN_NULL; WM_BringToBottom(g_hWin_msg); WM_HideWindow(g_hWin_msg); WM_ShowWindow(g_hWin_TimeBar); WM_ShowWindow(g_hWin_Date); WM_SetFocus(g_hWin_menu); RMD_key_cnt = 0; g_gui_para.state = GUI_STATE_IDLE; break; case GUI_KEY_GREEN: g_hWin_MeterTime = CreateExtFnct(); hItem = MTD_GetMeterAddr(); WM_SetFocus(hItem); MTD_SetAddrBkColor(hItem); break; case GUI_KEY_F1: /*获取表号*/ if(CHANNEL_RF != g_rom_para.channel) { g_gui_para.ctrlCode = 0x13; g_gui_para.cmd = GUI_CMD_BROAD_READ_ADDR; g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } else { ERR_NOTE(g_hWin_ReadMeter,GUI_MSBOX_FUN_DISALE_ERROR); } break; case '#': WM_BringToTop(g_hWin_msg); WM_ShowWindow(g_hWin_msg); WM_SetFocus(g_hWin_msg); break; case GUI_KEY_F2: /*抄表*/ if(DEV_OK == RMD_Get_Para(pMsg))//获取参数数据 { g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } break; case GUI_KEY_UP: RMD_SelEdt_Up(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); break; case GUI_KEY_DOWN: RMD_SelEdt_Down(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); break; case GUI_KEY_ENTER: switch(Id) { case ID_EDIT_0: g_sys_ctrl.selectWidget=EDIT_METER_NUM; g_hWin_Input=Create_Edit_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); break; case ID_EDIT_1: g_sys_ctrl.selectWidget=LISTBOX_READ_SEL; g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); break; case ID_EDIT_2: //g_sys_ctrl.selectWidget=LISTBOX_SPEED; //g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_Input); g_hWin_freq = CreateSpeed(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_freq); break; } } } break; #if 0 if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==1)//按键点击。 { switch(Id) { case ID_EDIT_0: if(key_num==GUI_KEY_ENTER) { g_sys_ctrl.selectWidget=EDIT_METER_NUM; g_hWin_Input=Create_Edit_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); } break; case ID_EDIT_1: if(key_num==GUI_KEY_ENTER) { g_sys_ctrl.selectWidget=LISTBOX_READ_SEL; g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); WM_SetFocus(g_hWin_Input); } break; case ID_EDIT_2: if(key_num==GUI_KEY_ENTER) { //g_sys_ctrl.selectWidget=LISTBOX_SPEED; //g_hWin_Input=Create_ListBox_Set(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_Input); g_hWin_freq = CreateSpeed(g_hWin_ReadMeter); //WM_SetFocus(g_hWin_freq); } break; } } switch(((WM_KEY_INFO *)(pMsg->Data.p))->Key) { case GUI_KEY_YELLOW: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==1) { WM_DeleteWindow(g_hWin_ReadMeter); g_hWin_ReadMeter=HBWIN_NULL; WM_BringToBottom(g_hWin_msg); WM_HideWindow(g_hWin_msg); WM_ShowWindow(g_hWin_TimeBar); WM_ShowWindow(g_hWin_Date); WM_SetFocus(g_hWin_menu); RMD_key_cnt = 0; g_gui_para.state = GUI_STATE_IDLE; } break; case GUI_KEY_F1: /*获取表号*/ if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { if(CHANNEL_RF != g_rom_para.channel) { g_gui_para.cmd = GUI_CMD_BROAD_READ_ADDR; g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } } break; case '#': if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { WM_BringToTop(g_hWin_msg); WM_ShowWindow(g_hWin_msg); WM_SetFocus(g_hWin_msg); } break; case GUI_KEY_F2: /*抄表*/ if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { if(DEV_OK == RMD_Get_Para(pMsg))//获取参数数据 { g_gui_para.state = GUI_STATE_AMR; OSMboxPost(g_sys_ctrl.up_mbox, (void*)&g_gui_para); } } break; case GUI_KEY_UP: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { RMD_SelEdt_Up(pMsg); //RMD_Color_Change(); } break; case GUI_KEY_DOWN: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { RMD_SelEdt_Down(pMsg); //RMD_Color_Change(); GUI_Color_Change(g_hWin_ReadMeter, ID_EDIT_0, 3); } break; case GUI_KEY_TAB: if((((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)==0) { //RMD_Sel_Down(pMsg); RMD_Color_Change(); } break; #endif case WM_MSG_CLOSE: WM_DeleteWindow(g_hWin_ReadMeter); break; default: WM_DefaultProc(pMsg); break; } } /********************************************************************* * * CreateReadMeter */ WM_HWIN CreateReadMeter(void); WM_HWIN CreateReadMeter(void) { WM_HWIN hWin; hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, g_hWin_menu, 0, 0); return hWin; }
__task void power (void) { unsigned int count =0; unsigned int temp; static GPIO_InitTypeDef GPIO_InitStruct; GPIO_PinState bitstatus; while(1) { GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); if(bitstatus==GPIO_PIN_RESET) { os_dly_wait (200); bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); if(bitstatus==GPIO_PIN_RESET) { if(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR6)==0) { count =0; do{ bitstatus = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); count++; if(count>5000000) { Time3Disable(); GUI_Clear(); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET); if(zhuantskid !=NULL) os_tsk_delete(zhuantskid); if(maintskid !=NULL) os_tsk_delete(maintskid); if(keytskid !=NULL) os_tsk_delete(keytskid); if(servertskid !=NULL) os_tsk_delete(servertskid); if(meuntskid !=NULL) os_tsk_delete(meuntskid); if(setsystemtimetskid !=NULL) os_tsk_delete(setsystemtimetskid); if(setledlighttskid !=NULL) os_tsk_delete(setledlighttskid); if(setledtimetskid !=NULL) os_tsk_delete(setledtimetskid); if(setsoundtskid !=NULL) os_tsk_delete(setsoundtskid); if(setworkmodetskid !=NULL) os_tsk_delete(setworkmodetskid); if(yushentskid !=NULL) os_tsk_delete(yushentskid); HAL_RTCEx_BKUPWrite(&RtcHandle,RTC_BKP_DR6,1); // 说明是正常关机状态; HAL_GPIO_WritePin(GPIOG,GPIO_PIN_3,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOG,GPIO_PIN_2,GPIO_PIN_SET); } }while(bitstatus==GPIO_PIN_RESET); }else { os_mut_init(mut_GLCD); os_mut_init(mut_Gclock); GUI_UC_SetEncodeUTF8(); zhuantskid = os_tsk_create (zhuan1, 0); maintskid = os_tsk_create (Main_Task, 0); keytskid = os_tsk_create (phase_KEY, 0); servertskid = os_tsk_create (Server_Task, 0); Time3Enable(HAL_RTCEx_BKUPRead(&RtcHandle, RTC_BKP_DR1)); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET); HAL_RTCEx_BKUPWrite(&RtcHandle,RTC_BKP_DR6,0); // 清楚掉关机状态 } } } } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { int NCode; int Id; // USER START (Optionally insert additional variables) WM_HWIN hWin = pMsg->hWin; // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of '2014-05-08 12:00' // // USER START (Optionally insert additional code for further widget initialization) //_cb_DialogInit(pMsg); GUI_UC_SetEncodeUTF8(); BUTTON_SetFont(WM_GetDialogItem(pMsg->hWin,GUI_ID_BUTTON0),&GUI_Fontweiruanyahei20); // USER END break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_0: // Notifications sent by 'Test' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_1: // Notifications sent by 'Data' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_2: // Notifications sent by 'Settime' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_3: // Notifications sent by 'Language' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; // USER START (Optionally insert additional code for further Ids) // USER END } break; // USER START (Optionally insert additional message handling) // USER END default: WM_DefaultProc(pMsg); break; } }