diff options
Diffstat (limited to 'Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp | 46 |
1 files changed, 20 insertions, 26 deletions
diff --git a/Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp b/Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp index 199f1d376e..69301fc233 100644 --- a/Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp +++ b/Source/Core/DolphinWX/Debugger/DSPDebugWindow.cpp @@ -32,9 +32,8 @@ static DSPDebuggerLLE* m_DebuggerFrame = nullptr; DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id) : wxPanel(parent, id, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _("DSP LLE Debugger")), - m_CachedStepCounter(-1) + m_CachedStepCounter(-1), m_toolbar_item_size(FromDIP(wxSize(16, 16))) { - Bind(wxEVT_CLOSE_WINDOW, &DSPDebuggerLLE::OnClose, this); Bind(wxEVT_MENU, &DSPDebuggerLLE::OnChangeState, this, ID_RUNTOOL, ID_SHOWPCTOOL); m_DebuggerFrame = this; @@ -46,11 +45,12 @@ DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id) m_Toolbar = new DolphinAuiToolBar(this, ID_TOOLBAR, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_TEXT); m_Toolbar->AddTool(ID_RUNTOOL, _("Pause"), - wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, wxSize(10, 10))); + wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, m_toolbar_item_size)); m_Toolbar->AddTool(ID_STEPTOOL, _("Step"), - wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_OTHER, wxSize(10, 10))); - m_Toolbar->AddTool(ID_SHOWPCTOOL, _("Show PC"), - wxArtProvider::GetBitmap(wxART_GO_TO_PARENT, wxART_OTHER, wxSize(10, 10))); + wxArtProvider::GetBitmap(wxART_GO_DOWN, wxART_OTHER, m_toolbar_item_size)); + m_Toolbar->AddTool( + ID_SHOWPCTOOL, _("Show PC"), + wxArtProvider::GetBitmap(wxART_GO_TO_PARENT, wxART_OTHER, m_toolbar_item_size)); m_Toolbar->AddSeparator(); m_addr_txtctrl = new wxTextCtrl(m_Toolbar, wxID_ANY, wxEmptyString, wxDefaultPosition, @@ -60,8 +60,8 @@ DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id) m_Toolbar->AddControl(m_addr_txtctrl); m_Toolbar->Realize(); - m_SymbolList = - new wxListBox(this, wxID_ANY, wxDefaultPosition, wxSize(140, 100), 0, nullptr, wxLB_SORT); + m_SymbolList = new wxListBox(this, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(this, wxSize(100, 80)), + 0, nullptr, wxLB_SORT); m_SymbolList->Bind(wxEVT_LISTBOX, &DSPDebuggerLLE::OnSymbolListChange, this); m_MainNotebook = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, @@ -71,15 +71,14 @@ DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id) wxBoxSizer* code_sizer = new wxBoxSizer(wxVERTICAL); m_CodeView = new CCodeView(&debug_interface, &DSPSymbols::g_dsp_symbol_db, code_panel); m_CodeView->SetPlain(); - code_sizer->Add(m_CodeView, 1, wxALL | wxEXPAND); + code_sizer->Add(m_CodeView, 1, wxEXPAND); code_panel->SetSizer(code_sizer); m_MainNotebook->AddPage(code_panel, _("Disassembly"), true); wxPanel* mem_panel = new wxPanel(m_MainNotebook, wxID_ANY); wxBoxSizer* mem_sizer = new wxBoxSizer(wxVERTICAL); - // TODO insert memViewer class m_MemView = new CMemoryView(&debug_interface, mem_panel); - mem_sizer->Add(m_MemView, 1, wxALL | wxEXPAND); + mem_sizer->Add(m_MemView, 1, wxEXPAND); mem_panel->SetSizer(mem_sizer); m_MainNotebook->AddPage(mem_panel, _("Memory")); @@ -111,11 +110,6 @@ DSPDebuggerLLE::~DSPDebuggerLLE() m_DebuggerFrame = nullptr; } -void DSPDebuggerLLE::OnClose(wxCloseEvent& event) -{ - event.Skip(); -} - void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event) { if (DSPCore_GetState() == DSPCORE_STOP) @@ -134,7 +128,7 @@ void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event) if (DSPCore_GetState() == DSPCORE_STEPPING) { DSPCore_Step(); - Update(); + Repopulate(); } break; @@ -149,24 +143,24 @@ void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event) void Host_RefreshDSPDebuggerWindow() { + // FIXME: This should use QueueEvent to post the update request to the UI thread. + // Need to check if this can safely be performed asynchronously or if it races. + // FIXME: This probably belongs in Main.cpp with the other host functions. + // NOTE: The DSP never tells us when it shuts down. It probably should. if (m_DebuggerFrame) - m_DebuggerFrame->Update(); + m_DebuggerFrame->Repopulate(); } -void DSPDebuggerLLE::Update() +void DSPDebuggerLLE::Repopulate() { -#if defined __WXGTK__ if (!wxIsMainThread()) wxMutexGuiEnter(); -#endif UpdateSymbolMap(); UpdateDisAsmListView(); UpdateRegisterFlags(); UpdateState(); -#if defined __WXGTK__ if (!wxIsMainThread()) wxMutexGuiLeave(); -#endif } void DSPDebuggerLLE::FocusOnPC() @@ -180,14 +174,14 @@ void DSPDebuggerLLE::UpdateState() { m_Toolbar->SetToolLabel(ID_RUNTOOL, _("Pause")); m_Toolbar->SetToolBitmap( - ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, wxSize(10, 10))); + ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, m_toolbar_item_size)); m_Toolbar->EnableTool(ID_STEPTOOL, false); } else { m_Toolbar->SetToolLabel(ID_RUNTOOL, _("Run")); m_Toolbar->SetToolBitmap( - ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_OTHER, wxSize(10, 10))); + ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_OTHER, m_toolbar_item_size)); m_Toolbar->EnableTool(ID_STEPTOOL, true); } m_Toolbar->Realize(); @@ -201,7 +195,7 @@ void DSPDebuggerLLE::UpdateDisAsmListView() // show PC FocusOnPC(); m_CachedStepCounter = g_dsp.step_counter; - m_Regs->Update(); + m_Regs->Repopulate(); } void DSPDebuggerLLE::UpdateSymbolMap() |
