From 5070a5979983452b4f53fc45fa2ca07550d31631 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 30 May 2010 08:22:04 +0000 Subject: [PATCH] Made the Dolphin config dialog shorter with an added "Display" tab. Removed code that toggled fullscreen on double-click in gamecube games because GCPad New allows mouse input (maybe double-click fullscreen toggling should be an option though). Changed the label in the toolbar from "GC Pad" to "GCPad" (all other labels on the toolbar are single words and we call the plugin "GCPad" everywhere else). Made game properties dialog open centered on screen. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5548 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 114 +++++++++++---------- Source/Core/DolphinWX/Src/ConfigMain.h | 20 ++-- Source/Core/DolphinWX/Src/Frame.cpp | 22 ---- Source/Core/DolphinWX/Src/Frame.h | 1 - Source/Core/DolphinWX/Src/FrameTools.cpp | 2 +- Source/Core/DolphinWX/Src/GameListCtrl.cpp | 1 + 6 files changed, 73 insertions(+), 87 deletions(-) diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 41dc241b6a..7b27af35e5 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -332,12 +332,14 @@ void CConfigMain::CreateGUIControls() // Create the notebook and pages Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize); GeneralPage = new wxPanel(Notebook, ID_GENERALPAGE, wxDefaultPosition, wxDefaultSize); + DisplayPage = new wxPanel(Notebook, ID_DISPLAYPAGE, wxDefaultPosition, wxDefaultSize); GamecubePage = new wxPanel(Notebook, ID_GAMECUBEPAGE, wxDefaultPosition, wxDefaultSize); WiiPage = new wxPanel(Notebook, ID_WIIPAGE, wxDefaultPosition, wxDefaultSize); PathsPage = new wxPanel(Notebook, ID_PATHSPAGE, wxDefaultPosition, wxDefaultSize); PluginPage = new wxPanel(Notebook, ID_PLUGINPAGE, wxDefaultPosition, wxDefaultSize); Notebook->AddPage(GeneralPage, wxT("General")); + Notebook->AddPage(DisplayPage, wxT("Display")); Notebook->AddPage(GamecubePage, wxT("Gamecube")); Notebook->AddPage(WiiPage, wxT("Wii")); Notebook->AddPage(PathsPage, wxT("Paths")); @@ -346,8 +348,6 @@ void CConfigMain::CreateGUIControls() // General page sbBasic = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Basic Settings")); sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings")); - sbInterface = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Interface Settings")); - sbDisplay = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Emulator Display Settings")); // Core Settings - Basic CPUThread = new wxCheckBox(GeneralPage, ID_CPUTHREAD, wxT("Enable Dual Core (speedup)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); SkipIdle = new wxCheckBox(GeneralPage, ID_IDLESKIP, wxT("Enable Idle Skipping (speedup)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); @@ -367,38 +367,7 @@ void CConfigMain::CreateGUIControls() LockThreads = new wxCheckBox(GeneralPage, ID_LOCKTHREADS, wxT("Lock threads to cores"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); DSPThread = new wxCheckBox(GeneralPage, ID_DSPTHREAD, wxT("DSPLLE on thread"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - // Interface settings - ConfirmStop = new wxCheckBox(GeneralPage, ID_INTERFACE_CONFIRMSTOP, wxT("Confirm On Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - UsePanicHandlers = new wxCheckBox(GeneralPage, ID_INTERFACE_USEPANICHANDLERS, wxT("Use Panic Handlers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - - - // Interface Language - // At the moment this only changes the language displayed in m_gamelistctrl - // If someone wants to control the whole GUI's language, it should be set here too - wxStaticText *InterfaceLangText = new wxStaticText(GeneralPage, ID_INTERFACE_LANG_TEXT, wxT("Game List Language:"), wxDefaultPosition, wxDefaultSize); - InterfaceLang = new wxChoice(GeneralPage, ID_INTERFACE_LANG, wxDefaultPosition, wxDefaultSize, arrayStringFor_InterfaceLang, 0, wxDefaultValidator); - - // Hotkey configuration - HotkeyConfig = new wxButton(GeneralPage, ID_HOTKEY_CONFIG, wxT("Hotkeys"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator); - - // Themes - this should really be a wxChoice... - Theme = new wxRadioBox(GeneralPage, ID_INTERFACE_THEME, wxT("Theme"),wxDefaultPosition, wxDefaultSize, arrayStringFor_Themes, 1, wxRA_SPECIFY_ROWS); - - // General display settings - wxStaticText *FullscreenResolutionText = new wxStaticText(GeneralPage, wxID_ANY, wxT("Fullscreen Display Resolution:"), wxDefaultPosition, wxDefaultSize, 0); - FullscreenResolution = new wxChoice(GeneralPage, ID_DISPLAY_FULLSCREENRES, wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenResolution, 0, wxDefaultValidator, arrayStringFor_FullscreenResolution[0]); - wxStaticText *WindowSizeText = new wxStaticText(GeneralPage, wxID_ANY, wxT("Window Size:"), wxDefaultPosition, wxDefaultSize, 0); - WindowWidth = new wxSpinCtrl(GeneralPage, ID_DISPLAY_WINDOWWIDTH, wxEmptyString, wxDefaultPosition, wxDefaultSize); - wxStaticText *WindowXText = new wxStaticText(GeneralPage, wxID_ANY, wxT("x"), wxDefaultPosition, wxDefaultSize, 0); - WindowWidth->SetRange(0,3280); - WindowHeight = new wxSpinCtrl(GeneralPage, ID_DISPLAY_WINDOWHEIGHT, wxEmptyString, wxDefaultPosition, wxDefaultSize); - WindowHeight->SetRange(0,2048); - Fullscreen = new wxCheckBox(GeneralPage, ID_DISPLAY_FULLSCREEN, wxT("Start Renderer in Fullscreen"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - HideCursor = new wxCheckBox(GeneralPage, ID_DISPLAY_HIDECURSOR, wxT("Hide Mouse Cursor")); - RenderToMain = new wxCheckBox(GeneralPage, ID_DISPLAY_RENDERTOMAIN, wxT("Render to Main Window"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); - // Populate the settings - sCore = new wxBoxSizer(wxHORIZONTAL); sbBasic->Add(CPUThread, 0, wxALL, 5); sbBasic->Add(SkipIdle, 0, wxALL, 5); sbBasic->Add(EnableCheats, 0, wxALL, 5); @@ -415,19 +384,31 @@ void CConfigMain::CreateGUIControls() sbAdvanced->Add(sizerCoreType, 0, wxALL, 5); sbAdvanced->Add(LockThreads, 0, wxALL, 5); sbAdvanced->Add(DSPThread, 0, wxALL, 5); - sCore->Add(sbBasic, 0, wxEXPAND); - sCore->AddStretchSpacer(); - sCore->Add(sbAdvanced, 0, wxEXPAND); - sbInterface->Add(ConfirmStop, 0, wxALL, 5); - sbInterface->Add(UsePanicHandlers, 0, wxALL, 5); - sbInterface->Add(Theme, 0, wxEXPAND | wxALL, 5); - wxBoxSizer *sInterface = new wxBoxSizer(wxHORIZONTAL); - sInterface->Add(InterfaceLangText, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); - sInterface->Add(InterfaceLang, 0, wxEXPAND | wxALL, 5); - sInterface->AddStretchSpacer(); - sInterface->Add(HotkeyConfig, 0, wxALIGN_RIGHT | wxALL, 5); - sbInterface->Add(sInterface, 0, wxEXPAND | wxALL, 5); + // Populate the entire page + sGeneralPage = new wxBoxSizer(wxVERTICAL); + sGeneralPage->Add(sbBasic, 0, wxEXPAND | wxALL, 5); + sGeneralPage->Add(sbAdvanced, 0, wxEXPAND | wxALL, 5); + + GeneralPage->SetSizer(sGeneralPage); + sGeneralPage->Layout(); + + // Display page + sbInterface = new wxStaticBoxSizer(wxVERTICAL, DisplayPage, wxT("Interface Settings")); + sbDisplay = new wxStaticBoxSizer(wxVERTICAL, DisplayPage, wxT("Emulator Display Settings")); + + // General display settings + wxStaticText *FullscreenResolutionText = new wxStaticText(DisplayPage, wxID_ANY, wxT("Fullscreen Display Resolution:"), wxDefaultPosition, wxDefaultSize, 0); + FullscreenResolution = new wxChoice(DisplayPage, ID_DISPLAY_FULLSCREENRES, wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenResolution, 0, wxDefaultValidator, arrayStringFor_FullscreenResolution[0]); + wxStaticText *WindowSizeText = new wxStaticText(DisplayPage, wxID_ANY, wxT("Window Size:"), wxDefaultPosition, wxDefaultSize, 0); + WindowWidth = new wxSpinCtrl(DisplayPage, ID_DISPLAY_WINDOWWIDTH, wxEmptyString, wxDefaultPosition, wxDefaultSize); + wxStaticText *WindowXText = new wxStaticText(DisplayPage, wxID_ANY, wxT("x"), wxDefaultPosition, wxDefaultSize, 0); + WindowWidth->SetRange(0,3280); + WindowHeight = new wxSpinCtrl(DisplayPage, ID_DISPLAY_WINDOWHEIGHT, wxEmptyString, wxDefaultPosition, wxDefaultSize); + WindowHeight->SetRange(0,2048); + Fullscreen = new wxCheckBox(DisplayPage, ID_DISPLAY_FULLSCREEN, wxT("Start Renderer in Fullscreen"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + HideCursor = new wxCheckBox(DisplayPage, ID_DISPLAY_HIDECURSOR, wxT("Hide Mouse Cursor")); + RenderToMain = new wxCheckBox(DisplayPage, ID_DISPLAY_RENDERTOMAIN, wxT("Render to Main Window"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); wxBoxSizer *sDisplayRes = new wxBoxSizer(wxHORIZONTAL); sDisplayRes->Add(FullscreenResolutionText, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); @@ -443,17 +424,40 @@ void CConfigMain::CreateGUIControls() sbDisplay->Add(HideCursor, 0, wxALL, 5); sbDisplay->Add(RenderToMain, 0, wxEXPAND | wxALL, 5); - // Populate the entire page - sGeneralPage = new wxBoxSizer(wxVERTICAL); - sGeneralPage->Add(sCore, 0, wxEXPAND | wxALL, 5); - sGeneralPage->Add(sbInterface, 0, wxEXPAND | wxALL, 5); - sGeneralPage->Add(sbDisplay, 0, wxEXPAND | wxALL, 5); - - GeneralPage->SetSizer(sGeneralPage); - sGeneralPage->Layout(); - - + // Interface settings + ConfirmStop = new wxCheckBox(DisplayPage, ID_INTERFACE_CONFIRMSTOP, wxT("Confirm On Stop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + UsePanicHandlers = new wxCheckBox(DisplayPage, ID_INTERFACE_USEPANICHANDLERS, wxT("Use Panic Handlers"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator); + // Interface Language + // At the moment this only changes the language displayed in m_gamelistctrl + // If someone wants to control the whole GUI's language, it should be set here too + wxStaticText *InterfaceLangText = new wxStaticText(DisplayPage, ID_INTERFACE_LANG_TEXT, wxT("Game List Language:"), wxDefaultPosition, wxDefaultSize); + InterfaceLang = new wxChoice(DisplayPage, ID_INTERFACE_LANG, wxDefaultPosition, wxDefaultSize, arrayStringFor_InterfaceLang, 0, wxDefaultValidator); + + // Hotkey configuration + HotkeyConfig = new wxButton(DisplayPage, ID_HOTKEY_CONFIG, wxT("Hotkeys"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, wxDefaultValidator); + + // Themes - this should really be a wxChoice... + Theme = new wxRadioBox(DisplayPage, ID_INTERFACE_THEME, wxT("Theme"),wxDefaultPosition, wxDefaultSize, arrayStringFor_Themes, 1, wxRA_SPECIFY_ROWS); + + sbInterface->Add(ConfirmStop, 0, wxALL, 5); + sbInterface->Add(UsePanicHandlers, 0, wxALL, 5); + sbInterface->Add(Theme, 0, wxEXPAND | wxALL, 5); + wxBoxSizer *sInterface = new wxBoxSizer(wxHORIZONTAL); + sInterface->Add(InterfaceLangText, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + sInterface->Add(InterfaceLang, 0, wxEXPAND | wxALL, 5); + sInterface->AddStretchSpacer(); + sInterface->Add(HotkeyConfig, 0, wxALIGN_RIGHT | wxALL, 5); + sbInterface->Add(sInterface, 0, wxEXPAND | wxALL, 5); + + // sizers + sDisplayPage = new wxBoxSizer(wxVERTICAL); + sDisplayPage->Add(sbDisplay, 0, wxEXPAND | wxALL, 5); + sDisplayPage->Add(sbInterface, 0, wxEXPAND | wxALL, 5); + + DisplayPage->SetSizer(sDisplayPage); + sDisplayPage->Layout(); + // Gamecube page sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, GamecubePage, wxT("IPL Settings")); // IPL settings diff --git a/Source/Core/DolphinWX/Src/ConfigMain.h b/Source/Core/DolphinWX/Src/ConfigMain.h index 12a24b6e20..a24824a7d9 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.h +++ b/Source/Core/DolphinWX/Src/ConfigMain.h @@ -52,18 +52,10 @@ private: wxBoxSizer* sGeneralPage; // General Settings wxCheckBox* ConfirmStop, *UsePanicHandlers, *UseFPSForLimiting; - wxCheckBox* HideCursor; wxChoice* InterfaceLang; wxChoice* Framelimit; wxRadioBox* Theme; - wxCheckBox* Fullscreen; - wxChoice* FullscreenResolution; - wxSpinCtrl *WindowWidth; - wxSpinCtrl *WindowHeight; - wxCheckBox* RenderToMain; - wxButton* HotkeyConfig; - wxBoxSizer* sCore; wxStaticBoxSizer* sbBasic, *sbAdvanced, *sbInterface, *sbDisplay; wxCheckBox* AlwaysHLE_BS2; wxRadioButton* m_RadioInt; @@ -75,6 +67,16 @@ private: wxCheckBox* SkipIdle; wxCheckBox* EnableCheats; + // Display settings + wxBoxSizer* sDisplayPage; + wxCheckBox* HideCursor; + wxCheckBox* Fullscreen; + wxChoice* FullscreenResolution; + wxSpinCtrl *WindowWidth; + wxSpinCtrl *WindowHeight; + wxCheckBox* RenderToMain; + wxButton* HotkeyConfig; + wxBoxSizer* sGamecube; // GC settings wxStaticBoxSizer* sbGamecubeIPLSettings; wxGridBagSizer* sGamecubeIPLSettings; @@ -102,6 +104,7 @@ private: wxNotebook *Notebook; wxPanel *GeneralPage; + wxPanel *DisplayPage; wxPanel *GamecubePage; wxPanel *WiiPage; wxPanel *PathsPage; @@ -162,6 +165,7 @@ private: { ID_NOTEBOOK = 1000, ID_GENERALPAGE, + ID_DISPLAYPAGE, ID_GAMECUBEPAGE, ID_WIIPAGE, ID_PATHSPAGE, diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp index bb4c651eff..165908a8e0 100644 --- a/Source/Core/DolphinWX/Src/Frame.cpp +++ b/Source/Core/DolphinWX/Src/Frame.cpp @@ -491,10 +491,6 @@ CFrame::CFrame(wxFrame* parent, m_Mgr->Connect(wxID_ANY, wxEVT_AUI_RENDER, // Resize wxAuiManagerEventHandler(CFrame::OnManagerResize), - (wxObject*)0, this); - - wxTheApp->Connect(wxID_ANY, wxEVT_LEFT_DCLICK, - wxMouseEventHandler(CFrame::OnDoubleClick), (wxObject*)0, this); // ---------- @@ -905,24 +901,6 @@ void CFrame::OnKeyUp(wxKeyEvent& event) CPluginManager::GetInstance().GetPad(0)->PAD_Input(event.GetKeyCode(), 0); // 0 = Up } -// --------------- -// Detect double click - -void CFrame::OnDoubleClick(wxMouseEvent& event) -{ - // Don't block the mouse click - event.Skip(); - - // Don't use this in Wii mode since we use the mouse as input to the game there - if (SConfig::GetInstance().m_LocalCoreStartupParameter.bWii) return; - - // Only detect double clicks in the rendering window, and only use this when a game is running - if (! (Core::GetState() == Core::CORE_RUN && event.GetEventObject() == m_RenderParent)) return; - - DoFullscreen(!RendererIsFullscreen()); -} - - // -------- // Functions diff --git a/Source/Core/DolphinWX/Src/Frame.h b/Source/Core/DolphinWX/Src/Frame.h index e51acabb39..68f1a770bc 100644 --- a/Source/Core/DolphinWX/Src/Frame.h +++ b/Source/Core/DolphinWX/Src/Frame.h @@ -336,7 +336,6 @@ class CFrame : public CRenderFrame void OnToggleConsole(wxCommandEvent& event); void OnKeyDown(wxKeyEvent& event); void OnKeyUp(wxKeyEvent& event); - void OnDoubleClick(wxMouseEvent& event); void OnHostMessage(wxCommandEvent& event); diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index 63b6173006..e720b6f458 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -332,7 +332,7 @@ void CFrame::PopulateToolbar(wxAuiToolBar* ToolBar) ToolBar->AddTool(IDM_CONFIG_MAIN, _T("Config"), m_Bitmaps[Toolbar_PluginOptions], _T("Configure...")); ToolBar->AddTool(IDM_CONFIG_GFX_PLUGIN, _T("Graphics"), m_Bitmaps[Toolbar_PluginGFX], _T("Graphics settings")); ToolBar->AddTool(IDM_CONFIG_DSP_PLUGIN, _T("DSP"), m_Bitmaps[Toolbar_PluginDSP], _T("DSP settings")); - ToolBar->AddTool(IDM_CONFIG_PAD_PLUGIN, _T("GC Pad"), m_Bitmaps[Toolbar_PluginPAD], _T("Gamecube Pad settings")); + ToolBar->AddTool(IDM_CONFIG_PAD_PLUGIN, _T("GCPad"), m_Bitmaps[Toolbar_PluginPAD], _T("Gamecube Pad settings")); ToolBar->AddTool(IDM_CONFIG_WIIMOTE_PLUGIN, _T("Wiimote"), m_Bitmaps[Toolbar_Wiimote], _T("Wiimote settings")); // after adding the buttons to the toolbar, must call Realize() to reflect diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 37ef22c91a..1cfa5cada9 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -1048,6 +1048,7 @@ void CGameListCtrl::OnProperties(wxCommandEvent& WXUNUSED (event)) if (!iso) return; CISOProperties ISOProperties(iso->GetFileName(), this); + ISOProperties.Center(); if(ISOProperties.ShowModal() == wxID_OK) Update(); }