/** * @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; int NCode; int Id, Index, newpos; GUI_RECT r; int ItemNbr; int result; static char tmp[FILEMGR_FILE_NAME_SIZE]; switch (pMsg->MsgId) { case WM_INIT_DIALOG: pVideoList = (FILELIST_FileTypeDef *)k_malloc(sizeof(FILELIST_FileTypeDef)); pFileInfo = (CHOOSEFILE_INFO *)k_malloc(sizeof(CHOOSEFILE_INFO)); pVideoList->ptr = 0; PlayerSettings.d32 = k_BkupRestoreParameter(CALIBRATION_VIDEOPLAYER_SETTING_BKP); /* Initialization of 'Listview' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); LISTVIEW_AddColumn(hItem, 165, "Video", GUI_TA_VCENTER | GUI_TA_LEFT); LISTVIEW_SetGridVis(hItem, 0); LISTVIEW_SetAutoScrollV(hItem, 1); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, GUI_BLACK); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL, GUI_CYAN); hItem = BUTTON_CreateEx( 240, 202, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_STOP_BUTTON); WM_SetCallback(hItem, _cbButton_stop); hItem = BUTTON_CreateEx(92, 202, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_PREVIOUS_BUTTON); WM_SetCallback(hItem, _cbButton_previous); hItem = BUTTON_CreateEx(137, 195, 50, 45, pMsg->hWin, WM_CF_SHOW, 0, ID_PLAY_BUTTON); WM_SetCallback(hItem, _cbButton_play); hItem = BUTTON_CreateEx(195, 202, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_NEXT_BUTTON); WM_SetCallback(hItem, _cbButton_next); hItem = BUTTON_CreateEx(47, 205, 30, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_REPEAT_BUTTON); WM_SetCallback(hItem, _cbButton_repeat); hItem = BUTTON_CreateEx(315, 205, 70, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_OPEN_BUTTON); WM_SetCallback(hItem, _cbButton_open); hItem = BUTTON_CreateEx(375, 205, 70, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_ADD_BUTTON); WM_SetCallback(hItem, _cbButton_add); hItem = BUTTON_CreateEx(440, 202, 30, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_CLOSE_BUTTON); WM_SetCallback(hItem, _cbButton_close); hItem = BUTTON_CreateEx(281, 172, 25, 25, pMsg->hWin, WM_CF_SHOW, 0, ID_FULL_SCREEN_BUTTON); WM_SetCallback(hItem, _cbButton_fullscreen); hClient = WM_GetClientWindow(pMsg->hWin); WM_GetClientRectEx(hClient, &r); hFrame = WM_CreateWindowAsChild(r.x0 + 5, r.y0 + 5, r.x1 - 179, r.y1 - 75, hClient, WM_CF_SHOW, _cbVideoWindow , 0); hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_BUTTON); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGRESS_SLIDER); SLIDER_SetNumTicks(hItem, 25); hItem = WM_CreateWindowAsChild(05, 163, 275, 20, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS | WM_CF_BGND, _cbDrawProgressSlider, 0); WM_CreateWindowAsChild(479, 250, 1, 1, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS, _cbMediaConnection , 0); break; case WM_PAINT: DrawRect3D(05, 193, 300, 50); DrawRect3D(310, 193, 165, 50); break; case WM_TIMER: Id = WM_GetTimerId(pMsg->Data.v); if (Id == ID_PLAYLIST_TIMER) { playlist_select = 0; } break; case WM_DELETE: k_BkupSaveParameter(CALIBRATION_VIDEOPLAYER_SETTING_BKP, PlayerSettings.d32); WM_DeleteTimer(hPlaylistTimer); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { /* Notification sent by "Close Button" */ case ID_FULL_SCREEN_BUTTON: switch (NCode) { case WM_NOTIFICATION_RELEASED: if( VideoPlayer_State != VIDEO_IDLE) { _ShowFullScreen(); } break; } break; /* Notifications sent by 'Add' Button */ case ID_ADD_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_video; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Add video file to playlist", 0, pFileInfo); if(VideoPlayer_State == VIDEO_PLAY) { GUI_MOVIE_Pause(hMovie); } WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { if((strstr(pFileInfo->pRoot, ".emf")) || (strstr(pFileInfo->pRoot, ".EMF"))) { if(pVideoList->ptr < FILEMGR_LIST_DEPDTH) { strcpy((char *)pVideoList->file[pVideoList->ptr].name, pFileInfo->pRoot); FILEMGR_GetFileOnly ((char *)tmp, (char *)pFileInfo->pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, pVideoList->ptr, tmp); pVideoList->ptr++; } } WM_InvalidateWindow(hFrame); } if(VideoPlayer_State == VIDEO_PLAY) { GUI_MOVIE_Play(hMovie); } break; } break; /* Notifications sent by 'Open' Button */ case ID_OPEN_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_dir; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Add a folder", 0, pFileInfo); if(VideoPlayer_State == VIDEO_PLAY) { GUI_MOVIE_Pause(hMovie); } WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { _AddEntireFolder(pFileInfo->pRoot); WM_InvalidateWindow(hFrame); } if(VideoPlayer_State == VIDEO_PLAY) { GUI_MOVIE_Play(hMovie); } break; } break; /* Notification sent by "Full Screen button" */ case ID_CLOSE_BUTTON: switch (NCode) { case WM_NOTIFICATION_RELEASED: k_free(pVideoList); k_free(pFileInfo); _StopPlay(); GUI_EndDialog(pMsg->hWin, 0); break; } break; /* Notification sent by "Play Button" */ case ID_PLAY_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: if(VideoPlayer_State == VIDEO_IDLE) { if (pVideoList->ptr > 0) { _StartPlay((char *)pVideoList->file[file_pos].name); LISTVIEW_SetSel(WM_GetDialogItem(VIDEOPLAYER_hWin, ID_VIDEO_LIST), file_pos); } else { pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_video; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Open a video file", 0, pFileInfo); WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { if((strstr(pFileInfo->pRoot, ".emf")) || (strstr(pFileInfo->pRoot, ".EMF"))) { pVideoList->ptr = 0; strcpy((char *)pVideoList->file[pVideoList->ptr].name, pFileInfo->pRoot); FILEMGR_GetFileOnly (tmp, pFileInfo->pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); /* Update Play list */ strcpy((char *)pVideoList->file[pVideoList->ptr].name, pFileInfo->pRoot); ItemNbr = LISTVIEW_GetNumRows(hItem); while(ItemNbr--) { LISTVIEW_DeleteRow(hItem, ItemNbr); } LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, pVideoList->ptr, tmp); pVideoList->ptr++; file_pos = 0; LISTVIEW_SetSel(hItem, 0); _StartPlay((char *)pVideoList->file[file_pos].name); WM_InvalidateWindow(hFrame); } } } } else if(VideoPlayer_State == VIDEO_PLAY) { _PausePlay(); } else if(VideoPlayer_State == VIDEO_PAUSE) { _ResumePlay(); } break; } break; case ID_REPEAT_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_REPEAT_BUTTON); if(PlayerSettings.b.repeat == REPEAT_NONE) { PlayerSettings.b.repeat = REPEAT_ONCE; } else if(PlayerSettings.b.repeat == REPEAT_ONCE) { PlayerSettings.b.repeat = REPEAT_ALL; } else if(PlayerSettings.b.repeat == REPEAT_ALL) { PlayerSettings.b.repeat = REPEAT_NONE; } } break; case ID_STOP_BUTTON: _StopPlay(); hItem = WM_GetDialogItem(VIDEOPLAYER_hWin, ID_PROGRESS_SLIDER); SLIDER_SetValue(hItem, 0); WM_InvalidateWindow(hFrame); break; case ID_NEXT_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: if(file_pos < (pVideoList->ptr - 1)) { /* Play Next */ file_pos++; LISTVIEW_IncSel(WM_GetDialogItem(VIDEOPLAYER_hWin, ID_VIDEO_LIST)); } else if(PlayerSettings.b.repeat == REPEAT_ALL) { file_pos = 0; LISTVIEW_SetSel(WM_GetDialogItem(VIDEOPLAYER_hWin, ID_VIDEO_LIST), file_pos); } if(VideoPlayer_State == VIDEO_PLAY) { _StopPlay(); _StartPlay((char *)pVideoList->file[file_pos].name); WM_InvalidateWindow(hFrame); } break; } break; case ID_PREVIOUS_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: if( pVideoList->ptr > 0) { if(file_pos > 0) { file_pos--; LISTVIEW_DecSel(WM_GetDialogItem(VIDEOPLAYER_hWin, ID_VIDEO_LIST)); } else if(PlayerSettings.b.repeat == REPEAT_ALL) { file_pos = (pVideoList->ptr - 1); LISTVIEW_SetSel(WM_GetDialogItem(VIDEOPLAYER_hWin, ID_VIDEO_LIST), file_pos); } if(VideoPlayer_State == VIDEO_PLAY) { _StopPlay(); _StartPlay((char *)pVideoList->file[file_pos].name); WM_InvalidateWindow(hFrame); } } break; } break; /* Notifications sent by 'progress' Slider */ case ID_PROGRESS_SLIDER: if(NCode == WM_NOTIFICATION_CLICKED) { if(VideoPlayer_State != VIDEO_IDLE) { GUI_MOVIE_Pause(hMovie); hItem = WM_GetDialogItem(pMsg->hWin, ID_PROGRESS_SLIDER); newpos = (SLIDER_GetValue(hItem) * Video_Info.NumFrames)/100; GUI_MOVIE_GotoFrame(hMovie, newpos); if(VideoPlayer_State == VIDEO_PLAY) { GUI_MOVIE_Play(hMovie); } } } break; /* Notifications sent by 'ListView' Slider */ case ID_VIDEO_LIST: if(NCode == WM_NOTIFICATION_CLICKED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); Index = LISTVIEW_GetSel(hItem); if(Index < pVideoList->ptr) { file_pos = Index; if(playlist_select == 0) { hPlaylistTimer = WM_CreateTimer(pMsg->hWin, ID_PLAYLIST_TIMER, 500, 0); playlist_select = (Index + 1); } else if(playlist_select == (Index + 1)) { WM_DeleteTimer(hPlaylistTimer); hPlaylistTimer = 0; playlist_select = 0; if(Index < pVideoList->ptr) { if(VideoPlayer_State != VIDEO_IDLE) { _StopPlay(); } _StartPlay((char *)pVideoList->file[Index].name); hItem = WM_GetDialogItem(VIDEOPLAYER_hWin, ID_PLAY_BUTTON); WM_InvalidateWindow(hItem); WM_Update(hItem); WM_InvalidateWindow(hFrame); } } } } break; } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _Demo */ static void _Demo(void) { unsigned int i, j; int Key = 0; int Cnt = 15; char acInfoText[] = "-- sec to play with header control"; HEADER_Handle hHeader; hHeader = LISTVIEW_GetHeader(_hListView); WM_SetFocus(_hListView); _ChangeInfoText("LISTVIEW_AddColumn"); LISTVIEW_AddColumn(_hListView, 100, "EAN", GUI_TA_CENTER); GUI_Delay(SPEED / 2); LISTVIEW_AddColumn(_hListView, 50, "Order #\0x0", GUI_TA_CENTER); GUI_Delay(SPEED / 2); LISTVIEW_AddColumn(_hListView, 100, "Description", GUI_TA_CENTER); GUI_Delay(SPEED / 2); _ChangeInfoText("SCROLLBAR_CreateAttached"); SCROLLBAR_CreateAttached(_hListView, SCROLLBAR_CF_VERTICAL); GUI_Delay(SPEED / 2); _ChangeInfoText("LISTVIEW_AddRow"); for (i = 0; i < GUI_COUNTOF(_aTable_1); i++) { LISTVIEW_AddRow(_hListView, _aTable_1[i]); GUI_Delay(SPEED / 3); } _ChangeInfoText("LISTVIEW_IncSel"); for (i = 0; i < LISTVIEW_GetNumRows(_hListView); i++) { LISTVIEW_IncSel(_hListView); GUI_Delay(SPEED / 4); } GUI_Delay(SPEED / 4); _ChangeInfoText("LISTVIEW_DecSel"); for (i = 0; i < LISTVIEW_GetNumRows(_hListView); i++) { LISTVIEW_DecSel(_hListView); GUI_Delay(SPEED / 4); } GUI_Delay(SPEED / 4); _ChangeInfoText("LISTVIEW_SetTextAlign"); LISTVIEW_SetTextAlign(_hListView, 0, GUI_TA_RIGHT); GUI_Delay(SPEED * 0.7); _ChangeInfoText("LISTVIEW_SetColumnWidth"); LISTVIEW_SetColumnWidth(_hListView, 1, 70); GUI_Delay(SPEED * 0.7); _ChangeInfoText("HEADER_SetTextColor"); HEADER_SetTextColor(hHeader, GUI_BLUE); GUI_Delay(SPEED * 0.7); _ChangeInfoText("LISTVIEW_SetItemText"); for (i = 0; i < GUI_COUNTOF(_aTable_2); i++) { for (j = 0; j < GUI_COUNTOF(_aTable_2[i]); j++) { LISTVIEW_SetItemText(_hListView, j, i, _aTable_2[i][j]); } } GUI_Delay(SPEED / 2); _ChangeInfoText("LISTVIEW_SetBkColor"); LISTVIEW_SetBkColor(_hListView, 0, GUI_YELLOW); GUI_Delay(SPEED * 0.7); _ChangeInfoText("LISTVIEW_SetGridVis"); LISTVIEW_SetGridVis(_hListView, 1); GUI_Delay(SPEED * 0.7); _ChangeInfoText("HEADER_SetHeight"); HEADER_SetHeight(hHeader, 30); GUI_Delay(SPEED * 0.7); _ChangeInfoText("HEADER_SetBitmapEx"); HEADER_SetBitmap(hHeader, 0, &bmBarCode); GUI_Delay(SPEED * 0.7); while ((Key != GUI_KEY_ENTER) && (Cnt > 0)) { acInfoText[0] = '0' + (Cnt / 10); acInfoText[1] = '0' + (Cnt-- % 10); _ChangeInfoText(acInfoText); GUI_Delay(1000); Key = GUI_GetKey(); } }
/** * @brief Callback routine of the dialog * @param pMsg: pointer to data structure of type WM_MESSAGE * @retval None */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id, ItemNbr; int result; int duration, volume, index; static char tmp[FILEMGR_FILE_NAME_SIZE]; switch (pMsg->MsgId) { case WM_INIT_DIALOG: pWavList = (FILELIST_FileTypeDef *)k_malloc(sizeof(FILELIST_FileTypeDef)); pFileInfo = (CHOOSEFILE_INFO *)k_malloc(sizeof(CHOOSEFILE_INFO)); pWavList->ptr = 0; /* Initialization of 'Listview' */ hItem = WM_GetDialogItem(pMsg->hWin, ID_WAVFILE_LIST); LISTVIEW_AddColumn(hItem, 132, "Track", GUI_TA_VCENTER | GUI_TA_LEFT); LISTVIEW_AddColumn(hItem, 55, "Duration", GUI_TA_VCENTER | GUI_TA_RIGHT); LISTVIEW_SetGridVis(hItem, 0); LISTVIEW_SetAutoScrollV(hItem, 1); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, GUI_BLACK); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL, GUI_CYAN); /* Title Initialization in play list */ hItem = WM_GetDialogItem(pMsg->hWin, ID_TITLE_CAPTION); TEXT_SetText(hItem, "TITLE:"); TEXT_SetTextColor(hItem, GUI_CYAN); /* Title Initialization in play list */ hItem = WM_GetDialogItem(pMsg->hWin, ID_TITLE); TEXT_SetTextColor(hItem, GUI_CYAN); /* Duration */ hItem = WM_GetDialogItem(pMsg->hWin, ID_ELAPSED_TIME); TEXT_SetText(hItem, "00:00"); TEXT_SetFont(hItem, GUI_FONT_20B_1); TEXT_SetTextColor(hItem, GUI_LIGHTGRAY); /* Author initialization */ hItem = WM_GetDialogItem(pMsg->hWin, ID_AUTHOR_CAPTION); TEXT_SetText(hItem, "AUTHOR:"); TEXT_SetTextColor(hItem, GUI_CYAN); /* Author */ hItem = WM_GetDialogItem(pMsg->hWin, ID_AUTHOR); TEXT_SetText(hItem, ""); TEXT_SetTextColor(hItem, GUI_CYAN); /* Sampling Rate */ hItem = WM_GetDialogItem(pMsg->hWin, ID_SAMPLING_CAPTION); TEXT_SetText(hItem, "SAMPLING:"); TEXT_SetTextColor(hItem, GUI_CYAN); /* Sampling Rate Value */ hItem = WM_GetDialogItem(pMsg->hWin, ID_SAMPLING_VALUE); TEXT_SetText(hItem, ""); TEXT_SetTextColor(hItem, GUI_CYAN); /* Duration */ hItem = WM_GetDialogItem(pMsg->hWin, ID_TOTAL_TIME); TEXT_SetText(hItem, "00:00"); TEXT_SetTextColor(hItem, GUI_CYAN); /* Initialization of 'WAV' Button */ hItem = WM_GetDialogItem(pMsg->hWin, ID_WAV_BUTTON); BUTTON_SetFont(hItem, GUI_FONT_24_1); /* Initialization of 'Play List' Button */ hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_LIST_BUTTON); BUTTON_SetFont(hItem, GUI_FONT_24_1); /* Initialization of 'Add' Button */ hItem = WM_GetDialogItem(pMsg->hWin, ID_ADD_BUTTON); BUTTON_SetFont(hItem, GUI_FONT_24_1); volume = AUDIOPLAYER_GetVolume(); hItem = WM_GetDialogItem(pMsg->hWin, ID_VOLUME_SLIDER); SLIDER_SetValue(hItem, volume); hItem = WM_GetDialogItem(pMsg->hWin, ID_DURATION_SLIDER); SLIDER_SetNumTicks(hItem, 25); PlayerSettings.d32 = k_BkupRestoreParameter(CALIBRATION_AUDIOPLAYER_SETTING_BKP); PlayerSettings.b.mute = MUTE_OFF; PlayerSettings.b.pause = PLAY_ACTIVE; hItem = BUTTON_CreateEx(25, 100, 30, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_REPEAT_BUTTON); WM_SetCallback(hItem, _cbButton_repeat); hItem = BUTTON_CreateEx(100, 95, 40, 40, pMsg->hWin, WM_CF_SHOW, 0, ID_MUTE_BUTTON); WM_SetCallback(hItem, _cbButton_speaker); hItem = BUTTON_CreateEx(22, 147, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_STOP_BUTTON); WM_SetCallback(hItem, _cbButton_stop); hItem = BUTTON_CreateEx(89, 147, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_PREVIOUS_BUTTON); WM_SetCallback(hItem, _cbButton_previous); hItem = BUTTON_CreateEx(148, 140, 50, 50, pMsg->hWin, WM_CF_SHOW, 0, ID_PLAY_BUTTON); WM_SetCallback(hItem, _cbButton_play); hItem = BUTTON_CreateEx(222, 147, 35, 35, pMsg->hWin, WM_CF_SHOW, 0, ID_NEXT_BUTTON); WM_SetCallback(hItem, _cbButton_next); hItem = WM_GetClientWindow(pMsg->hWin); hItem = BUTTON_CreateEx(20, 205, 50, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_WAV_BUTTON); WM_SetCallback(hItem, _cbButton_open); hItem = BUTTON_CreateEx(80, 205, 50, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_ADD_BUTTON); WM_SetCallback(hItem, _cbButton_add); hItem = BUTTON_CreateEx(235, 205, 30, 30, pMsg->hWin, WM_CF_SHOW, 0, ID_CLOSE_BUTTON); WM_SetCallback(hItem, _cbButton_close); hTimerWin = WM_CreateWindowAsChild(0, 100, 10, 10, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS, _cbAudioProcess, 0); hItem = WM_CreateWindowAsChild(15, 75, 255, 20, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS | WM_CF_BGND, _cbDrawProgressSlider, 0); hItem = WM_CreateWindowAsChild(145, 105, 125, 20, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS | WM_CF_BGND, _cbDrawVolumeSlider, 0); WM_CreateWindowAsChild(479, 250, 1, 1, pMsg->hWin, WM_CF_SHOW | WM_CF_HASTRANS, _cbMediaConnection , 0); break; case WM_PAINT: GUI_SetBkColor(GUI_BLACK); GUI_ClearRect(15, 6, 270, 70); DrawRect3D(15, 135, 255, 60); DrawRect3D(15, 200, 255, 40); break; case WM_DELETE: AUDIOPLAYER_DeInit(); k_free(pWavList); k_free(pFileInfo); pWavList->ptr = 0; PlayerSettings.b.mute = MUTE_OFF; PlayerSettings.b.pause = PLAY_ACTIVE; k_BkupSaveParameter(CALIBRATION_AUDIOPLAYER_SETTING_BKP, PlayerSettings.d32); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { /* Notification sent by "Button_Close" */ case ID_CLOSE_BUTTON: switch (NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: GUI_EndDialog(pMsg->hWin, 0); break; } break; /* Notifications sent by 'Repeat' Button */ case ID_REPEAT_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_REPEAT_BUTTON); if(PlayerSettings.b.repeat == REPEAT_NONE) { PlayerSettings.b.repeat = REPEAT_ONCE; } else if(PlayerSettings.b.repeat == REPEAT_ONCE) { PlayerSettings.b.repeat = REPEAT_ALL; } else if(PlayerSettings.b.repeat == REPEAT_ALL) { PlayerSettings.b.repeat = REPEAT_NONE; } } break; /* Notifications sent by 'Mute' Button */ case ID_MUTE_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_MUTE_BUTTON); if(PlayerSettings.b.mute == MUTE_OFF) { AUDIOPLAYER_Mute(MUTE_ON); PlayerSettings.b.mute = MUTE_ON; } else { AUDIOPLAYER_Mute(MUTE_OFF); PlayerSettings.b.mute = MUTE_OFF; } } break; /* Notifications sent by 'Volume' Slider */ case ID_VOLUME_SLIDER: if(NCode == WM_NOTIFICATION_VALUE_CHANGED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_VOLUME_SLIDER); AUDIOPLAYER_SetVolume(SLIDER_GetValue(hItem)); if(PlayerSettings.b.mute == MUTE_ON) { AUDIOPLAYER_Mute(MUTE_OFF); PlayerSettings.b.mute = MUTE_OFF; } } break; /* Notifications sent by 'progress' Slider */ case ID_DURATION_SLIDER: if(NCode == WM_NOTIFICATION_CLICKED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_DURATION_SLIDER); AUDIOPLAYER_SetPosition(SLIDER_GetValue(hItem)); if(PlayerSettings.b.mute == MUTE_ON) { AUDIOPLAYER_Mute(MUTE_ON); } } break; /* Notifications sent by 'ListView' Slider */ case ID_WAVFILE_LIST: if(NCode == WM_NOTIFICATION_CLICKED) { hItem = WM_GetDialogItem(pMsg->hWin, ID_WAVFILE_LIST); index = LISTVIEW_GetSel(hItem); if(index < pWavList->ptr) { if(playlist_select == 0) { hPlaylistTimer = WM_CreateTimer(hTimerWin, ID_PLAYLIST_TIMER, 500, 0); playlist_select = (index + 1); } else if(playlist_select == (index + 1)) { WM_DeleteTimer(hPlaylistTimer); hPlaylistTimer = 0; playlist_select = 0; if(index < pWavList->ptr) { if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { AUDIOPLAYER_Stop(); } PlayerSettings.b.pause = PLAY_ACTIVE; hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_BUTTON); WM_InvalidateWindow(hItem); WM_Update(hItem); file_pos = index; _PlayFile((char *)pWavList->file[index].name); } } } } break; /* Notifications sent by 'Play' Button */ case ID_PLAY_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { if(AUDIOPLAYER_GetState() == AUDIOPLAYER_STOP) { if(pWavList->ptr > 0) { _PlayFile((char *)pWavList->file[file_pos].name); LISTVIEW_SetSel(WM_GetDialogItem(AUDIOPLAYER_hWin, ID_WAVFILE_LIST), file_pos); } else { pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_audio; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Open an audio file", 0, pFileInfo); WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { if((strstr(pFileInfo->pRoot, ".wav")) || (strstr(pFileInfo->pRoot, ".WAV"))) { if(AUDIOPLAYER_GetFileInfo(pFileInfo->pRoot, &WavInfo) == 0) { if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { /* Stop current audio sample */ AUDIOPLAYER_Stop(); } pWavList->ptr = 0; file_pos = 0; strcpy((char *)pWavList->file[pWavList->ptr].name, pFileInfo->pRoot); FILEMGR_GetFileOnly (tmp, pFileInfo->pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_WAVFILE_LIST); /* Update Play list */ strcpy((char *)pWavList->file[pWavList->ptr].name, pFileInfo->pRoot); ItemNbr = LISTVIEW_GetNumRows(hItem); while(ItemNbr--) { LISTVIEW_DeleteRow(hItem, ItemNbr); } LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, pWavList->ptr, tmp); duration = WavInfo.FileSize / WavInfo.ByteRate; sprintf((char *)tmp , "%02d:%02d", duration/60, duration%60 ); LISTVIEW_SetItemText(hItem, 1, pWavList->ptr, tmp); pWavList->ptr++; LISTVIEW_SetSel(hItem, 0); _PlayFile(pFileInfo->pRoot); } } } } } else if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { PlayerSettings.b.pause = (PlayerSettings.b.pause == PLAY_ACTIVE ? PAUSE_ACTIVE : PLAY_ACTIVE); if(PlayerSettings.b.pause == PAUSE_ACTIVE) { AUDIOPLAYER_Pause(); } else if(PlayerSettings.b.pause == PLAY_ACTIVE) { AUDIOPLAYER_Resume(); } } } break; /* Notifications sent by 'STOP' Button */ case ID_STOP_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { if(PlayerSettings.b.pause == PAUSE_ACTIVE) { PlayerSettings.b.pause = PLAY_ACTIVE; } AUDIOPLAYER_Stop(); hItem = WM_GetDialogItem(pMsg->hWin, ID_ELAPSED_TIME); TEXT_SetText(hItem, "00:00"); hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_BUTTON); WM_InvalidateWindow(hItem); WM_Update(hItem); } } break; /* Notifications sent by 'Next' Button */ case ID_NEXT_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { if( pWavList->ptr > 0) { if(file_pos < (pWavList->ptr - 1)) { file_pos++; } else if(PlayerSettings.b.repeat == REPEAT_ALL) { file_pos = 0; } LISTVIEW_SetSel(WM_GetDialogItem(AUDIOPLAYER_hWin, ID_WAVFILE_LIST), file_pos); if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { if(PlayerSettings.b.pause == PAUSE_ACTIVE) { PlayerSettings.b.pause = PLAY_ACTIVE; hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_BUTTON); WM_InvalidateWindow(hItem); WM_Update(hItem); } AUDIOPLAYER_Stop(); _PlayFile((char *)pWavList->file[file_pos].name); } } } break; /* Notifications sent by 'Previous' Button */ case ID_PREVIOUS_BUTTON: if(NCode == WM_NOTIFICATION_RELEASED) { if( pWavList->ptr > 0) { if(file_pos > 0) { file_pos--; } else if(PlayerSettings.b.repeat == REPEAT_ALL) { file_pos = (pWavList->ptr - 1); } LISTVIEW_SetSel(WM_GetDialogItem(AUDIOPLAYER_hWin, ID_WAVFILE_LIST), file_pos); if(AUDIOPLAYER_GetState() == AUDIOPLAYER_PLAY) { if(PlayerSettings.b.pause == PAUSE_ACTIVE) { PlayerSettings.b.pause = PLAY_ACTIVE; hItem = WM_GetDialogItem(pMsg->hWin, ID_PLAY_BUTTON); WM_InvalidateWindow(hItem); WM_Update(hItem); } AUDIOPLAYER_Stop(); _PlayFile((char *)pWavList->file[file_pos].name); } } } break; /* Notifications sent by 'Open' Button */ case ID_WAV_BUTTON: switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_dir; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Add a folder", 0, pFileInfo); WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { _AddEntireFolder(pFileInfo->pRoot); } break; } break; /* Notifications sent by 'Add' Button */ case ID_ADD_BUTTON: switch(NCode) { case WM_NOTIFICATION_RELEASED: pFileInfo->pfGetData = k_GetData; pFileInfo->pMask = acMask_audio; hItem = CHOOSEFILE_Create(pMsg->hWin, 47, 10, 385, 215, apDrives, GUI_COUNTOF(apDrives), 0, "Add to playlist", 0, pFileInfo); WM_MakeModal(hItem); result = GUI_ExecCreatedDialog(hItem); if (result == 0) { if((strstr(pFileInfo->pRoot, ".wav")) || (strstr(pFileInfo->pRoot, ".WAV"))) { if(pWavList->ptr < FILEMGR_LIST_DEPDTH) { strcpy((char *)pWavList->file[pWavList->ptr].name, pFileInfo->pRoot); FILEMGR_GetFileOnly (tmp, pFileInfo->pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_WAVFILE_LIST); if(AUDIOPLAYER_GetFileInfo(pFileInfo->pRoot, &WavInfo) == 0) { LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, pWavList->ptr, tmp); duration = WavInfo.FileSize / WavInfo.ByteRate; sprintf((char *)tmp , "%02d:%02d", duration/60, duration%60 ); LISTVIEW_SetItemText(hItem, 1, pWavList->ptr, tmp); pWavList->ptr++; } } } } } 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 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, 0x000080FF); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_0_WIDTH, "Name", GUI_TA_LEFT | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_2_WIDTH, "State", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font24B_1); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL,GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL,DEEPBLUE); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_SELFOCUS,GUI_BLACK); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, DEEPBLUE); updateListViewContent(hItem); // USER START (Optionally insert additional code for further widget initialization) hItem = etWinCreate(); // USER break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_LISTVIEW_0: // Notifications sent by 'Listview' 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_SEL_CHANGED: // 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; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; WM_MESSAGE myMsg; int i; switch (pMsg->MsgId) { case USER_MSG_LV_UPDATE: updateListViewContent( WM_GetDialogItem(pMsg->hWin,ID_LISTVIEW_0)); break; case USER_MSG_SKIN: pSkin = &(lvWinSkins[pMsg->Data.v]); WINDOW_SetBkColor(pMsg->hWin,pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); LISTVIEW_SetFont(hItem, &GUI_Font30); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); break; case WM_INIT_DIALOG: pSkin = &(lvWinSkins[SysConf.Skin]); // // Initialization of 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, pSkin->bkColor); // // Initialization of title // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_0_WIDTH, "船名", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_2_WIDTH, "选中", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font30); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); updateListViewContent(hItem); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); 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 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, 0x00000080); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_SetFont(hItem, &GUI_Font28); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_0_WIDTH, "Dis", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_2_WIDTH, "Ang", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font24B_1); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL,GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL,DEEPBLUE); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_SELFOCUS,GUI_BLACK); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, DEEPBLUE); updateListViewContent(hItem); // USER START (Optionally insert additional code for further widget initialization) // USER END break; case WM_PAINT: GUI_SetFont(&GUI_Font24_1); GUI_SetColor(GUI_YELLOW); GUI_SetTextMode(GUI_TM_TRANS); if( (index>=0) && (index<N_boat) ) { GUI_DispStringAt(boat_list_p[index]->name,LV_MoniteList_WIDTH+90,80); lltostr(boat_list_p[index]->latitude,pStrBuf); GUI_DispStringExAt(pStrBuf,LV_MoniteList_WIDTH+20,120); lltostr(boat_list_p[index]->longitude,pStrBuf); GUI_DispStringExAt(pStrBuf,LV_AllList_WIDTH,160); sprintf(pStrBuf, "%d", boat_list_p[index]->SOG); GUI_DispStringExAt(pStrBuf,LV_AllList_WIDTH+40,200); } break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_LISTVIEW_0: // Notifications sent by 'Listview' 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_SEL_CHANGED: // 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; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hWin; WM_HWIN hText; const WM_KEY_INFO* pInfo; WM_HWIN hItem = 0; int i = 0; int NCode; int Id; hWin = pMsg->hWin; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case USER_MSG_LANGUAGE: InfoSel(0,1); break; case WM_PAINT: GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetColor(GUI_BLACK); GUI_AA_DrawLine(190,0,220,60); GUI_AA_DrawLine(220,60,800,60); // if (Language == 0) // { // GUI_DispStringAt("所处 页/共 页",560,435); // } // else // { // GUI_DispStringAt (pLanguage->Page,560,435); // } // GUI_DispDecAt(thispage,605,435,3); // GUI_DispDecAt(pageNum,700,435,3); //GUI_DispStringAt("高电压警告",230,28); GUI_PNG_Draw(&acPOWER,sizeof(acPOWER),755,35); break; case WM_INIT_DIALOG: pLanguage = &Lgumainwin[Language]; hButton = WM_GetDialogItem (hWin,ID_BUTTON_0); BUTTON_SetBkColor (hButton,BUTTON_CI_UNPRESSED,GUI_WHITE); BUTTON_SetTextColor (hButton,BUTTON_CI_UNPRESSED,GUI_BLACK); BUTTON_SetTextAlign (hButton,GUI_TA_HCENTER|GUI_TA_VCENTER); BUTTON_SetText(hButton,pLanguage->ButtonInfo[0]); BUTTON_SetFocusColor (hButton,GUI_WHITE); WIDGET_SetEffect (hButton,&WIDGET_Effect_None); WM_SetCallback (hButton,&mybutton); WM_SetFocus (hButton); hListview = WM_GetDialogItem (hWin,ID_LV_0); hListhead = LISTVIEW_GetHeader(hListview); LISTVIEW_SetFont(hListview,&GUI_Font30); LISTVIEW_SetRowHeight(hListview,40); LISTVIEW_SetHeaderHeight(hListview,30); LISTVIEW_SetBkColor (hListview,LISTVIEW_CI_SELFOCUS,GUI_GRAY); LISTVIEW_SetBkColor (hListview,LISTVIEW_CI_SEL,GUI_WHITE); LISTVIEW_SetTextColor (hListview,LISTVIEW_CI_SEL,GUI_BLACK); LISTVIEW_SetTextColor(hListview,LISTVIEW_CI_SELFOCUS,GUI_WHITE); WIDGET_SetEffect(hListhead,&WIDGET_Effect_3D); HEADER_SetBkColor (hListhead,GUI_BLACK); HEADER_SetTextColor(hListhead,GUI_WHITE); HEADER_SetFont(hListhead,&GUI_Font24); LISTVIEW_AddColumn(hListview,80,"序号",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息编码",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,130,"yyy/mm/dd",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,90,"hh:mm",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,120,"频道",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息类型",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息状态",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_SetTextAlign(hListview,6,GUI_TA_LEFT|GUI_TA_VCENTER); // WM_HWIN - TEXT mainwinText[0] = WM_GetDialogItem(hWin,ID_TEXT_3); //高压警告 mainwinText[1] = WM_GetDialogItem(hWin,ID_TEXT_0); //INT mainwinText[2] = WM_GetDialogItem(hWin,ID_TEXT_1); //loc1,loc2,chs mainwinText[3] = WM_GetDialogItem(hWin,ID_TEXT_2); //time mainwinText[4] = WM_GetDialogItem(hWin,ID_TEXT_4); //page WM_SetCallback(mainwinText[1],&mytext); WM_SetCallback(mainwinText[2],&mytext); TEXT_SetText(mainwinText[0],""); TEXT_SetFont(mainwinText[4],&GUI_Font30); TEXT_SetTextAlign(mainwinText[4],TEXT_CF_RIGHT); TEXT_SetText(mainwinText[4],"所处 01页/共 02页"); //time TEXT_SetTextAlign(mainwinText[3],TEXT_CF_VCENTER); TEXT_SetFont(mainwinText[3],&GUI_Font30); TEXT_SetText(mainwinText[3],"UTC 2015.10.24 17:30"); for (i=0; i<16; i++) { INFO_add(&TESTDATA[i]); } if (rowNum < 8) pageNum = 1; else if (rowNum%8 == 0) pageNum = rowNum/8; else pageNum = rowNum/8+1; InfoSel(0,1); //DisPage(); WM_SetCallback (hListview,&mylistview); break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int SelectedRow = -1; long SelectedMMSI = 0; int i; switch (pMsg->MsgId) { case USER_MSG_LV_UPDATE: updateListViewContent(WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0)); break; case USER_MSG_SKIN: pSkin = &(lvWinSkins[pMsg->Data.v]); INFO("case skin:%s",pMsg->Data.v==SKIN_Day?"Day":"Night"); WINDOW_SetBkColor(pMsg->hWin,pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); break; case WM_INIT_DIALOG: pSkin = &(lvWinSkins[SysConf.Skin]); hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_AllList_Col_0_WIDTH, "距离", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_AllList_Col_2_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_AllList_Col_3_WIDTH, "状态", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem,&GUI_Font30); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); for(i=LV_PAGE_SIZE; i>0; i--) { LISTVIEW_AddRow(hItem, NULL); } LISTVIEW_SetSel(hItem, 0); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); isSub2Inited = 1; break; case WM_PAINT: GUI_SetColor(pSkin->inf_bkColor); GUI_FillRectEx(&infoRect); GUI_SetTextMode(GUI_TM_TRANS); GUI_SetFont(&GUI_Font24); GUI_SetColor(pSkin->inf_Label); GUI_DispStringAt("按确定键选择或取消选择监控的网位仪", LV_AllList_WIDTH+20, LV_AllList_Y+240); GUI_SetFont(&GUI_Font24_1); GUI_SetColor(pSkin->inf_txColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); if(WM_HasFocus(hItem) == FALSE) { sprintf(pStrBuf, " 0/%3d", N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); break; } // if( N_boat <= 0 ){ // sprintf(pStrBuf, " 0/ 0"); // GUI_DispStringAt(pStrBuf, LV_AllList_WIDTH-80, LV_AllList_Y-20); // break; // } SelectedRow = LISTVIEW_GetSel(hItem); LISTVIEW_GetItemText(WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0), LV_AllList_Col_MMSI, SelectedRow, pStrBuf, 11); SelectedMMSI = strtoi(pStrBuf); if(SelectedMMSI <= 0) { sprintf(pStrBuf," 0/%3d", N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); break; } for(i=0; i<N_boat ; i++) { if(SimpBerthes[i].pBerth->Boat.user_id == SelectedMMSI) { break; } } if(i<N_boat) { sprintf(pStrBuf,"%3d/%3d", i+1 ,N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); GUI_DispStringAt(SimpBerthes[i].pBerth->Boat.name,LV_AllList_WIDTH+80,85); lltostr(SimpBerthes[i].latitude,pStrBuf); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,125); lltostr(SimpBerthes[i].longitude,pStrBuf); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,165); // if(SysConf.Unit == UNIT_km) // { // int sog = SimpBerthes[i].pBerth->Boat.SOG *18; // sprintf(pStrBuf, "%3d.%02dkm",sog/100, sog%100); // } // else // { // sprintf(pStrBuf, "%2d.%dkt", SimpBerthes[i].pBerth->Boat.SOG/10, // SimpBerthes[i].pBerth->Boat.SOG%10); // } sprintf(pStrBuf, "%2d.%dkt", SimpBerthes[i].pBerth->Boat.SOG/10, SimpBerthes[i].pBerth->Boat.SOG%10); GUI_DispStringAt(pStrBuf, LV_AllList_WIDTH+80,205); sprintf(pStrBuf, "%3d", SimpBerthes[i].pBerth->Boat.COG/10); pStrBuf[3] = 194; pStrBuf[4] = 176; pStrBuf[5] = '\0'; GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,245); } break; default: WM_DefaultProc(pMsg); break; } }