Merge pull request #4422 from lioncash/codewindow-menu
CodeWindow: Migrate more menubar handling code to CFrame
This commit is contained in:
commit
0ad4e70fc5
|
@ -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,14 +18,10 @@
|
||||||
#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)
|
||||||
{
|
{
|
||||||
cpu_cores = {
|
m_cpu_cores = {
|
||||||
{PowerPC::CORE_INTERPRETER, _("Interpreter (slowest)")},
|
{PowerPC::CORE_INTERPRETER, _("Interpreter (slowest)")},
|
||||||
{PowerPC::CORE_CACHEDINTERPRETER, _("Cached Interpreter (slower)")},
|
{PowerPC::CORE_CACHEDINTERPRETER, _("Cached Interpreter (slower)")},
|
||||||
#ifdef _M_X86_64
|
#ifdef _M_X86_64
|
||||||
|
@ -50,7 +48,7 @@ void GeneralConfigPane::InitializeGUI()
|
||||||
m_throttler_array_string.Add(wxString::Format(_("%i%%"), i));
|
m_throttler_array_string.Add(wxString::Format(_("%i%%"), i));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const CPUCore& cpu_core : cpu_cores)
|
for (const CPUCore& cpu_core : m_cpu_cores)
|
||||||
m_cpu_engine_array_string.Add(cpu_core.name);
|
m_cpu_engine_array_string.Add(cpu_core.name);
|
||||||
|
|
||||||
m_dual_core_checkbox = new wxCheckBox(this, wxID_ANY, _("Enable Dual Core (speedup)"));
|
m_dual_core_checkbox = new wxCheckBox(this, wxID_ANY, _("Enable Dual Core (speedup)"));
|
||||||
|
@ -156,9 +154,9 @@ void GeneralConfigPane::LoadGUIValues()
|
||||||
if (selection < m_throttler_array_string.size())
|
if (selection < m_throttler_array_string.size())
|
||||||
m_throttler_choice->SetSelection(selection);
|
m_throttler_choice->SetSelection(selection);
|
||||||
|
|
||||||
for (size_t i = 0; i < cpu_cores.size(); ++i)
|
for (size_t i = 0; i < m_cpu_cores.size(); ++i)
|
||||||
{
|
{
|
||||||
if (cpu_cores[i].CPUid == startup_params.iCPUCore)
|
if (m_cpu_cores[i].CPUid == startup_params.iCPUCore)
|
||||||
m_cpu_engine_radiobox->SetSelection(i);
|
m_cpu_engine_radiobox->SetSelection(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 = m_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)
|
||||||
|
|
|
@ -24,7 +24,7 @@ private:
|
||||||
int CPUid;
|
int CPUid;
|
||||||
wxString name;
|
wxString name;
|
||||||
};
|
};
|
||||||
std::vector<CPUCore> cpu_cores;
|
std::vector<CPUCore> m_cpu_cores;
|
||||||
void InitializeGUI();
|
void InitializeGUI();
|
||||||
void LoadGUIValues();
|
void LoadGUIValues();
|
||||||
void RefreshGUI();
|
void RefreshGUI();
|
||||||
|
|
|
@ -132,7 +132,7 @@ CCodeWindow::~CCodeWindow()
|
||||||
m_aui_manager.UnInit();
|
m_aui_manager.UnInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMenuBar* CCodeWindow::GetMenuBar()
|
wxMenuBar* CCodeWindow::GetParentMenuBar()
|
||||||
{
|
{
|
||||||
return Parent->GetMenuBar();
|
return Parent->GetMenuBar();
|
||||||
}
|
}
|
||||||
|
@ -213,7 +213,6 @@ void CCodeWindow::OnCodeStep(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateButtonStates();
|
|
||||||
// Update all toolbars in the aui manager
|
// Update all toolbars in the aui manager
|
||||||
Parent->UpdateGUI();
|
Parent->UpdateGUI();
|
||||||
}
|
}
|
||||||
|
@ -502,9 +501,6 @@ void CCodeWindow::OnCPUMode(wxCommandEvent& event)
|
||||||
|
|
||||||
// Clear the JIT cache to enable these changes
|
// Clear the JIT cache to enable these changes
|
||||||
JitInterface::ClearCache();
|
JitInterface::ClearCache();
|
||||||
|
|
||||||
// Update
|
|
||||||
UpdateButtonStates();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCodeWindow::OnJitMenu(wxCommandEvent& event)
|
void CCodeWindow::OnJitMenu(wxCommandEvent& event)
|
||||||
|
@ -543,27 +539,27 @@ void CCodeWindow::OnJitMenu(wxCommandEvent& event)
|
||||||
// Shortcuts
|
// Shortcuts
|
||||||
bool CCodeWindow::UseInterpreter()
|
bool CCodeWindow::UseInterpreter()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_INTERPRETER);
|
return GetParentMenuBar()->IsChecked(IDM_INTERPRETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCodeWindow::BootToPause()
|
bool CCodeWindow::BootToPause()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_BOOT_TO_PAUSE);
|
return GetParentMenuBar()->IsChecked(IDM_BOOT_TO_PAUSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCodeWindow::AutomaticStart()
|
bool CCodeWindow::AutomaticStart()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_AUTOMATIC_START);
|
return GetParentMenuBar()->IsChecked(IDM_AUTOMATIC_START);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCodeWindow::JITNoBlockCache()
|
bool CCodeWindow::JITNoBlockCache()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_JIT_NO_BLOCK_CACHE);
|
return GetParentMenuBar()->IsChecked(IDM_JIT_NO_BLOCK_CACHE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCodeWindow::JITNoBlockLinking()
|
bool CCodeWindow::JITNoBlockLinking()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_JIT_NO_BLOCK_LINKING);
|
return GetParentMenuBar()->IsChecked(IDM_JIT_NO_BLOCK_LINKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update GUI
|
// Update GUI
|
||||||
|
@ -574,63 +570,20 @@ void CCodeWindow::Repopulate(bool refresh_codeview)
|
||||||
|
|
||||||
if (refresh_codeview)
|
if (refresh_codeview)
|
||||||
codeview->Refresh();
|
codeview->Refresh();
|
||||||
|
|
||||||
UpdateCallstack();
|
UpdateCallstack();
|
||||||
UpdateButtonStates();
|
|
||||||
|
|
||||||
// Do not automatically show the current PC position when a breakpoint is hit or
|
// Do not automatically show the current PC position when a breakpoint is hit or
|
||||||
// when we pause since this can be called at other times too.
|
// when we pause since this can be called at other times too.
|
||||||
// codeview->Center(PC);
|
// codeview->Center(PC);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCodeWindow::UpdateButtonStates()
|
void CCodeWindow::UpdateFonts()
|
||||||
{
|
{
|
||||||
bool Initialized = (Core::GetState() != Core::CORE_UNINITIALIZED);
|
|
||||||
bool Pause = (Core::GetState() == Core::CORE_PAUSE);
|
|
||||||
bool Stepping = CPU::IsStepping();
|
|
||||||
bool can_step = Initialized && Stepping;
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_INTERPRETER, Pause); // CPU Mode
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_STEP, can_step);
|
|
||||||
GetMenuBar()->Enable(IDM_STEPOVER, can_step);
|
|
||||||
GetMenuBar()->Enable(IDM_STEPOUT, can_step);
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_NO_BLOCK_CACHE, !Initialized);
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LS_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LSLXZ_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LSLWZ_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LSLBZX_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LSF_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_LSP_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_FP_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_I_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_P_OFF, Pause);
|
|
||||||
GetMenuBar()->Enable(IDM_JIT_SR_OFF, Pause);
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_CLEAR_CODE_CACHE, Pause); // JIT Menu
|
|
||||||
GetMenuBar()->Enable(IDM_SEARCH_INSTRUCTION, Initialized);
|
|
||||||
|
|
||||||
GetMenuBar()->Enable(IDM_CLEAR_SYMBOLS, Initialized); // Symbols menu
|
|
||||||
GetMenuBar()->Enable(IDM_SCAN_FUNCTIONS, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_LOAD_MAP_FILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_SAVEMAPFILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_LOAD_MAP_FILE_AS, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_SAVE_MAP_FILE_AS, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_LOAD_BAD_MAP_FILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_SAVE_MAP_FILE_WITH_CODES, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_CREATE_SIGNATURE_FILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_APPEND_SIGNATURE_FILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_COMBINE_SIGNATURE_FILES, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_RENAME_SYMBOLS, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_USE_SIGNATURE_FILE, Initialized);
|
|
||||||
GetMenuBar()->Enable(IDM_PATCH_HLE_FUNCTIONS, Initialized);
|
|
||||||
|
|
||||||
// Update Fonts
|
|
||||||
callstack->SetFont(DebuggerFont);
|
callstack->SetFont(DebuggerFont);
|
||||||
symbols->SetFont(DebuggerFont);
|
symbols->SetFont(DebuggerFont);
|
||||||
callers->SetFont(DebuggerFont);
|
callers->SetFont(DebuggerFont);
|
||||||
calls->SetFont(DebuggerFont);
|
calls->SetFont(DebuggerFont);
|
||||||
m_aui_manager.GetArtProvider()->SetFont(wxAUI_DOCKART_CAPTION_FONT, DebuggerFont);
|
m_aui_manager.GetArtProvider()->SetFont(wxAUI_DOCKART_CAPTION_FONT, DebuggerFont);
|
||||||
|
m_aui_manager.Update();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
@ -95,10 +92,8 @@ public:
|
||||||
|
|
||||||
void Repopulate(bool refresh_codeview = true);
|
void Repopulate(bool refresh_codeview = true);
|
||||||
void NotifyMapLoaded();
|
void NotifyMapLoaded();
|
||||||
void UpdateButtonStates();
|
|
||||||
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;
|
||||||
|
@ -128,6 +123,8 @@ 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:
|
||||||
|
wxMenuBar* GetParentMenuBar();
|
||||||
|
|
||||||
void OnCPUMode(wxCommandEvent& event);
|
void OnCPUMode(wxCommandEvent& event);
|
||||||
|
|
||||||
void OnChangeFont(wxCommandEvent& event);
|
void OnChangeFont(wxCommandEvent& event);
|
||||||
|
@ -151,6 +148,7 @@ private:
|
||||||
void StepOut();
|
void StepOut();
|
||||||
void ToggleBreakpoint();
|
void ToggleBreakpoint();
|
||||||
|
|
||||||
|
void UpdateFonts();
|
||||||
void UpdateLists();
|
void UpdateLists();
|
||||||
void UpdateCallstack();
|
void UpdateCallstack();
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,8 @@ void CCodeWindow::Save()
|
||||||
|
|
||||||
IniFile::Section* general = ini.GetOrCreateSection("General");
|
IniFile::Section* general = ini.GetOrCreateSection("General");
|
||||||
general->Set("DebuggerFont", WxStrToStr(DebuggerFont.GetNativeFontInfoUserDesc()));
|
general->Set("DebuggerFont", WxStrToStr(DebuggerFont.GetNativeFontInfoUserDesc()));
|
||||||
general->Set("AutomaticStart", GetMenuBar()->IsChecked(IDM_AUTOMATIC_START));
|
general->Set("AutomaticStart", GetParentMenuBar()->IsChecked(IDM_AUTOMATIC_START));
|
||||||
general->Set("BootToPause", GetMenuBar()->IsChecked(IDM_BOOT_TO_PAUSE));
|
general->Set("BootToPause", GetParentMenuBar()->IsChecked(IDM_BOOT_TO_PAUSE));
|
||||||
|
|
||||||
const char* SettingName[] = {"Log", "LogConfig", "Console", "Registers", "Breakpoints",
|
const char* SettingName[] = {"Log", "LogConfig", "Console", "Registers", "Breakpoints",
|
||||||
"Memory", "JIT", "Sound", "Video", "Code"};
|
"Memory", "JIT", "Sound", "Video", "Code"};
|
||||||
|
@ -102,7 +102,7 @@ void CCodeWindow::Save()
|
||||||
// Save windows settings
|
// Save windows settings
|
||||||
for (int i = IDM_LOG_WINDOW; i <= IDM_VIDEO_WINDOW; i++)
|
for (int i = IDM_LOG_WINDOW; i <= IDM_VIDEO_WINDOW; i++)
|
||||||
ini.GetOrCreateSection("ShowOnStart")
|
ini.GetOrCreateSection("ShowOnStart")
|
||||||
->Set(SettingName[i - IDM_LOG_WINDOW], GetMenuBar()->IsChecked(i));
|
->Set(SettingName[i - IDM_LOG_WINDOW], GetParentMenuBar()->IsChecked(i));
|
||||||
|
|
||||||
// Save notebook affiliations
|
// Save notebook affiliations
|
||||||
std::string section = "P - " + Parent->Perspectives[Parent->ActivePerspective].Name;
|
std::string section = "P - " + Parent->Perspectives[Parent->ActivePerspective].Name;
|
||||||
|
@ -125,7 +125,7 @@ void CCodeWindow::OnProfilerMenu(wxCommandEvent& event)
|
||||||
Core::SetState(Core::CORE_PAUSE);
|
Core::SetState(Core::CORE_PAUSE);
|
||||||
if (jit != nullptr)
|
if (jit != nullptr)
|
||||||
jit->ClearCache();
|
jit->ClearCache();
|
||||||
Profiler::g_ProfileBlocks = GetMenuBar()->IsChecked(IDM_PROFILE_BLOCKS);
|
Profiler::g_ProfileBlocks = GetParentMenuBar()->IsChecked(IDM_PROFILE_BLOCKS);
|
||||||
Core::SetState(Core::CORE_RUN);
|
Core::SetState(Core::CORE_RUN);
|
||||||
break;
|
break;
|
||||||
case IDM_WRITE_PROFILE:
|
case IDM_WRITE_PROFILE:
|
||||||
|
@ -447,6 +447,7 @@ void CCodeWindow::OnChangeFont(wxCommandEvent& event)
|
||||||
if (dialog.ShowModal() == wxID_OK)
|
if (dialog.ShowModal() == wxID_OK)
|
||||||
DebuggerFont = dialog.GetFontData().GetChosenFont();
|
DebuggerFont = dialog.GetFontData().GetChosenFont();
|
||||||
|
|
||||||
|
UpdateFonts();
|
||||||
// TODO: Send event to all panels that tells them to reload the font when it changes.
|
// TODO: Send event to all panels that tells them to reload the font when it changes.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +467,7 @@ void CCodeWindow::TogglePanel(int id, bool show)
|
||||||
wxPanel* panel = GetUntypedPanel(id);
|
wxPanel* panel = GetUntypedPanel(id);
|
||||||
|
|
||||||
// Not all the panels (i.e. CodeWindow) have corresponding menu options.
|
// Not all the panels (i.e. CodeWindow) have corresponding menu options.
|
||||||
wxMenuItem* item = GetMenuBar()->FindItem(id);
|
wxMenuItem* item = GetParentMenuBar()->FindItem(id);
|
||||||
if (item)
|
if (item)
|
||||||
item->Check(show);
|
item->Check(show);
|
||||||
|
|
||||||
|
|
|
@ -429,16 +429,11 @@ CFrame::CFrame(wxFrame* parent, wxWindowID id, const wxString& title, wxRect geo
|
||||||
X11Utils::XWindowFromHandle(GetHandle()));
|
X11Utils::XWindowFromHandle(GetHandle()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// -------------------------
|
|
||||||
// Connect event handlers
|
// Connect event handlers
|
||||||
|
|
||||||
m_Mgr->Bind(wxEVT_AUI_RENDER, &CFrame::OnManagerResize, this);
|
m_Mgr->Bind(wxEVT_AUI_RENDER, &CFrame::OnManagerResize, this);
|
||||||
// ----------
|
|
||||||
|
|
||||||
// Update controls
|
// Update controls
|
||||||
UpdateGUI();
|
UpdateGUI();
|
||||||
if (g_pCodeWindow)
|
|
||||||
g_pCodeWindow->UpdateButtonStates();
|
|
||||||
|
|
||||||
// check if game is running
|
// check if game is running
|
||||||
InitControllers();
|
InitControllers();
|
||||||
|
|
|
@ -179,6 +179,8 @@ private:
|
||||||
|
|
||||||
void BindEvents();
|
void BindEvents();
|
||||||
void BindMenuBarEvents();
|
void BindMenuBarEvents();
|
||||||
|
void BindDebuggerMenuBarEvents();
|
||||||
|
void BindDebuggerMenuBarUpdateEvents();
|
||||||
|
|
||||||
wxToolBar* OnCreateToolBar(long style, wxWindowID id, const wxString& name) override;
|
wxToolBar* OnCreateToolBar(long style, wxWindowID id, const wxString& name) override;
|
||||||
wxMenuBar* CreateMenuBar() const;
|
wxMenuBar* CreateMenuBar() const;
|
||||||
|
@ -235,6 +237,12 @@ private:
|
||||||
|
|
||||||
void OnReloadThemeBitmaps(wxCommandEvent& event);
|
void OnReloadThemeBitmaps(wxCommandEvent& event);
|
||||||
|
|
||||||
|
void OnEnableMenuItemIfCoreInitialized(wxUpdateUIEvent& event);
|
||||||
|
void OnEnableMenuItemIfCoreUninitialized(wxUpdateUIEvent& event);
|
||||||
|
void OnEnableMenuItemIfCorePaused(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);
|
||||||
void OnRefresh(wxCommandEvent& event);
|
void OnRefresh(wxCommandEvent& event);
|
||||||
|
|
|
@ -176,6 +176,18 @@ void CFrame::BindMenuBarEvents()
|
||||||
Bind(wxEVT_MENU, &CFrame::GameListChanged, this, IDM_PURGE_GAME_LIST_CACHE);
|
Bind(wxEVT_MENU, &CFrame::GameListChanged, this, IDM_PURGE_GAME_LIST_CACHE);
|
||||||
Bind(wxEVT_MENU, &CFrame::OnChangeColumnsVisible, this, IDM_SHOW_SYSTEM, IDM_SHOW_STATE);
|
Bind(wxEVT_MENU, &CFrame::OnChangeColumnsVisible, this, IDM_SHOW_SYSTEM, IDM_SHOW_STATE);
|
||||||
|
|
||||||
|
// Help menu
|
||||||
|
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_WEBSITE);
|
||||||
|
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_ONLINE_DOCS);
|
||||||
|
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_GITHUB);
|
||||||
|
Bind(wxEVT_MENU, &CFrame::OnHelp, this, wxID_ABOUT);
|
||||||
|
|
||||||
|
if (UseDebugger)
|
||||||
|
BindDebuggerMenuBarEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFrame::BindDebuggerMenuBarEvents()
|
||||||
|
{
|
||||||
// Debug menu
|
// Debug menu
|
||||||
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_SAVE_PERSPECTIVE);
|
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_SAVE_PERSPECTIVE);
|
||||||
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_EDIT_PERSPECTIVES);
|
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_EDIT_PERSPECTIVES);
|
||||||
|
@ -189,11 +201,51 @@ void CFrame::BindMenuBarEvents()
|
||||||
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_TAB_SPLIT);
|
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_TAB_SPLIT);
|
||||||
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_NO_DOCKING);
|
Bind(wxEVT_MENU, &CFrame::OnPerspectiveMenu, this, IDM_NO_DOCKING);
|
||||||
|
|
||||||
// Help menu
|
BindDebuggerMenuBarUpdateEvents();
|
||||||
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_WEBSITE);
|
}
|
||||||
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_ONLINE_DOCS);
|
|
||||||
Bind(wxEVT_MENU, &CFrame::OnHelp, this, IDM_HELP_GITHUB);
|
void CFrame::BindDebuggerMenuBarUpdateEvents()
|
||||||
Bind(wxEVT_MENU, &CFrame::OnHelp, this, wxID_ABOUT);
|
{
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEP);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOUT);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCPUCanStep, this, IDM_STEPOVER);
|
||||||
|
|
||||||
|
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_LS_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSLXZ_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSLWZ_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSLBZX_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSF_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_LSP_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_FP_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_I_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_P_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_JIT_SR_OFF);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCorePaused, this, IDM_CLEAR_CODE_CACHE);
|
||||||
|
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_SEARCH_INSTRUCTION);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_CLEAR_SYMBOLS);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_SCAN_FUNCTIONS);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_LOAD_MAP_FILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_SAVEMAPFILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_LOAD_MAP_FILE_AS);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_SAVE_MAP_FILE_AS);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_LOAD_BAD_MAP_FILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this,
|
||||||
|
IDM_SAVE_MAP_FILE_WITH_CODES);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this,
|
||||||
|
IDM_CREATE_SIGNATURE_FILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this,
|
||||||
|
IDM_APPEND_SIGNATURE_FILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this,
|
||||||
|
IDM_COMBINE_SIGNATURE_FILES);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_RENAME_SYMBOLS);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_USE_SIGNATURE_FILE);
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreInitialized, this, IDM_PATCH_HLE_FUNCTIONS);
|
||||||
|
|
||||||
|
Bind(wxEVT_UPDATE_UI, &CFrame::OnEnableMenuItemIfCoreUninitialized, this, IDM_JIT_NO_BLOCK_CACHE);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxToolBar* CFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name)
|
wxToolBar* CFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name)
|
||||||
|
@ -1015,6 +1067,36 @@ void CFrame::OnReloadThemeBitmaps(wxCommandEvent& WXUNUSED(event))
|
||||||
UpdateGameList();
|
UpdateGameList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CFrame::OnEnableMenuItemIfCoreInitialized(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
event.Enable(Core::GetState() != Core::CORE_UNINITIALIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFrame::OnEnableMenuItemIfCoreUninitialized(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
event.Enable(Core::GetState() == Core::CORE_UNINITIALIZED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFrame::OnEnableMenuItemIfCorePaused(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
event.Enable(Core::GetState() == Core::CORE_PAUSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CFrame::OnEnableMenuItemIfCPUCanStep(wxUpdateUIEvent& event)
|
||||||
|
{
|
||||||
|
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())
|
||||||
|
|
Loading…
Reference in New Issue