/** * Callback function for the log window. **/ BOOL CALLBACK LogCon(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT wrect; //For remembering window position switch(uMsg) { case WM_INITDIALOG: if (MLogPosX==-32000) MLogPosX=0; //Just in case if (MLogPosY==-32000) MLogPosY=0; SetWindowPos(hwndDlg,0,MLogPosX,MLogPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER); break; case WM_MOVE: if (!IsIconic(hwndDlg)) { GetWindowRect(hwndDlg,&wrect); //Remember X,Y coordinates MLogPosX = wrect.left; MLogPosY = wrect.top; #ifdef WIN32 WindowBoundsCheckNoResize(MLogPosX,MLogPosY,wrect.right); #endif } break; case WM_COMMAND: { if (HIWORD(wParam) == BN_CLICKED) { if (LOWORD(wParam) == CLEAR_LOG) { ClearLog(); } else { DestroyWindow(hwndDlg); // Clear the handle logwin = 0; } } break; } } return 0; }
BOOL CALLBACK MonitorCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_MOVE: { if (!IsIconic(hwndDlg)) { RECT wrect; GetWindowRect(hwndDlg,&wrect); Monitor_wndx = wrect.left; Monitor_wndy = wrect.top; #ifdef WIN32 WindowBoundsCheckNoResize(Monitor_wndx,Monitor_wndy,wrect.right); #endif } break; }; case WM_INITDIALOG: if (Monitor_wndx==-32000) Monitor_wndx=0; //Just in case if (Monitor_wndy==-32000) Monitor_wndy=0; SetWindowPos(hwndDlg,0,Monitor_wndx,Monitor_wndy,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER); monitor_open = 1; // CenterWindow(hwndDlg); InitControls(hwndDlg); break; case WM_COMMAND: switch(HIWORD(wParam)) { case BN_CLICKED: if ( GameInfo ) { if ( !handleButtonClick(hwndDlg, LOWORD(wParam)) ) { MessageBox(hwndDlg, "Invalid byte value", "Error", MB_OK | MB_ICONERROR); } } break; case CBN_SELCHANGE: { unsigned int sl = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0); EnableWindow(GetDlgItem(hwndDlg, ruleBox_to_ruleInput(LOWORD(wParam))), sl == RULE_EXACT || sl == RULE_EXACT_NOT); break; } case LBN_DBLCLK: { if (LOWORD(wParam) == RESULTS_BOX) { char str[259] = { 0 },str2[259] = { 0 }; SendDlgItemMessage(hwndDlg,RESULTS_BOX,LB_GETTEXT,SendDlgItemMessage(hwndDlg,RESULTS_BOX,LB_GETCURSEL,0,0),(LPARAM)(LPCTSTR)str); strcpy(str2,str); str2[4] = 0; AddMemWatch(str2); } } } break; case WM_CLOSE: case WM_QUIT: DeleteObject(hNewFont); monitor_open = 0; DestroyWindow(hwndDlg); break; } return FALSE; }
BOOL CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT wrect; switch(uMsg) { case WM_INITDIALOG: { if (MetaPosX==-32000) MetaPosX=0; //Just in case if (MetaPosY==-32000) MetaPosY=0; SetWindowPos(hwndDlg,0,MetaPosX,MetaPosY,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER); //setup columns HWND hwndList = GetDlgItem(hwndDlg,IDC_LIST1); ListView_SetExtendedListViewStyleEx(hwndList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES , LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES ); ListView_SetUnicodeFormat(hwndList,TRUE); RECT listRect; GetClientRect(hwndList,&listRect); LVCOLUMN lvc; int colidx=0; lvc.mask = LVCF_TEXT | LVCF_WIDTH; lvc.pszText = "Key"; lvc.cx = 100; ListView_InsertColumn(hwndList, colidx++, &lvc); lvc.mask = LVCF_TEXT | LVCF_WIDTH; lvc.pszText = "Value"; lvc.cx = listRect.right - 100; ListView_InsertColumn(hwndList, colidx++, &lvc); //Display the Subtitles into the Metadata as well for(uint32 i=0;i<currSubtitles.size();i++) { std::string& subtitle = currSubtitles[i]; size_t splitat = subtitle.find_first_of(' '); std::wstring key, value; //if we can't split it then call it an unnamed key if(splitat == std::string::npos) { value = mbstowcs(subtitle); } else { key = mbstowcs(subtitle.substr(0,splitat)); value = mbstowcs(subtitle.substr(splitat+1)); } LVITEM lvi; lvi.iItem = i; lvi.mask = LVIF_TEXT; lvi.iSubItem = 0; lvi.pszText = (LPSTR)key.c_str(); SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvi); lvi.iSubItem = 1; lvi.pszText = (LPSTR)value.c_str(); SendMessageW(hwndList, LVM_SETITEMTEXTW, i, (LPARAM)&lvi); } //Display Subtitle Heading if (currSubtitles.size() > 0) //If no subtitles, don't bother with this heading { std::wstring rHeading = mbstowcs(string("SUBTITLES")); LVITEM lvSubtitle; lvSubtitle.iItem = 0; lvSubtitle.mask = LVIF_TEXT; lvSubtitle.iSubItem = 0; lvSubtitle.pszText = (LPSTR)rHeading.c_str(); SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvSubtitle); } //Display the comments in the movie data for(uint32 i=0;i<currComments.size();i++) { std::wstring& comment = currComments[i]; size_t splitat = comment.find_first_of(' '); std::wstring key, value; //if we can't split it then call it an unnamed key if(splitat == std::string::npos) { value = comment; } else { key = comment.substr(0,splitat); value = comment.substr(splitat+1); } LVITEM lvi; lvi.iItem = i; lvi.mask = LVIF_TEXT; lvi.iSubItem = 0; lvi.pszText = (LPSTR)key.c_str(); SendMessageW(hwndList, LVM_INSERTITEMW, 0, (LPARAM)&lvi); lvi.iSubItem = 1; lvi.pszText = (LPSTR)value.c_str(); SendMessageW(hwndList, LVM_SETITEMTEXTW, i, (LPARAM)&lvi); } } break; case WM_MOVE: if (!IsIconic(hwndDlg)) { GetWindowRect(hwndDlg,&wrect); MetaPosX = wrect.left; MetaPosY = wrect.top; #ifdef WIN32 WindowBoundsCheckNoResize(MetaPosX,MetaPosY,wrect.right); #endif } break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: EndDialog(hwndDlg, 0); return TRUE; } break; } return FALSE; }