From 6f5120b6e1f592fb982f4fff4a738e2d3e702772 Mon Sep 17 00:00:00 2001 From: "SND\\edgbla_cp" Date: Tue, 27 Aug 2013 17:07:20 +0000 Subject: CPU -> Save window position (windows); git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@86958 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- libpcsxcore/psxcommon.h | 2 ++ win32/gui/ConfigurePlugins.c | 12 +++++++++--- win32/gui/WndMain.c | 27 +++++++++++++++++++++++++-- win32/pcsxr.rc | 15 ++++++++------- win32/resource.h | 1 + 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/libpcsxcore/psxcommon.h b/libpcsxcore/psxcommon.h index 77ec6716..9fc1628b 100755 --- a/libpcsxcore/psxcommon.h +++ b/libpcsxcore/psxcommon.h @@ -152,6 +152,8 @@ typedef struct { boolean VSyncWA; boolean Widescreen; boolean HideCursor; + boolean SaveWindowPos; + s32 WindowPos[2]; u8 Cpu; // CPU_DYNAREC or CPU_INTERPRETER u8 PsxType; // PSX_TYPE_NTSC or PSX_TYPE_PAL #ifdef _WIN32 diff --git a/win32/gui/ConfigurePlugins.c b/win32/gui/ConfigurePlugins.c index 6686c9a9..cca0a814 100755 --- a/win32/gui/ConfigurePlugins.c +++ b/win32/gui/ConfigurePlugins.c @@ -83,6 +83,9 @@ int LoadConfig() { QueryKeyV("VSyncWA", Conf->VSyncWA); QueryKeyV("Widescreen", Conf->Widescreen); QueryKeyV("HideCursor", Conf->HideCursor); + QueryKeyV("SaveWindowPos", Conf->SaveWindowPos); + QueryKeyV("WindowPosX", Conf->WindowPos[0]); + QueryKeyV("WindowPosY", Conf->WindowPos[1]); QueryKeyV("Cpu", Conf->Cpu); QueryKeyV("PsxType", Conf->PsxType); @@ -137,6 +140,9 @@ void SaveConfig() { SetKeyV("VSyncWA", Conf->VSyncWA); SetKeyV("Widescreen", Conf->Widescreen); SetKeyV("HideCursor", Conf->HideCursor); + SetKeyV("SaveWindowPos", Conf->SaveWindowPos); + SetKeyV("WindowPosX", Conf->WindowPos[0]); + SetKeyV("WindowPosY", Conf->WindowPos[1]); SetKeyV("Cpu", Conf->Cpu); SetKeyV("PsxType", Conf->PsxType); @@ -334,9 +340,9 @@ void OnOK(HWND hW) { strcpy(Config.Bios, biosFILE); strcpy(Config.Gpu, gpuDLL); strcpy(Config.Spu, spuDLL); - if (cdrDLL != NULL) - strcpy(Config.Cdr, cdrDLL); - else + if (cdrDLL != NULL) + strcpy(Config.Cdr, cdrDLL); + else Config.Cdr[0] = '\0'; strcpy(Config.Pad1, pad1DLL); strcpy(Config.Pad2, pad2DLL); diff --git a/win32/gui/WndMain.c b/win32/gui/WndMain.c index 23a34308..0f6a4558 100755 --- a/win32/gui/WndMain.c +++ b/win32/gui/WndMain.c @@ -432,6 +432,7 @@ void OnStates_SaveOther() { LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { char File[256]; PAINTSTRUCT ps; + RECT rect; switch (msg) { case WM_CREATE: @@ -453,6 +454,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { case ID_FILE_EXIT: SysClose(); + SaveConfig(); PostQuitMessage(0); exit(0); return TRUE; @@ -741,6 +743,7 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (!AccBreak) { if (Running) ClosePlugins(); SysClose(); + SaveConfig(); PostQuitMessage(0); exit(0); } @@ -750,7 +753,16 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { DeleteDC(hdcmem); return TRUE; + case WM_EXITSIZEMOVE: + if(Config.SaveWindowPos) { + GetWindowRect(hWnd, &rect); + Config.WindowPos[0] = rect.left; + Config.WindowPos[1] = rect.top; + } + return TRUE; + case WM_QUIT: + SaveConfig(); exit(0); break; @@ -1317,6 +1329,7 @@ BOOL CALLBACK ConfigureMcdsDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPa BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lParam) { long tmp; + RECT rect; switch(uMsg) { case WM_INITDIALOG: @@ -1339,6 +1352,7 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar Button_SetText(GetDlgItem(hW,IDC_VSYNCWA), _("InuYasha Sengoku Battle Fix")); Button_SetText(GetDlgItem(hW,IDC_WIDESCREEN), _("Widescreen (GTE Hack)")); Button_SetText(GetDlgItem(hW,IDC_HIDECURSOR), _("Hide cursor")); + Button_SetText(GetDlgItem(hW,IDC_SAVEWINDOWPOS),_("Save window position")); Static_SetText(GetDlgItem(hW,IDC_MISCOPT), _("Options")); Static_SetText(GetDlgItem(hW,IDC_SELPSX), _("Psx System Type")); @@ -1357,6 +1371,7 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar Button_SetCheck(GetDlgItem(hW,IDC_VSYNCWA), Config.VSyncWA); Button_SetCheck(GetDlgItem(hW,IDC_WIDESCREEN), Config.Widescreen); Button_SetCheck(GetDlgItem(hW,IDC_HIDECURSOR), Config.HideCursor); + Button_SetCheck(GetDlgItem(hW,IDC_SAVEWINDOWPOS), Config.SaveWindowPos); ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "NTSC"); ComboBox_AddString(GetDlgItem(hW,IDC_PSXTYPES), "PAL"); ComboBox_SetCurSel(GetDlgItem(hW,IDC_PSXTYPES),Config.PsxType); @@ -1402,6 +1417,12 @@ BOOL CALLBACK ConfigureCpuDlgProc(HWND hW, UINT uMsg, WPARAM wParam, LPARAM lPar Config.VSyncWA = Button_GetCheck(GetDlgItem(hW,IDC_VSYNCWA)); Config.Widescreen = Button_GetCheck(GetDlgItem(hW,IDC_WIDESCREEN)); Config.HideCursor = Button_GetCheck(GetDlgItem(hW,IDC_HIDECURSOR)); + Config.SaveWindowPos = Button_GetCheck(GetDlgItem(hW,IDC_SAVEWINDOWPOS)); + if(!Config.SaveWindowPos) { + GetWindowRect(gApp.hWnd, &rect); + Config.WindowPos[0] = rect.left; + Config.WindowPos[1] = rect.top; + } tmp = Config.Debug; Config.Debug = Button_GetCheck(GetDlgItem(hW,IDC_DEBUG)); if (tmp != Config.Debug) { @@ -1679,8 +1700,7 @@ void CreateMainMenu() { #ifdef ENABLE_NLS ADDSUBMENUS(0, 1, _("&Language")); - // wtf? - if (langs != langs) free(langs); + if (langs) free(langs); langs = (_langs*)malloc(sizeof(_langs)); strcpy(langs[0].lang, "English"); InitLanguages(); i=1; @@ -1756,6 +1776,9 @@ void CreateMainWindow(int nCmdShow) { CreateMainMenu(); SetMenu(gApp.hWnd, gApp.hMenu); + if(Config.SaveWindowPos) + SetWindowPos(hWnd, 0, Config.WindowPos[0], Config.WindowPos[1], 0, 0, SWP_NOSIZE | SWP_NOZORDER); + ShowWindow(hWnd, nCmdShow); } diff --git a/win32/pcsxr.rc b/win32/pcsxr.rc index e2be8714..b9a6e6c2 100755 --- a/win32/pcsxr.rc +++ b/win32/pcsxr.rc @@ -103,14 +103,14 @@ BEGIN GROUPBOX "",IDC_STATIC,43,100,234,79 END -IDD_CPUCONF DIALOGEX 0, 0, 232, 281 +IDD_CPUCONF DIALOGEX 0, 0, 232, 296 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cpu Config" FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",IDOK,51,258,50,14 - PUSHBUTTON "Cancel",IDCANCEL,120,258,50,14 - GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,206 + DEFPUSHBUTTON "OK",IDOK,51,273,50,14 + PUSHBUTTON "Cancel",IDCANCEL,120,273,50,14 + GROUPBOX "Misc Options",IDC_MISCOPT,5,5,220,221 CONTROL "Disable Xa Decoding",IDC_XA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,15,205,10 CONTROL "Sio Irq Always Enabled",IDC_SIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,30,205,10 CONTROL "Spu Irq Always Enabled",IDC_SPUIRQ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,45,205,10 @@ -124,10 +124,11 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,150,205,10 CONTROL "InuYasha Sengoku Battle Fix",IDC_VSYNCWA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,165,205,10 CONTROL "Widescreen (GTE Hack)",IDC_WIDESCREEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,180,205,10 - GROUPBOX "Select Psx System Type",IDC_SELPSX,5,216,220,35 - CONTROL "Autodetect",IDC_PSXAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,230,80,10 - COMBOBOX IDC_PSXTYPES,105,230,53,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Select Psx System Type",IDC_SELPSX,5,231,220,35 + CONTROL "Autodetect",IDC_PSXAUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,245,80,10 + COMBOBOX IDC_PSXTYPES,105,245,53,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP CONTROL "Hide cursor",IDC_HIDECURSOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,195,205,10 + CONTROL "Save window position",IDC_SAVEWINDOWPOS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,210,205,10 END IDD_NETPLAY DIALOG 0, 0, 165, 95 diff --git a/win32/resource.h b/win32/resource.h index e9b980ea..5ac99e9e 100755 --- a/win32/resource.h +++ b/win32/resource.h @@ -304,6 +304,7 @@ #define IDC_LABEL_DATABASE 1263 #define IDC_WIDESCREEN 1264 #define IDC_HIDECURSOR 1265 +#define IDC_SAVEWINDOWPOS 1266 #define ID_FILE_EXIT 40001 #define ID_HELP_ABOUT 40002 #define ID_FILE_RUN_CD 40003 -- cgit v1.2.3