/********************************************************************* * * xCreateDialogBoxArray */ WM_HWIN xCreateDialogBoxArray(const xDIALOGBOX_Obj* paDialogBox, int NumDialogBox, WM_CALLBACK* cb, WM_HWIN hParent, int x0, int y0) { WM_HWIN hDialog; WM_HWIN hDialogClient; if((NumDialogBox <= 0) || (paDialogBox==NULL) || (paDialogBox->paWidget->pfCreateIndirect==NULL) )return 0; //Creat Parent Window DEBUGOUT("xCreateDialogBoxArray: Create Parent Win\r\n"); hDialog = paDialogBox->paWidget->pfCreateIndirect(paDialogBox->paWidget, hParent, x0, y0, cb); /* Create parent window */ hDialogClient = WM_GetClientWindow(hDialog); WIDGET_OrState(hDialog, paDialogBox->paWidget->Flags); WM_ShowWindow(hDialog); WM_ShowWindow(hDialogClient); while (--NumDialogBox > 0) { WM_HWIN hChildDialog; paDialogBox++; DEBUGOUT("xCreateDialogBoxArray: Create Child DownCounter:%d\r\n", NumDialogBox); hChildDialog = GUI_CreateDialogBox(paDialogBox->paWidget, paDialogBox->NumWidgets, paDialogBox->cb, hDialogClient, 0, 0); /* Create child Dialog */ WM_ShowWindow(hChildDialog); } DEBUGOUT("xCreateDialogBoxArray: Create Child DownCounter:%d\r\n", NumDialogBox); DEBUGOUT("xCreateDialogBoxArray: Create Child OK\r\n", NumDialogBox); WM_SetFocusOnNextChild(hDialog); /* Set the focus to the first child */ WM_SendMessageNoPara(hDialogClient, WM_INIT_DIALOG); return hDialog; }
/********************************************************************* * * GUI_CreateDialogbox */ WM_HWIN GUI_CreateDialogBox(const GUI_WIDGET_CREATE_INFO* paWidget, int NumWidgets, WM_CALLBACK* cb, WM_HWIN hParent, int x0, int y0) { WM_HWIN hDialog, hDialogClient; hDialog = paWidget->pfCreateIndirect(paWidget, hParent, x0, y0, cb); /* Create parent window */ if (!hDialog) { return 0; } hDialogClient = WM_GetClientWindow(hDialog); WIDGET_OrState(hDialog, paWidget->Flags); WM_ShowWindow(hDialog); WM_ShowWindow(hDialogClient); while (--NumWidgets > 0) { WM_HWIN hChild; paWidget++; hChild = paWidget->pfCreateIndirect(paWidget, hDialogClient, 0, 0, 0); /* Create child window */ if (!hChild) { WM_DeleteWindow(hDialog); return 0; } WM_ShowWindow(hChild); } WM_SetFocusOnNextChild(hDialog); /* Set the focus to the first child */ WM_SendMessageNoPara(hDialogClient, WM_INIT_DIALOG); return hDialog; }
static void sldListener(WM_MESSAGE * pMsg) { const WM_KEY_INFO * pInfo; WM_MESSAGE myMsg; switch(pMsg->MsgId) { case WM_KEY: pInfo = (WM_KEY_INFO*)(pMsg->Data.p); switch(pInfo->Key) { case GUI_KEY_PWM_INC: WM_SendMessageNoPara(subWins[3], USER_MSG_DIM); break; case GUI_KEY_BACKSPACE: if(Mem_isEqual(&SysConf, &agentConf, sizeof(SysConf)) ) { WM_SetFocus(Slideres[0]); WM_SetFocus(menuWin); } else { myMsg.hWin = WM_GetClientWindow(confirmWin); myMsg.hWinSrc = subWins[3]; myMsg.MsgId = USER_MSG_CHOOSE; myMsg.Data.v = SYS_SETTING; WM_SendMessage(myMsg.hWin, &myMsg); WM_BringToTop(confirmWin); WM_SetFocus(WM_GetDialogItem (confirmWin,GUI_ID_BUTTON0)); } break; default: HSD_SLIDER_Callback(pMsg); break; } break; default: HSD_SLIDER_Callback(pMsg); break; } }
/**监控设置 LISTVIEW 的监听器(回调函数) * */ static void myListViewListener(WM_MESSAGE* pMsg) { const WM_KEY_INFO * pInfo; WM_HWIN thisListView = pMsg->hWin; WM_MESSAGE myMsg; int i = 0; MNT_BERTH * pIterator = NULL; int selectedRow = -1; int index = -1; switch(pMsg->MsgId) { case WM_SET_FOCUS: if(pMsg->Data.v) { if(LISTVIEW_GetNumRows(pMsg->hWin)) { LISTVIEW_SetSel(pMsg->hWin, 0); } if(pMntHeader) { myMsg.hWin = WM_GetClientWindow(mntSettingWin); myMsg.MsgId = USER_MSG_LV_MOVE; myMsg.Data.p = (void*)pMntHeader; WM_SendMessage(myMsg.hWin, &myMsg); } } LISTVIEW_Callback(pMsg); break; case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch(pInfo->Key) { case GUI_KEY_PWM_INC: WM_SendMessageNoPara(subWins[3], USER_MSG_DIM); break; case GUI_KEY_UP: case GUI_KEY_DOWN: LISTVIEW_Callback(pMsg); selectedRow = LISTVIEW_GetSel(thisListView); pIterator = pMntHeader; for(index=0; index < selectedRow; index++) { pIterator = pIterator->pNext; } myMsg.hWin = WM_GetClientWindow(mntSettingWin); myMsg.MsgId = USER_MSG_LV_MOVE; myMsg.Data.p = (void*)pIterator; WM_SendMessage(myMsg.hWin, &myMsg); break; case GUI_KEY_RIGHT: if(pMntHeader) { selectedRow = LISTVIEW_GetSel(thisListView); pIterator = pMntHeader; for(index=0; index < selectedRow; index++) { pIterator = pIterator->pNext; } if(pIterator) { if(pIterator->chsState == MNTState_Monitored) { pIterator->chsState = MNTState_Choosen; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖"); } else if(pIterator->chsState == MNTState_None) { pIterator->chsState = MNTState_Default; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖"); } } // else // { // INFO("Err!"); // } myMsg.hWin = WM_GetClientWindow(mntSettingWin); myMsg.hWinSrc = pMsg->hWin; myMsg.Data.p = (void*)pIterator; myMsg.MsgId = USER_MSG_FOCUS; WM_SendMessage(myMsg.hWin, &myMsg); } // WM_SetFocus(mntSettingWin); break; case GUI_KEY_ENTER: selectedRow = LISTVIEW_GetSel(thisListView); pIterator = pMntHeader; for(index=0;index<selectedRow;index++) { pIterator = pIterator->pNext; } switch(pIterator->chsState) { case MNTState_Choosen: pIterator->chsState = MNTState_Monitored; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "啊"); break; case MNTState_Default: pIterator->chsState = MNTState_None; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "啊"); break; case MNTState_None: pIterator->chsState = MNTState_Default; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖"); break; default: pIterator->chsState = MNTState_Choosen; LISTVIEW_SetItemText(thisListView, 2, selectedRow, "吖"); break; } break; case GUI_KEY_BACKSPACE: if(pMntHeader) { pIterator = pMntHeader; while(pIterator) { pIterator->chsState = MNTState_Monitored; pIterator = pIterator->pNext; } myMsg.hWin = WM_GetClientWindow(menuWin); myMsg.MsgId = USER_MSG_DFULT_CNT; myMsg.Data.v = 0; WM_SendMessage(myMsg.hWin, &myMsg); } WM_SetFocus(menuWin); break; case GUI_KEY_MENU: WM_BringToTop(mapWin); WM_SetFocus(mapWin); break; default: LISTVIEW_Callback(pMsg); break; } break; default: LISTVIEW_Callback(pMsg); break; } }
/********************************************************************* * * SCROLLBAR__InvalidatePartner */ void SCROLLBAR__InvalidatePartner(SCROLLBAR_Handle hObj) { /* Invalidate the partner, since it is also affected */ WM_InvalidateWindow(WM_GetScrollPartner(hObj)); WM_SendMessageNoPara(WM_GetParent(hObj), WM_NOTIFY_CLIENTCHANGE); /* Client area may have changed */ }