/**监控列表 LISTVIEW 的监听器(回调函数) * */ static void myListViewListener(WM_MESSAGE* pMsg) { const WM_KEY_INFO * pInfo; WM_HWIN thisListView = pMsg->hWin; switch(pMsg->MsgId) { // case WM_PAINT: // // GUI_SetColor(GUI_BLACK); // GUI_SetFont(&GUI_Font24_1); // GUI_DispStringAt("egg",330,160); // GUI_DispStringAt("eggg",400,450); // LISTVIEW_Callback(pMsg); // break; case WM_SET_FOCUS: if(LISTVIEW_GetNumRows(pMsg->hWin) && (LISTVIEW_GetSel(pMsg->hWin)<0)) LISTVIEW_SetSel(pMsg->hWin, 0); LISTVIEW_Callback(pMsg); break; case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch(pInfo->Key) { case GUI_KEY_UP: case GUI_KEY_DOWN: LISTVIEW_Callback(pMsg); showSelectedBoatInfo(thisListView); break; case GUI_KEY_LEFT: WM_SetFocus(menuWin); break; case GUI_KEY_MENU: // WM_BringToBottom(thisListView); WM_BringToTop(hDlg_FishMap); WM_SetFocus(hDlg_FishMap); break; default: LISTVIEW_Callback(pMsg); break; } break; default: LISTVIEW_Callback(pMsg); break; } }
/********************************************************************* * * _cbList * * Function description * Callback of the LISTVIEW widget. */ static void _cbList(WM_MESSAGE * pMsg) { int NCode; switch (pMsg->MsgId) { case WM_NOTIFY_PARENT: NCode = pMsg->Data.v; if (NCode == WM_NOTIFICATION_CHILD_DELETED) { WM_SendMessage(WM_GetParent(pMsg->hWin), pMsg); break; } LISTVIEW_Callback(pMsg); break; default: LISTVIEW_Callback(pMsg); } }
/**监控设置 LISTVIEW 的监听器(回调函数) * */ static void myListViewListener(WM_MESSAGE* pMsg) { const WM_KEY_INFO * pInfo; WM_HWIN thisListView = pMsg->hWin; int selectedRow = -1; int index = -1; switch(pMsg->MsgId) { case WM_SET_FOCUS: if(LISTVIEW_GetNumRows(pMsg->hWin) && (LISTVIEW_GetSel(pMsg->hWin)<0)) LISTVIEW_SetSel(pMsg->hWin, 0); updateListViewContent(thisListView); LISTVIEW_Callback(pMsg); break; case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch(pInfo->Key) { case GUI_KEY_UP: case GUI_KEY_DOWN: LISTVIEW_Callback(pMsg); //showSelectedBoatInfo(thisListView); break; case GUI_KEY_LEFT: WM_SetFocus(menuWin); break; case GUI_KEY_RIGHT: WM_SetFocus(etWin); break; case GUI_KEY_ENTER: // selectedRow = LISTVIEW_GetSel(thisListView); // index = getSelectedBoatIndex(thisListView, 1, selectedRow); index = LISTVIEW_GetSel(thisListView); if(index >= 0) { // if( mntBoats[index].MNTState == MNTState_Default ) // { // mntBoats[index].MNTState = MNTState_None; // LISTVIEW_SetItemText(thisListView, 2, index, "x"); // } // else if(mntBoats[index].MNTState == MNTState_Monite) // { // mntBoats[index].MNTState = MNTState_Choosen; // LISTVIEW_SetItemText(thisListView, 2, index, "o"); // } // switch(mntBoats[index].MNTState) // { // case MNTState_Choosen: // mntBoats[index].MNTState = MNTState_Monite; // LISTVIEW_SetItemText(thisListView, 2, index, "x"); // break; // case MNTState_Default: // mntBoats[index].MNTState = MNTState_None; // LISTVIEW_SetItemText(thisListView, 2, index, "x"); // break; // case MNTState_Monite: // mntBoats[index].MNTState = MNTState_Choosen; // LISTVIEW_SetItemText(thisListView, 2, index, "o"); // break; // case MNTState_None: // mntBoats[index].MNTState = MNTState_Default; // LISTVIEW_SetItemText(thisListView, 2, index, "o"); // break; // } } break; case GUI_KEY_BACKSPACE: INFO("case backspace"); WM_BringToTop(confirmWin); WM_SetFocus(confirmWin); break; case GUI_KEY_MENU: WM_BringToTop(hDlg_FishMap); WM_SetFocus(hDlg_FishMap); break; default: LISTVIEW_Callback(pMsg); break; } break; default: LISTVIEW_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; } }
static void mylistview(WM_MESSAGE *pMsg) { WM_HWIN hWin; CHAR RowNum; CHAR RowLineIndex; const WM_KEY_INFO *pInfo; int16_t i = 0; static char addrow = 0; hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch (pInfo->Key) { case GUI_KEY_MENU: WM_BringToTop(Menuwin); WM_SetFocus(WM_GetDialogItem(Menuwin,ID_MENU)); MENU_SetSel(WM_GetDialogItem(Menuwin,ID_MENU),0); MenuSel = 0; break; case GUI_KEY_PRINT: WM_BringToTop(PrintWin); WM_SetFocus(WM_GetDialogItem(PrintWin,ID_PrintMenu)); break; case GUI_KEY_LOC1: pCannel = " 490 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_LOC2: pCannel = "4209.5横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_CHS: pCannel = " 486 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_LOCK: SelRow = LISTVIEW_GetSel(hListview); LISTVIEW_GetItemText(hListview,0,SelRow,pStrBuf,5); InfoId = atoi(pStrBuf); Info = pInfoHeader; if (pInfoHeader) do { if (Info->ID == InfoId) { if (Info->isLocked == 0) { LISTVIEW_SetItemText(hListview,6,SelRow," 锁"); Info->isLocked = 1; } else if (Info->isLocked == 1) { LISTVIEW_SetItemText(hListview,6,SelRow,""); Info->isLocked = 0; } break; } }while (Info = Info->pNext); break; case GUI_KEY_DOWN: SelRow = LISTVIEW_GetSel(hListview); if (thispage < pageNum) { if (SelRow == 7) { thispage++; InfoSel(InfoType,thispage); DisPage(); //WM_InvalidateRect(mainwin,&PageRect); } } break; case GUI_KEY_UP: SelRow = LISTVIEW_GetSel(hListview); if(SelRow == 0 && thispage == 1) WM_SetFocus(hButton); if (thispage>1) { if(SelRow == 0) { SelBottom = 1; thispage--; InfoSel(InfoType,thispage); DisPage(); GUI_StoreKeyMsg(GUI_KEY_RIGHT,1); //选择列表中最后一行 } } break; case GUI_KEY_RIGHT: if (SelBottom == 1) { LISTVIEW_SetSel(hListview,7); SelBottom = 0; } break; case GUI_KEY_ESCAPE: SelRow = LISTVIEW_GetSel(hListview); WM_SetFocus(hButton); break; case GUI_KEY_ENTER: SelRow = LISTVIEW_GetSel(hListview); LISTVIEW_GetItemText(hListview,0,SelRow,pStrBuf,5); InfoId = atoi(pStrBuf); Info = pInfoHeader; if (pInfoHeader) do { if (Info->ID == InfoId) { if (Info->state == INFO_STT_New) LISTVIEW_SetItemBitmap(hListview,6,SelRow,10,7,NULL); if (Info->isLocked == 0) TEXT_SetText(WM_GetDialogItem(InfoText,ID_TEXT_0),""); else TEXT_SetText(WM_GetDialogItem(InfoText,ID_TEXT_0),"锁"); Info->state = INFO_STT_Choosen; sprintf(pStrBuf,"%s",pStrBuf); BUTTON_SetText(WM_GetDialogItem(InfoText,ID_BUTTON_0),pStrBuf); MULTIEDIT_SetText(WM_GetDialogItem(InfoText, ID_MULTIEDIT_0),Info->pContent); break; } }while (Info = Info->pNext); WM_BringToTop (InfoText); WM_SetFocus (InfoText); break; } case WM_POST_PAINT: //行分割线 RowNum = LISTVIEW_GetNumRows(hListview); GUI_SetColor(GUI_BLACK); for (RowLineIndex = 0; RowLineIndex<RowNum; RowLineIndex++) GUI_DrawLine(0,(68+40*(RowLineIndex)),720,(68+40*(RowLineIndex))); default : LISTVIEW_Callback(pMsg); break; } }
static void myListViewListener(WM_MESSAGE* pMsg) { const WM_KEY_INFO* pInfo; WM_HWIN thisListView = pMsg->hWin; WM_MESSAGE myMsg; int selectedRow = -1; long selectedMMSI = 0; int i = 0; Bool isAdded = FALSE; switch(pMsg->MsgId) { case WM_SET_FOCUS: if(pMsg->Data.v) { LV_Page = 0; LV_turnPage(thisListView, LV_Page); LISTVIEW_SetSel(thisListView, 0); WM_InvalidateRect(subWins[2], &lvIndicate); } else { WM_InvalidateRect(subWins[2], &lvIndicate); WM_InvalidateRect(subWins[2], &infoRect); } LISTVIEW_Callback(pMsg); break; case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch(pInfo->Key) { case GUI_KEY_UP: selectedRow = LISTVIEW_GetSel(thisListView); if(selectedRow == 0) { if(LV_Page) { LV_Page--; LV_turnPage(thisListView, LV_Page); LISTVIEW_SetSel(thisListView, LV_PAGE_SIZE-1); } } else { LISTVIEW_SetSel(thisListView, selectedRow-1); } WM_InvalidateRect(subWins[2],&lvRect); WM_InvalidateRect(subWins[2],&lvIndicate); break; case GUI_KEY_DOWN: selectedRow = LISTVIEW_GetSel(thisListView); if(selectedRow == LV_PAGE_SIZE-1) { if(LV_Page < (N_boat-1)/LV_PAGE_SIZE) { LV_Page++; LV_turnPage(thisListView, LV_Page); LISTVIEW_SetSel(thisListView, 0); } } else if(LV_Page*LV_PAGE_SIZE+selectedRow+1 < N_boat) { LISTVIEW_SetSel(thisListView, selectedRow+1); } WM_InvalidateRect(subWins[2],&lvRect); WM_InvalidateRect(subWins[2],&lvIndicate); break; case GUI_KEY_RIGHT: if(LV_Page < (N_boat-1)/LV_PAGE_SIZE) { LV_Page++; LV_turnPage(thisListView, LV_Page); LISTVIEW_SetSel(thisListView, 0); } WM_InvalidateRect(subWins[2],&lvRect); WM_InvalidateRect(subWins[2],&lvIndicate); break; case GUI_KEY_LEFT: if(LV_Page > 0) { LV_Page--; LV_turnPage(thisListView, LV_Page); LISTVIEW_SetSel(thisListView, 0); } WM_InvalidateRect(subWins[2],&lvRect); WM_InvalidateRect(subWins[2],&lvIndicate); break; case GUI_KEY_BACKSPACE: // OSSchedLock(); for(i=N_boat-1;i>=0;i--) { if(MNTState_Choosen == SimpBerthes[i].pBerth->mntState) { // SimpBerthes[i].pBerth->mntState = MNTState_Add; isAdded = MNT_add(SimpBerthes[i].pBerth); if( isAdded ) { SimpBerthes[i].pBerth->mntState = MNTState_Monitored ; } else { break; } } } // OSSchedUnlock(); myMsg.hWin = WM_GetClientWindow(menuWin); myMsg.MsgId = USER_MSG_DFULT_CNT; myMsg.Data.v = MNT_getDefaultNum(); //INFO("default num:%d",myMsg.Data.v); WM_SendMessage(myMsg.hWin, &myMsg); WM_SetFocus(menuWin); break; case GUI_KEY_MONITORING: selectedRow = LISTVIEW_GetSel(thisListView); LISTVIEW_GetItemText(thisListView, LV_AllList_Col_MMSI, selectedRow, pStrBuf, 11); selectedMMSI = strtoi(pStrBuf); if(selectedMMSI <= 0) break; for(i=N_boat;i>0;i--) { if(SimpBerthes[i-1].pBerth->Boat.user_id == selectedMMSI) { break; } } if(i) i--; else { INFO("Err!"); break; } if(SimpBerthes[i].pBerth->mntState == MNTState_None) { SimpBerthes[i].pBerth->mntState = MNTState_Choosen; LISTVIEW_SetItemText(thisListView, LV_AllList_Col_STT, selectedRow, "吖"); } break; case GUI_KEY_CANCEL: selectedRow = LISTVIEW_GetSel(thisListView); LISTVIEW_GetItemText(thisListView, LV_AllList_Col_MMSI, selectedRow, pStrBuf, 11); selectedMMSI = strtoi(pStrBuf); if(selectedMMSI <= 0) break; for(i=N_boat;i>0;i--) { if(SimpBerthes[i-1].pBerth->Boat.user_id == selectedMMSI) { break; } } if(i) i--; else { INFO("Err!"); break; } if(MNTState_Choosen == SimpBerthes[i].pBerth->mntState) { SimpBerthes[i].pBerth->mntState = MNTState_None; LISTVIEW_SetItemText(thisListView, LV_AllList_Col_STT, selectedRow, "啊"); } else if(MNTState_Monitored <= SimpBerthes[i].pBerth->mntState) { MMSI = SimpBerthes[i].pBerth->Boat.user_id; myMsg.hWin = WM_GetClientWindow(confirmWin); myMsg.hWinSrc = thisListView; myMsg.MsgId = USER_MSG_CHOOSE; myMsg.Data.v = CANCEL_MONITED; WM_SendMessage(myMsg.hWin, &myMsg); WM_BringToTop(confirmWin); WM_SetFocus(WM_GetDialogItem (confirmWin,GUI_ID_BUTTON0)); } break; case GUI_KEY_ENTER: selectedRow = LISTVIEW_GetSel(thisListView); LISTVIEW_GetItemText(thisListView, LV_AllList_Col_MMSI, selectedRow, pStrBuf, 11); selectedMMSI = strtoi(pStrBuf); if(selectedMMSI <= 0) break; for(i=0; i<N_boat; i++) { if(SimpBerthes[i].pBerth->Boat.user_id == selectedMMSI) { break; } } if(MNTState_None == SimpBerthes[i].pBerth->mntState) { SimpBerthes[i].pBerth->mntState = MNTState_Choosen; LISTVIEW_SetItemText(thisListView, LV_AllList_Col_STT, selectedRow, "吖"); } else if(MNTState_Choosen == SimpBerthes[i].pBerth->mntState) { SimpBerthes[i].pBerth->mntState = MNTState_None; LISTVIEW_SetItemText(thisListView, LV_AllList_Col_STT, selectedRow, "啊"); } else if(MNTState_Monitored == SimpBerthes[i].pBerth->mntState) { MMSI = SimpBerthes[i].pBerth->Boat.user_id; myMsg.hWin = WM_GetClientWindow(confirmWin); myMsg.hWinSrc = thisListView; myMsg.MsgId = USER_MSG_CHOOSE; myMsg.Data.v = CANCEL_MONITED; WM_SendMessage(myMsg.hWin, &myMsg); WM_BringToTop(confirmWin); WM_SetFocus(WM_GetDialogItem (confirmWin,GUI_ID_BUTTON0)); } break; default: LISTVIEW_Callback(pMsg); break; } break; case USER_MSG_REPLY: switch(pMsg->Data.v) { case REPLY_OK: LISTVIEW_SetItemText(thisListView, LV_AllList_Col_STT, LISTVIEW_GetSel(thisListView), "啊"); if(MNT_removeById(MMSI)) { for(i=N_boat-1;i>=0;i--) { if(SimpBerthes[i].pBerth->Boat.user_id == MMSI) { SimpBerthes[i].pBerth->mntState = MNTState_None; break; } } WM_SetFocus(subWins[2]); } else { INFO("Error!"); WM_SetFocus(menuWin); } break; case REPLY_CANCEL: WM_SetFocus(pMsg->hWin); break; default: INFO("Something err!"); break; } break; default: LISTVIEW_Callback(pMsg); break; } }