CodeWindow: Hide GetMenuBar()

This eliminates public usage of the GetMenuBar() function in CodeWindow.
The benefit of this is it also gets rid of the need to perform direct
access across the config dialog and the main frame. It also gets rid of
the use of the main_frame global.

GetMenuBar() will be removed entirely from CodeWindow in a follow-up that
also removes any related remnants of code made obsolete with its removal.
This commit is contained in:
Lioncash 2016-11-03 23:43:35 -04:00
parent 5ae6c21c2e
commit 5d4c714662
4 changed files with 19 additions and 18 deletions

View File

@ -2,6 +2,8 @@
// Licensed under GPLv2+ // Licensed under GPLv2+
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "DolphinWX/Config/GeneralConfigPane.h"
#include <wx/button.h> #include <wx/button.h>
#include <wx/checkbox.h> #include <wx/checkbox.h>
#include <wx/choice.h> #include <wx/choice.h>
@ -16,10 +18,6 @@
#include "Core/ConfigManager.h" #include "Core/ConfigManager.h"
#include "Core/Core.h" #include "Core/Core.h"
#include "Core/PowerPC/PowerPC.h" #include "Core/PowerPC/PowerPC.h"
#include "DolphinWX/Config/GeneralConfigPane.h"
#include "DolphinWX/Debugger/CodeWindow.h"
#include "DolphinWX/Frame.h"
#include "DolphinWX/Main.h"
GeneralConfigPane::GeneralConfigPane(wxWindow* parent, wxWindowID id) : wxPanel(parent, id) GeneralConfigPane::GeneralConfigPane(wxWindow* parent, wxWindowID id) : wxPanel(parent, id)
{ {
@ -200,15 +198,7 @@ void GeneralConfigPane::OnThrottlerChoiceChanged(wxCommandEvent& event)
void GeneralConfigPane::OnCPUEngineRadioBoxChanged(wxCommandEvent& event) void GeneralConfigPane::OnCPUEngineRadioBoxChanged(wxCommandEvent& event)
{ {
const int selection = m_cpu_engine_radiobox->GetSelection(); SConfig::GetInstance().iCPUCore = cpu_cores.at(event.GetSelection()).CPUid;
if (main_frame->g_pCodeWindow)
{
bool using_interp = (SConfig::GetInstance().iCPUCore == PowerPC::CORE_INTERPRETER);
main_frame->g_pCodeWindow->GetMenuBar()->Check(IDM_INTERPRETER, using_interp);
}
SConfig::GetInstance().iCPUCore = cpu_cores[selection].CPUid;
} }
void GeneralConfigPane::OnAnalyticsCheckBoxChanged(wxCommandEvent& event) void GeneralConfigPane::OnAnalyticsCheckBoxChanged(wxCommandEvent& event)

View File

@ -83,9 +83,6 @@ public:
void Load(); void Load();
void Save(); void Save();
// Parent interaction
wxMenuBar* GetMenuBar();
bool UseInterpreter(); bool UseInterpreter();
bool BootToPause(); bool BootToPause();
bool AutomaticStart(); bool AutomaticStart();
@ -97,7 +94,6 @@ public:
void NotifyMapLoaded(); void NotifyMapLoaded();
void OpenPages(); void OpenPages();
// Menu bar
// FIXME: This belongs in a separate class. // FIXME: This belongs in a separate class.
void TogglePanel(int id, bool show); void TogglePanel(int id, bool show);
wxPanel* GetUntypedPanel(int id) const; wxPanel* GetUntypedPanel(int id) const;
@ -127,6 +123,9 @@ public:
int iNbAffiliation[IDM_DEBUG_WINDOW_LIST_END - IDM_DEBUG_WINDOW_LIST_START]; int iNbAffiliation[IDM_DEBUG_WINDOW_LIST_END - IDM_DEBUG_WINDOW_LIST_START];
private: private:
// Parent interaction
wxMenuBar* GetMenuBar();
void OnCPUMode(wxCommandEvent& event); void OnCPUMode(wxCommandEvent& event);
void OnChangeFont(wxCommandEvent& event); void OnChangeFont(wxCommandEvent& event);

View File

@ -241,6 +241,7 @@ private:
void OnEnableMenuItemIfCoreUninitialized(wxUpdateUIEvent& event); void OnEnableMenuItemIfCoreUninitialized(wxUpdateUIEvent& event);
void OnEnableMenuItemIfCorePaused(wxUpdateUIEvent& event); void OnEnableMenuItemIfCorePaused(wxUpdateUIEvent& event);
void OnEnableMenuItemIfCPUCanStep(wxUpdateUIEvent& event); void OnEnableMenuItemIfCPUCanStep(wxUpdateUIEvent& event);
void OnUpdateInterpreterMenuItem(wxUpdateUIEvent& event);
void OnOpen(wxCommandEvent& event); // File menu void OnOpen(wxCommandEvent& event); // File menu
void DoOpen(bool Boot); void DoOpen(bool Boot);

View File

@ -210,7 +210,8 @@ void CFrame::BindDebuggerMenuBarUpdateEvents()
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOUT); Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOUT);
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOVER); Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOVER);
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_INTERPRETER); Bind(wxEVT_UPDATE_UI, &CFrame::OnUpdateInterpreterMenuItem, this, IDM_INTERPRETER);
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_OFF); Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_OFF);
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LS_OFF); Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LS_OFF);
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSLXZ_OFF); Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSLXZ_OFF);
@ -1086,6 +1087,16 @@ void CFrame::OnEnableMenuItemIfCPUCanStep(wxUpdateUIEvent& event)
event.Enable(Core::GetState() != Core::CORE_UNINITIALIZED && CPU::IsStepping()); event.Enable(Core::GetState() != Core::CORE_UNINITIALIZED && CPU::IsStepping());
} }
void CFrame::OnUpdateInterpreterMenuItem(wxUpdateUIEvent& event)
{
OnEnableMenuItemIfCorePaused(event);
if (GetMenuBar()->FindItem(IDM_INTERPRETER)->IsChecked())
return;
event.Check(SConfig::GetInstance().iCPUCore == PowerPC::CORE_INTERPRETER);
}
void CFrame::ClearStatusBar() void CFrame::ClearStatusBar()
{ {
if (this->GetStatusBar()->IsEnabled()) if (this->GetStatusBar()->IsEnabled())