/********************************************************************* * * _cbDialogNumPad * * Purpose: * Callback function of the numpad. */ static void _cbDialogNumPad(WM_MESSAGE * pMsg) { GUI_RECT r; int i, NCode, Id, Pressed = 0; WM_HWIN hDlg, hItem; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: WM_GetClientRect(&r); GUI_SetColor(0x000000); GUI_DrawRect(r.x0, r.y0, r.x1, r.y1); /* Draw rectangle around it */ /* Draw the bright sides */ GUI_SetColor(0xffffff); GUI_DrawHLine(r.y0 + 1, r.x0 + 1, r.x1 - 2); /* Draw top line */ GUI_DrawVLine(r.x0 + 1, r.y0 + 1, r.y1 - 2); /* Draw the dark sides */ GUI_SetColor(0x555555); GUI_DrawHLine(r.y1-1, r.x0 + 1, r.x1 - 1); GUI_DrawVLine(r.x1-1, r.y0 + 1, r.y1 - 2); break; case WM_INIT_DIALOG: for (i = 0; i < GUI_COUNTOF(_aDialogNumPad) - 1; i++) { hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + i); BUTTON_SetFocussable(hItem, 0); /* Set all buttons non focussable */ switch (i) { case 13: BUTTON_SetBitmapEx(hItem, 0, &_bmArrowLeft, 7, 7); /* Set bitmap for arrow left button (unpressed) */ BUTTON_SetBitmapEx(hItem, 1, &_bmArrowLeft, 7, 7); /* Set bitmap for arrow left button (pressed) */ break; case 14: BUTTON_SetBitmapEx(hItem, 0, &_bmArrowRight, 7, 7); /* Set bitmap for arrow right button (unpressed) */ BUTTON_SetBitmapEx(hItem, 1, &_bmArrowRight, 7, 7); /* Set bitmap for arrow right button (pressed) */ break; } } hItem = WM_GetDialogItem(hDlg, GUI_ID_USER + 12); 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: Pressed = 1; case WM_NOTIFICATION_RELEASED: if ((Id >= GUI_ID_USER) && (Id <= (GUI_ID_USER + GUI_COUNTOF(_aDialogNumPad) - 1))) { int Key; if (Id < GUI_ID_USER + 11) { char acBuffer[10]; BUTTON_GetText(pMsg->hWinSrc, acBuffer, sizeof(acBuffer)); /* Get the text of the button */ Key = acBuffer[0]; } else { Key = _aKey[Id - GUI_ID_USER - 11]; /* Get the text from the array */ } GUI_SendKeyMsg(Key, Pressed); /* Send a key message to the focussed window */ } break; } default: WM_DefaultProc(pMsg); } }
/******************************************************************* * * _DemoButton */ static void _DemoButton(void) { BUTTON_Handle hButton; int Stat = 0; GUI_SetFont(&GUI_Font8x16); GUI_DispStringHCenterAt("Click on phone button...", 160,80); GUI_Delay(500); /* Create the button */ hButton = BUTTON_Create(142, 100, 36, 40, GUI_ID_OK, WM_CF_SHOW); /* Modify the button attributes */ BUTTON_SetBkColor (hButton, 1, GUI_RED); /* Loop until button is pressed */ while (1) { BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_1, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_1, 2, 4); if (!_Wait(50)) break; BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_0, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_0, 2, 4); if (!_Wait(45)) break; BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_2, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_2, 2, 4); if (!_Wait(50)) break; BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_0, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_0, 2, 4); if (!_Wait(45)) break; } BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_1, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_1, 2, 4); GUI_ClearRect(0, 80, 319, 120); GUI_DispStringHCenterAt("You have answered the telephone", 160, 145); GUI_Delay(2000); /* Delete button object */ BUTTON_Delete(hButton); GUI_ClearRect(0, 50, 319, 239); GUI_Delay(400); }
/******************************************************************* * * _DemoButton */ static void _DemoButton(void) { BUTTON_Handle hButton; int Stat = 0; GUI_SetFont(&GUI_Font8x16); GUI_DispStringHCenterAt("Click on phone button...", 160,80); GUI_Delay(500); /* Create the button */ hButton = BUTTON_Create(142, 100, 36, 40, GUI_ID_OK, WM_CF_SHOW); /* Modify the button attributes */ BUTTON_SetBkColor(hButton, 1, GUI_RED); BUTTON_SetBitmapEx(hButton, 0, &bm_1bpp_0, 2, 4); BUTTON_SetBitmapEx(hButton, 1, &bm_1bpp_1, 2, 4); /* Loop until button is pressed */ while(GUI_GetKey() != GUI_ID_OK) { if (Stat ^= 1) { BUTTON_SetState(hButton, BUTTON_STATE_HASFOCUS | BUTTON_STATE_INACTIVE); } else { BUTTON_SetState(hButton, BUTTON_STATE_HASFOCUS | BUTTON_STATE_PRESSED); } GUI_Delay(500); } /* Delete button object */ BUTTON_Delete(hButton); GUI_ClearRect(0, 50, 319, 239); GUI_Delay(1750); }
void BUTTON_Set_Bitmap_Ex(WM_HWIN hWin, int buttonId, const GUI_BITMAP *pBitmap, int x, int y) { WM_HWIN hItem; hItem = WM_GetDialogItem(hWin, buttonId); BUTTON_SetText(hItem, " "); BUTTON_SetBitmapEx(hItem, BUTTON_CI_DISABLED, pBitmap, x, y); BUTTON_SetBitmapEx(hItem, BUTTON_CI_PRESSED, pBitmap, x, y); BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, pBitmap, x, y); }
/** * 函 数 名: _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); } }
/********************************************************************* * * _CreateButton */ static WM_HWIN _CreateButton(int x, int y, int w, int h, int bx, int by, const char * pText, GUI_CONST_STORAGE GUI_BITMAP * pBm, int Id) { WM_HWIN hWin; hWin = BUTTON_CreateEx(x, y, w, h, WM_HBKWIN, WM_CF_SHOW, 0, Id); BUTTON_SetBitmapEx(hWin, 0, pBm, bx + 0, by + 0); BUTTON_SetBitmapEx(hWin, 1, pBm, bx + 1, by + 0); BUTTON_SetFont(hWin, &GUI_FontAA2_21); BUTTON_SetTextAlign(hWin, GUI_TA_TOP | GUI_TA_HCENTER); BUTTON_SetText(hWin, pText); BUTTON_SetBkColor(hWin, 0, GUI_LIGHTBLUE); return hWin; }
void BUTTON_SetBitmap(BUTTON_Handle hObj, int Index, const GUI_BITMAP* pBitmap) { #if BUTTON_SUPPORT_BITMAP_OFFSET BUTTON_SetBitmapEx(hObj, Index, pBitmap, 0,0); #else if (hObj) { BUTTON_Obj* pObj = BUTTON_H2P(hObj); BUTTON_ASSERT_IS_VALID_PTR(pObj); if ((unsigned int)Index > GUI_COUNTOF(pObj->apBitmap)) return; pObj->apBitmap[Index] = pBitmap; BUTTON_Invalidate(hObj); } #endif }
void CreateButton(WM_HWIN Win1,PDesktopButton pButton,int cx,int cy) { int i,x,y; int top = 10,left = 0; int size = 40; int space = 20; int bmsize = 32; int width = 480; int height = 272; x = left; y = top; //sizeof(pButton)/sizeof(pButton[0]) for(i = 0;i < 20;i++) { if(pButton[i].title[0] == 0) break; if(y + size < height) { pButton[i].button = BUTTON_CreateAsChild(x,y,size,size,Win1,10,WM_CF_SHOW); BUTTON_SetBitmapEx(pButton[i].button,0,pButton[i].hBitMap_1,(size - bmsize) / 2, 4); BUTTON_SetBitmapEx(pButton[i].button,1,pButton[i].hBitMap_2,(size - bmsize) / 2, 4); BUTTON_SetText(pButton[i].button,pButton[i].title); BUTTON_SetTextAlign(pButton[i].button,GUI_TA_BOTTOM | GUI_TA_HCENTER); //BUTTON_SetFont(pButton[i].button,&GUI_Font8x12_ASCII); //BUTTON_SetBkColor(pButton[i].button,0,GUI_GetBkColor()); WM_Paint(pButton[i].button); } x += size + space; if(x > width) { x = left; y += size + space; } } }
/********************************************************************* * * BUTTON_SetBitmap */ void BUTTON_SetBitmap(BUTTON_Handle hObj,unsigned int Index, const GUI_BITMAP* pBitmap) { BUTTON_SetBitmapEx(hObj, Index, pBitmap, 0, 0); }
/** * @brief Callback routine of the dialog * @param pMsg: pointer to a data structure of type WM_MESSAGE * @retval None */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem, hClient; GUI_RECT r; int Id, NCode, offset; switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_DURATION); TEXT_SetFont(hItem, GUI_FONT_13HB_ASCII); TEXT_SetTextColor(hItem, 0x00804000); hClient = WM_GetClientWindow(pMsg->hWin); WM_GetClientRectEx(hClient, &r); hVideoScreen = WM_CreateWindowAsChild(r.x0 + 2, r.y0 + 2, r.x1 - 2, r.y1 - 118, hClient, WM_CF_SHOW, _cbVideoWindow , 0); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlayPauseOn, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); hItem = WM_GetDialogItem(pMsg->hWin, PREV_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPreviousOn, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPreviousOff,16, 6); hItem = WM_GetDialogItem(pMsg->hWin, NEXT_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonNextOn, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonNextOff,16, 6); hItem = WM_GetDialogItem(pMsg->hWin, STOP_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonStopOn, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonStopOff,16, 6); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_PROGRESS); SLIDER_SetRange(hItem, 0, 100); SLIDER_SetWidth( hItem, 5); VideoPlayer_State = VIDEO_IDLE; _GetMJPEGFileList("0:"); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_FILE); if (FILEMGR_FileList.ptr == 0) { TEXT_SetFont(hItem, GUI_FONT_20B_ASCII); TEXT_SetTextColor(hItem, GUI_BROWN); } else { TEXT_SetFont(hItem, GUI_FONT_13B_ASCII); TEXT_SetTextColor(hItem, 0x00804000); } do_clear = 1; if (FILEMGR_FileList.ptr > 0) { if(f_open(&Video_File, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line, FA_OPEN_EXISTING | FA_READ) == FR_OK) { hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_FILE); TEXT_SetText(hItem, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line); VideoPlayer_State = VIDEO_PLAY; ImageOffset = 0; time_start = GUI_GetTime(); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlay, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); } else { /* error */ } } break; case WM_PAINT: break; case WM_NOTIFY_CHILD_HAS_FOCUS: do_clear = 1; break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; if(NCode == WM_NOTIFICATION_CHILD_DELETED) { f_close(&Video_File); WM_NotifyParent(WM_GetParent(pMsg->hWin), 0x500); break; } switch(Id) { case PLAY_BUTTON_VIDEO: // Notifications sent by 'Button' switch(NCode) { case WM_NOTIFICATION_RELEASED: if(VideoPlayer_State == VIDEO_IDLE) { if (FILEMGR_FileList.ptr > 0) { if(f_open(&Video_File, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line, FA_OPEN_EXISTING | FA_READ) == FR_OK) { hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_FILE); TEXT_SetText(hItem, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line); VideoPlayer_State = VIDEO_PLAY; ImageOffset = 0; time_start = GUI_GetTime(); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlay, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); } else { /* error */ } } else { /* No file */ } } else if(VideoPlayer_State == VIDEO_PLAY) { time_pause = GUI_GetTime(); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPause, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); VideoPlayer_State = VIDEO_PAUSE; } else if(VideoPlayer_State == VIDEO_PAUSE) { time_start = GUI_GetTime()+ time_start - time_pause ; hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlay, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); VideoPlayer_State = VIDEO_PLAY; } break; } break; case PREV_BUTTON_VIDEO: /* Notifications sent by 'Button' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: if(VideoPlayer_State != VIDEO_IDLE) { ImageOffset = 0; time_start = GUI_GetTime(); VideoPlayer_State = VIDEO_PLAY; f_close(&Video_File); goto_previous_file(); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_FILE); TEXT_SetText(hItem, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlay, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,6, 6); } break; } break; case ID_VIDEO_EXIT: switch(NCode) { case WM_NOTIFICATION_RELEASED: { GUI_EndDialog(pMsg->hWin, 0); } break; } break; case ID_VIDEO_PROGRESS: /* Notifications sent by 'Progress Bar' */ switch(NCode) { case WM_NOTIFICATION_CLICKED: { progress_bar = 1; hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_PROGRESS); ImageOffset = (Video_File.fsize * SLIDER_GetValue(hItem))/100; offset =ImageOffset - Video_File.fptr; time_start -= (offset / frame_speed); } break; case WM_NOTIFICATION_RELEASED: progress_bar = 0; break; } break; case NEXT_BUTTON_VIDEO: /* Notifications sent by 'Button' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: if(VideoPlayer_State != VIDEO_IDLE) { ImageOffset = 0; VideoPlayer_State = VIDEO_PLAY; time_start = GUI_GetTime(); f_close(&Video_File); goto_next_file(); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_FILE); TEXT_SetText(hItem, (char *)FILEMGR_FileList.file[FILEMGR_FileList.idx].line); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlay, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); } break; } break; case STOP_BUTTON_VIDEO: /* Notifications sent by 'Button' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: VideoPlayer_State = VIDEO_IDLE; f_close(&Video_File); hItem = WM_GetDialogItem(pMsg->hWin, PLAY_BUTTON_VIDEO); BUTTON_SetBitmapEx(hItem, 0, &bmButtonPlayPauseOn, 16, 6); BUTTON_SetBitmapEx(hItem, 1, &bmButtonPlayPauseOff,16, 6); break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'menu_window' // hItem = pMsg->hWin; // WINDOW_SetBkColor(hItem, 0x00FF3939); // // Initialization of 'Header' // hItem = WM_GetDialogItem(pMsg->hWin, ID_HEADER_0); HEADER_AddItem(hItem, 120, "LEDS CONTROL", 14); // // Initialization of 'Header' // hItem = WM_GetDialogItem(pMsg->hWin, ID_HEADER_1); HEADER_AddItem(hItem, 120, "SENSORS CONTROL", 14); // // Initialization of 'Header' // hItem = WM_GetDialogItem(pMsg->hWin, ID_HEADER_2); HEADER_AddItem(hItem, 120, "MODBUS DEBUG", 14); // USER START (Optionally insert additional code for further widget initialization) hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2); BUTTON_SetText( hItem, ""); BUTTON_SetBkColor (hItem, 0, GUI_RED); BUTTON_SetBkColor (hItem, 1, GUI_YELLOW); BUTTON_SetBitmapEx(hItem, 0, &bmdebug_icon, 5, 5); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetText( hItem, ""); BUTTON_SetBkColor (hItem, 0, GUI_GREEN); BUTTON_SetBkColor (hItem, 1, GUI_YELLOW); BUTTON_SetBitmapEx(hItem, 0, &bmled_icon, 5, 5); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1); BUTTON_SetText( hItem, ""); BUTTON_SetBkColor (hItem, 0, GUI_BLUE); BUTTON_SetBkColor (hItem, 1, GUI_YELLOW); BUTTON_SetBitmapEx(hItem, 0, &bmsensor_icon, 5, 5); hItem = TEXT_CreateEx(0, 40, 640, 30, 0, WM_CF_SHOW, 0, GUI_ID_TEXT0, "House Control with MODBUS"); TEXT_SetFont(hItem, &GUI_Font24B_ASCII); TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); TEXT_SetTextColor(hItem, GUI_BLACK); // 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 'led_button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) BS_wrapper(SWITCH_CONTEXT_TO_LEDS_CONTROLLER, INTERNAL, NULL); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_1: // Notifications sent by 'sensor_button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) BS_wrapper(SWITCH_CONTEXT_TO_SENSORS_CONTROLLER, INTERNAL, NULL); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_2: // Notifications sent by 'debug_button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) BS_wrapper(SWITCH_CONTEXT_TO_DEBUG_MODBUS_CONTROLLER, INTERNAL, NULL); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_HEADER_0: // Notifications sent by 'Header' 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; case WM_NOTIFICATION_MOVED_OUT: // 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_HEADER_1: // Notifications sent by 'Header' 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; case WM_NOTIFICATION_MOVED_OUT: // 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_HEADER_2: // Notifications sent by 'Header' 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; case WM_NOTIFICATION_MOVED_OUT: // 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; } }
void _cbSysSet(WM_MESSAGE* pMsg) { int i=0; BUTTON_Handle SysInfoButton,MonitCalibraButton,SetDefaultButton,ReturnButton; WM_HWIN hWin = pMsg->hWin; WM_HWIN hItem; switch (pMsg->MsgId) { case WM_CREATE: /* 设置聚焦*/ WM_SetFocus(hWin); /* 创建四个图片按钮 */ SysInfoButton = BUTTON_CreateEx(11, 44, 94, 94, hWin, WM_CF_SHOW, 0, SYS_BUTTON_INFO); BUTTON_SetBitmapEx(SysInfoButton,BUTTON_BI_UNPRESSED, &bmSys_info_xg, 0 ,0); BUTTON_SetBitmapEx(SysInfoButton,BUTTON_BI_PRESSED, &bmSys_info, 0 ,0); MonitCalibraButton = BUTTON_CreateEx(111, 44, 94, 94, hWin, WM_CF_SHOW, 0, SYS_BUTTON_MONIT); BUTTON_SetBitmapEx(MonitCalibraButton,BUTTON_BI_UNPRESSED, &bmSys_moniter_xg, 0 ,0); BUTTON_SetBitmapEx(MonitCalibraButton,BUTTON_BI_PRESSED, &bmSys_moniter, 0 ,0); SetDefaultButton = BUTTON_CreateEx(211, 44, 94, 94 ,hWin, WM_CF_SHOW, 0, SYS_BUTTON_DEFAULT); BUTTON_SetBitmapEx(SetDefaultButton,BUTTON_BI_UNPRESSED, &bmSys_default_xg, 0 ,0); BUTTON_SetBitmapEx(SetDefaultButton,BUTTON_BI_PRESSED, &bmSys_default, 0 ,0); ReturnButton = BUTTON_CreateEx(116, 170, 94, 52, hWin, WM_CF_SHOW, 0, SYS_BUTTON_RETURN); BUTTON_SetBitmapEx(ReturnButton,BUTTON_BI_UNPRESSED, &bmSys_return_xg, 0 ,0); BUTTON_SetBitmapEx(ReturnButton,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(); break; case WM_NOTIFY_PARENT: if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) { int Id = WM_GetId(pMsg->hWinSrc); switch (Id) { case SYS_BUTTON_INFO: _DeleteFrame(); _CreateFrame(&_cbSysInfo); break; case SYS_BUTTON_MONIT: /* ts_calibrate是属于是循环函数,关闭 TIM_TOUCH 避免不要 的扫描坐标,以免影响GUI的运行 */ TIM_Cmd(TIM_TOUCH,DISABLE); ts_calibrate(); _DeleteFrame(); _CreateFrame(&_cbSysSet); TIM_Cmd(TIM_TOUCH,ENABLE); break; case SYS_BUTTON_WIFI: break; case SYS_BUTTON_DEFAULT: /* 增加对话框机制*/ _hWarningDlg = CreateSetDefaultWaring(); break; case SYS_BUTTON_LANGUAGE: break; case SYS_BUTTON_RETURN: _DeleteFrame(); _CreateFrame(&_cbIndex); break; } } break; default: WM_DefaultProc(pMsg); } }