diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.cpp index b93ee7d3a..05564d9ba 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.cpp +++ b/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.cpp @@ -45,6 +45,8 @@ CAdvancedOptionsPage::CAdvancedOptionsPage(HWND hParent, const RECT & rcDispay) ComboBox->AddItemW(wGS(STR_FR_PERCENT).c_str(), FR_PERCENT); } + m_IplDir.Attach(GetDlgItem(IDC_IPL_DIR)); + UpdatePageSettings(); } @@ -60,6 +62,16 @@ void CAdvancedOptionsPage::ShowPage() void CAdvancedOptionsPage::ApplySettings(bool UpdateScreen) { + if (m_IplDir.IsChanged()) + { + stdstr file = m_IplDir.GetWindowText(); + g_Settings->SaveString(File_DiskIPLPath, file.c_str()); + } + if (m_IplDir.IsReset()) + { + g_Settings->DeleteSetting(File_DiskIPLPath); + } + CSettingsPageImpl::ApplySettings(UpdateScreen); } @@ -72,4 +84,53 @@ bool CAdvancedOptionsPage::EnableReset(void) void CAdvancedOptionsPage::ResetPage() { CSettingsPageImpl::ResetPage(); +} + +void CAdvancedOptionsPage::SelectIplDir(UINT /*Code*/, int /*id*/, HWND /*ctl*/) +{ + SelectFile(DIR_SELECT_PLUGIN, m_IplDir); +} + +void CAdvancedOptionsPage::IplDirChanged(UINT /*Code*/, int /*id*/, HWND /*ctl*/) +{ + if (m_InUpdateSettings) { return; } + m_IplDir.SetChanged(true); + SendMessage(GetParent(), PSM_CHANGED, (WPARAM)m_hWnd, 0); +} + +void CAdvancedOptionsPage::UpdatePageSettings(void) +{ + m_InUpdateSettings = true; + CSettingsPageImpl::UpdatePageSettings(); + + stdstr File; + g_Settings->LoadStringVal(File_DiskIPLPath, File); + m_IplDir.SetWindowText(File.c_str()); + + m_InUpdateSettings = false; +} + +void CAdvancedOptionsPage::SelectFile(LanguageStringID Title, CModifiedEditBox & EditBox) +{ + // Open DDROM + OPENFILENAME openfilename; + char FileName[_MAX_PATH], Directory[_MAX_PATH]; + memset(&FileName, 0, sizeof(FileName)); + memset(&openfilename, 0, sizeof(openfilename)); + + strcpy(Directory, g_Settings->LoadStringVal(RomList_GameDir).c_str()); + openfilename.lStructSize = sizeof(openfilename); + openfilename.hwndOwner = m_hWnd; + openfilename.lpstrFilter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0"; + openfilename.lpstrFile = FileName; + openfilename.lpstrInitialDir = Directory; + openfilename.nMaxFile = MAX_PATH; + openfilename.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + + if (GetOpenFileName(&openfilename)) + { + EditBox.SetChanged(true); + EditBox.SetWindowText(FileName); + SendMessage(GetParent(), PSM_CHANGED, (WPARAM)m_hWnd, 0); + } } \ No newline at end of file diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.h b/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.h index aed80abe8..b93edcda5 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.h +++ b/Source/Project64/UserInterface/Settings/SettingsPage-AdvancedOptions.h @@ -20,9 +20,11 @@ class CAdvancedOptionsPage : COMMAND_ID_HANDLER_EX(IDC_ZIP,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_DEBUGGER,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_REMEMBER_CHEAT,CheckBoxChanged) - COMMAND_ID_HANDLER_EX(IDC_CHECK_RUNNING, CheckBoxChanged) - COMMAND_ID_HANDLER_EX(IDC_UNIQUE_SAVE_DIR, CheckBoxChanged) - COMMAND_ID_HANDLER_EX(IDC_DISPLAY_FRAMERATE, CheckBoxChanged) + COMMAND_ID_HANDLER_EX(IDC_CHECK_RUNNING, CheckBoxChanged) + COMMAND_ID_HANDLER_EX(IDC_UNIQUE_SAVE_DIR, CheckBoxChanged) + COMMAND_ID_HANDLER_EX(IDC_DISPLAY_FRAMERATE, CheckBoxChanged) + COMMAND_ID_HANDLER_EX(IDC_SELECT_IPL_DIR, SelectIplDir) + COMMAND_HANDLER_EX(IDC_IPL_DIR, EN_UPDATE, IplDirChanged) COMMAND_HANDLER_EX(IDC_FRAME_DISPLAY_TYPE,LBN_SELCHANGE,ComboBoxChanged) END_MSG_MAP() @@ -40,4 +42,11 @@ public: void ResetPage ( void ); private: + void SelectIplDir(UINT Code, int id, HWND ctl); + void IplDirChanged(UINT Code, int id, HWND ctl); + void UpdatePageSettings(void); + void SelectFile(LanguageStringID Title, CModifiedEditBox & EditBox); + CModifiedEditBox m_IplDir; + + bool m_InUpdateSettings; }; diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Options.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-Options.cpp index 8ec8f8d3b..6e2a0c825 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-Options.cpp +++ b/Source/Project64/UserInterface/Settings/SettingsPage-Options.cpp @@ -42,8 +42,6 @@ m_SettingsConfig(SettingsConfig) TxtBox = AddModTextBox(GetDlgItem(IDC_REMEMBERDIR), Directory_RecentGameDirCount, false); TxtBox->SetTextField(GetDlgItem(IDC_MAXROMDIR_TXT)); - m_IplDir.Attach(GetDlgItem(IDC_IPL_DIR)); - UpdatePageSettings(); } @@ -59,16 +57,6 @@ void CGeneralOptionsPage::ShowPage() void CGeneralOptionsPage::ApplySettings(bool UpdateScreen) { - if (m_IplDir.IsChanged()) - { - stdstr file = m_IplDir.GetWindowText(); - g_Settings->SaveString(File_DiskIPLPath, file.c_str()); - } - if (m_IplDir.IsReset()) - { - g_Settings->DeleteSetting(File_DiskIPLPath); - } - CSettingsPageImpl::ApplySettings(UpdateScreen); } @@ -89,52 +77,3 @@ void CGeneralOptionsPage::OnBasicMode(UINT Code, int id, HWND ctl) CheckBoxChanged(Code, id, ctl); m_SettingsConfig->UpdateAdvanced((int)::SendMessage(ctl, BM_GETCHECK, 0, 0) == 0); } - -void CGeneralOptionsPage::SelectIplDir(UINT /*Code*/, int /*id*/, HWND /*ctl*/) -{ - SelectFile(DIR_SELECT_PLUGIN, m_IplDir); -} - -void CGeneralOptionsPage::IplDirChanged(UINT /*Code*/, int /*id*/, HWND /*ctl*/) -{ - if (m_InUpdateSettings) { return; } - m_IplDir.SetChanged(true); - SendMessage(GetParent(), PSM_CHANGED, (WPARAM)m_hWnd, 0); -} - -void CGeneralOptionsPage::UpdatePageSettings(void) -{ - m_InUpdateSettings = true; - CSettingsPageImpl::UpdatePageSettings(); - - stdstr File; - g_Settings->LoadStringVal(File_DiskIPLPath, File); - m_IplDir.SetWindowText(File.c_str()); - - m_InUpdateSettings = false; -} - -void CGeneralOptionsPage::SelectFile(LanguageStringID Title, CModifiedEditBox & EditBox) -{ - // Open DDROM - OPENFILENAME openfilename; - char FileName[_MAX_PATH], Directory[_MAX_PATH]; - memset(&FileName, 0, sizeof(FileName)); - memset(&openfilename, 0, sizeof(openfilename)); - - strcpy(Directory, g_Settings->LoadStringVal(RomList_GameDir).c_str()); - openfilename.lStructSize = sizeof(openfilename); - openfilename.hwndOwner = m_hWnd; - openfilename.lpstrFilter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0"; - openfilename.lpstrFile = FileName; - openfilename.lpstrInitialDir = Directory; - openfilename.nMaxFile = MAX_PATH; - openfilename.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; - - if (GetOpenFileName(&openfilename)) - { - EditBox.SetChanged(true); - EditBox.SetWindowText(FileName); - SendMessage(GetParent(), PSM_CHANGED, (WPARAM)m_hWnd, 0); - } -} \ No newline at end of file diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Options.h b/Source/Project64/UserInterface/Settings/SettingsPage-Options.h index 80069cede..436cc5631 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-Options.h +++ b/Source/Project64/UserInterface/Settings/SettingsPage-Options.h @@ -20,8 +20,6 @@ class CGeneralOptionsPage : COMMAND_ID_HANDLER_EX(IDC_LOAD_FULLSCREEN,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_SCREEN_SAVER,CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_BASIC_MODE,OnBasicMode) - COMMAND_ID_HANDLER_EX(IDC_SELECT_IPL_DIR, SelectIplDir) - COMMAND_HANDLER_EX(IDC_IPL_DIR, EN_UPDATE, IplDirChanged) COMMAND_HANDLER_EX(IDC_REMEMBER,EN_UPDATE,EditBoxChanged) COMMAND_HANDLER_EX(IDC_REMEMBERDIR,EN_UPDATE,EditBoxChanged) END_MSG_MAP() @@ -40,12 +38,5 @@ public: private: void OnBasicMode ( UINT Code, int id, HWND ctl ); - void SelectIplDir( UINT Code, int id, HWND ctl ); - void IplDirChanged( UINT Code, int id, HWND ctl ); - void UpdatePageSettings( void ); - void SelectFile( LanguageStringID Title, CModifiedEditBox & EditBox ); CSettingConfig * m_SettingsConfig; - CModifiedEditBox m_IplDir; - - bool m_InUpdateSettings; }; diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc index 6a6df0edb..6d668f661 100644 --- a/Source/Project64/UserInterface/UIResources.rc +++ b/Source/Project64/UserInterface/UIResources.rc @@ -159,10 +159,6 @@ BEGIN EDITTEXT IDC_REMEMBERDIR,148,94,26,12,ES_AUTOHSCROLL | ES_NUMBER LTEXT "dirs",IDC_ROMSEL_TEXT4,178,98,34,10 CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,4,73,208,1 - CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,4,112,208,1 - EDITTEXT IDC_IPL_DIR,4,130,184,12,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_SELECT_IPL_DIR,194,130,14,12 - LTEXT "64DD IPL ROM Path:",IDC_IPLDIR_TXT,6,120,145,10 END IDD_Rom_Information DIALOGEX 0, 0, 239, 207 @@ -339,6 +335,9 @@ BEGIN CONTROL "Frame rate display",IDC_DISPLAY_FRAMERATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,98,86,10 COMBOBOX IDC_FRAME_DISPLAY_TYPE,101,97,99,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP CONTROL "Unique Game Save Directory",IDC_UNIQUE_SAVE_DIR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,83,189,10 + EDITTEXT IDC_IPL_DIR,4,125,184,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SELECT_IPL_DIR,194,125,14,12 + LTEXT "64DD IPL ROM Path:",IDC_IPLDIR_TXT,6,115,145,10 END IDD_Settings_ShellInt DIALOGEX 0, 0, 231, 206