summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-27 17:07:20 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-27 17:07:20 +0000
commit6f5120b6e1f592fb982f4fff4a738e2d3e702772 (patch)
tree5b8410a441162027bc32f88d4fc6d3161a02b69c
parentf056a3d0aa411aa061e00f4b356d52798e020c1a (diff)
downloadpcsxr-6f5120b6e1f592fb982f4fff4a738e2d3e702772.tar.gz
CPU -> Save window position (windows);
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@86958 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rwxr-xr-xlibpcsxcore/psxcommon.h2
-rwxr-xr-xwin32/gui/ConfigurePlugins.c12
-rwxr-xr-xwin32/gui/WndMain.c27
-rwxr-xr-xwin32/pcsxr.rc15
-rwxr-xr-xwin32/resource.h1
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