mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-11 00:29:11 +01:00
GUI: Fixed the debugging toolbar
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4061 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
c1f091e4bc
commit
9ae08121d0
@ -161,12 +161,8 @@ END_EVENT_TABLE()
|
|||||||
|
|
||||||
|
|
||||||
// Class, input event handler and host message handler
|
// Class, input event handler and host message handler
|
||||||
/*
|
CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, wxWindow* parent,
|
||||||
CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, wxWindow* parent, wxWindowID id,
|
wxWindowID id)
|
||||||
const wxString& title, const wxPoint& pos, const wxSize& size, long style)
|
|
||||||
: wxFrame(parent, id, title, pos, size, style)
|
|
||||||
*/
|
|
||||||
CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, wxWindow* parent, wxWindowID id)
|
|
||||||
: wxPanel(parent, id)
|
: wxPanel(parent, id)
|
||||||
|
|
||||||
/* Remember to initialize potential new controls with NULL there, otherwise m_dialog = true and
|
/* Remember to initialize potential new controls with NULL there, otherwise m_dialog = true and
|
||||||
@ -175,6 +171,7 @@ CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter
|
|||||||
, m_BreakpointWindow(NULL)
|
, m_BreakpointWindow(NULL)
|
||||||
, m_MemoryWindow(NULL)
|
, m_MemoryWindow(NULL)
|
||||||
, m_JitWindow(NULL)
|
, m_JitWindow(NULL)
|
||||||
|
, m_ToolBar2(NULL)
|
||||||
{
|
{
|
||||||
// Load ini settings
|
// Load ini settings
|
||||||
IniFile file;
|
IniFile file;
|
||||||
@ -231,14 +228,18 @@ wxMenuBar *CCodeWindow::GetMenuBar()
|
|||||||
{
|
{
|
||||||
if (GetParentFrame()) return GetParentFrame()->GetMenuBar();
|
if (GetParentFrame()) return GetParentFrame()->GetMenuBar();
|
||||||
}
|
}
|
||||||
wxToolBar *CCodeWindow::GetToolBar()
|
wxAuiToolBar *CCodeWindow::GetToolBar()
|
||||||
{
|
{
|
||||||
if (GetParentFrame()) return GetParentFrame()->GetToolBar();
|
if (GetParentFrame()) return m_ToolBar2;
|
||||||
}
|
}
|
||||||
bool CCodeWindow::IsActive()
|
bool CCodeWindow::IsActive()
|
||||||
{
|
{
|
||||||
if (GetParentFrame()) return GetParentFrame()->IsActive();
|
if (GetParentFrame()) return GetParentFrame()->IsActive();
|
||||||
}
|
}
|
||||||
|
void CCodeWindow::UpdateToolbar(wxAuiToolBar * _ToolBar2)
|
||||||
|
{
|
||||||
|
m_ToolBar2 = _ToolBar2;
|
||||||
|
}
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@ -771,6 +772,12 @@ void CCodeWindow::OnCodeViewChange(wxCommandEvent &event)
|
|||||||
|
|
||||||
void CCodeWindow::OnAddrBoxChange(wxCommandEvent& event)
|
void CCodeWindow::OnAddrBoxChange(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
|
Console->Log(LogTypes::LNOTICE, StringFromFormat(
|
||||||
|
"GetToolBar():%i\n", GetToolBar()).c_str());
|
||||||
|
|
||||||
|
if (!GetToolBar()) return;
|
||||||
|
|
||||||
wxTextCtrl* pAddrCtrl = (wxTextCtrl*)GetToolBar()->FindControl(IDM_ADDRBOX);
|
wxTextCtrl* pAddrCtrl = (wxTextCtrl*)GetToolBar()->FindControl(IDM_ADDRBOX);
|
||||||
wxString txt = pAddrCtrl->GetValue();
|
wxString txt = pAddrCtrl->GetValue();
|
||||||
|
|
||||||
@ -900,7 +907,7 @@ void CCodeWindow::UpdateButtonStates()
|
|||||||
bool Initialized = (Core::GetState() != Core::CORE_UNINITIALIZED);
|
bool Initialized = (Core::GetState() != Core::CORE_UNINITIALIZED);
|
||||||
bool Running = (Core::GetState() == Core::CORE_RUN);
|
bool Running = (Core::GetState() == Core::CORE_RUN);
|
||||||
bool Pause = (Core::GetState() == Core::CORE_PAUSE);
|
bool Pause = (Core::GetState() == Core::CORE_PAUSE);
|
||||||
wxToolBar* toolBar = GetToolBar();
|
wxAuiToolBar* toolBar = GetToolBar();
|
||||||
|
|
||||||
if (!toolBar) return;
|
if (!toolBar) return;
|
||||||
|
|
||||||
@ -916,7 +923,7 @@ void CCodeWindow::UpdateButtonStates()
|
|||||||
if (!CCPU::IsStepping())
|
if (!CCPU::IsStepping())
|
||||||
{
|
{
|
||||||
toolBar->SetToolShortHelp(IDM_DEBUG_GO, _T("&Pause"));
|
toolBar->SetToolShortHelp(IDM_DEBUG_GO, _T("&Pause"));
|
||||||
toolBar->SetToolNormalBitmap(IDM_DEBUG_GO, m_Bitmaps[Toolbar_Pause]);
|
toolBar->SetToolBitmap(IDM_DEBUG_GO, m_Bitmaps[Toolbar_Pause]);
|
||||||
toolBar->EnableTool(IDM_DEBUG_GO, true);
|
toolBar->EnableTool(IDM_DEBUG_GO, true);
|
||||||
toolBar->EnableTool(IDM_STEP, false);
|
toolBar->EnableTool(IDM_STEP, false);
|
||||||
toolBar->EnableTool(IDM_STEPOVER, false);
|
toolBar->EnableTool(IDM_STEPOVER, false);
|
||||||
@ -925,7 +932,7 @@ void CCodeWindow::UpdateButtonStates()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
toolBar->SetToolShortHelp(IDM_DEBUG_GO, _T("&Play"));
|
toolBar->SetToolShortHelp(IDM_DEBUG_GO, _T("&Play"));
|
||||||
toolBar->SetToolNormalBitmap(IDM_DEBUG_GO, m_Bitmaps[Toolbar_DebugGo]);
|
toolBar->SetToolBitmap(IDM_DEBUG_GO, m_Bitmaps[Toolbar_DebugGo]);
|
||||||
toolBar->EnableTool(IDM_DEBUG_GO, true);
|
toolBar->EnableTool(IDM_DEBUG_GO, true);
|
||||||
toolBar->EnableTool(IDM_STEP, true);
|
toolBar->EnableTool(IDM_STEP, true);
|
||||||
toolBar->EnableTool(IDM_STEPOVER, true);
|
toolBar->EnableTool(IDM_STEPOVER, true);
|
||||||
|
@ -54,8 +54,10 @@ class CCodeWindow
|
|||||||
// Function redirection
|
// Function redirection
|
||||||
wxFrame *GetParentFrame();
|
wxFrame *GetParentFrame();
|
||||||
wxMenuBar * GetMenuBar();
|
wxMenuBar * GetMenuBar();
|
||||||
wxToolBar * GetToolBar();
|
wxAuiToolBar * GetToolBar();
|
||||||
|
wxAuiToolBar * m_ToolBar2;
|
||||||
bool IsActive();
|
bool IsActive();
|
||||||
|
void UpdateToolbar(wxAuiToolBar *);
|
||||||
|
|
||||||
void Load_(IniFile &file);
|
void Load_(IniFile &file);
|
||||||
void Load(IniFile &file);
|
void Load(IniFile &file);
|
||||||
|
@ -292,6 +292,8 @@ EVT_HOST_COMMAND(wxID_ANY, CFrame::OnHostMessage)
|
|||||||
|
|
||||||
// Debugger Menu Entries
|
// Debugger Menu Entries
|
||||||
EVT_MENU(wxID_ANY, CFrame::PostEvent)
|
EVT_MENU(wxID_ANY, CFrame::PostEvent)
|
||||||
|
EVT_TEXT(wxID_ANY, CFrame::PostEvent)
|
||||||
|
|
||||||
//EVT_MENU_HIGHLIGHT_ALL(CFrame::PostMenuEvent)
|
//EVT_MENU_HIGHLIGHT_ALL(CFrame::PostMenuEvent)
|
||||||
//EVT_UPDATE_UI(wxID_ANY, CFrame::PostUpdateUIEvent)
|
//EVT_UPDATE_UI(wxID_ANY, CFrame::PostUpdateUIEvent)
|
||||||
|
|
||||||
@ -313,7 +315,7 @@ CFrame::CFrame(bool showLogWindow,
|
|||||||
: wxFrame(parent, id, title, pos, size, style)
|
: wxFrame(parent, id, title, pos, size, style)
|
||||||
, UseDebugger(_UseDebugger)
|
, UseDebugger(_UseDebugger)
|
||||||
, m_pStatusBar(NULL), bRenderToMain(true), HaveLeds(false)
|
, m_pStatusBar(NULL), bRenderToMain(true), HaveLeds(false)
|
||||||
, HaveSpeakers(false), m_Panel(NULL)
|
, HaveSpeakers(false), m_Panel(NULL), m_ToolBar(NULL), m_ToolBar2(NULL)
|
||||||
, m_bLogWindow(showLogWindow || SConfig::GetInstance().m_InterfaceLogWindow)
|
, m_bLogWindow(showLogWindow || SConfig::GetInstance().m_InterfaceLogWindow)
|
||||||
, m_fLastClickTime(0), m_iLastMotionTime(0), LastMouseX(0), LastMouseY(0)
|
, m_fLastClickTime(0), m_iLastMotionTime(0), LastMouseX(0), LastMouseY(0)
|
||||||
#if wxUSE_TIMER
|
#if wxUSE_TIMER
|
||||||
@ -402,6 +404,7 @@ CFrame::CFrame(bool showLogWindow,
|
|||||||
if (!SConfig::GetInstance().m_InterfaceToolbar)
|
if (!SConfig::GetInstance().m_InterfaceToolbar)
|
||||||
{ m_Mgr->GetPane(wxT("TBMain")).Hide(); if (UseDebugger) m_Mgr->GetPane(wxT("TBDebug")).Hide(); }
|
{ m_Mgr->GetPane(wxT("TBMain")).Hide(); if (UseDebugger) m_Mgr->GetPane(wxT("TBDebug")).Hide(); }
|
||||||
AuiMode1 = m_Mgr->SavePerspective();
|
AuiMode1 = m_Mgr->SavePerspective();
|
||||||
|
if (UseDebugger) g_pCodeWindow->UpdateToolbar(m_ToolBar2);
|
||||||
|
|
||||||
// Save perspectives
|
// Save perspectives
|
||||||
AuiMode2 = m_Mgr->SavePerspective();
|
AuiMode2 = m_Mgr->SavePerspective();
|
||||||
@ -547,16 +550,17 @@ void CFrame::OnHostMessage(wxCommandEvent& event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Post events
|
// Post events
|
||||||
|
// Warning: This may cause an endless loop if the event is propagated back to its parent
|
||||||
void CFrame::PostEvent(wxCommandEvent& event)
|
void CFrame::PostEvent(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
// Restrict the post events to the minimum necessary, it seems like these events are
|
event.Skip();
|
||||||
// somtimes posted to the parent wxFrame too so that it creates and endless loop
|
event.StopPropagation();
|
||||||
|
|
||||||
if (g_pCodeWindow
|
if (g_pCodeWindow
|
||||||
&& event.GetId() >= IDM_INTERPRETER && event.GetId() <= IDM_ADDRBOX
|
&& event.GetId() >= IDM_INTERPRETER && event.GetId() <= IDM_ADDRBOX
|
||||||
&& event.GetId() != IDM_JITUNLIMITED
|
&& event.GetId() != IDM_JITUNLIMITED
|
||||||
)
|
)
|
||||||
wxPostEvent(g_pCodeWindow, event);
|
wxPostEvent(g_pCodeWindow, event);
|
||||||
event.Skip();
|
|
||||||
}
|
}
|
||||||
void CFrame::PostMenuEvent(wxMenuEvent& event)
|
void CFrame::PostMenuEvent(wxMenuEvent& event)
|
||||||
{
|
{
|
||||||
|
@ -102,13 +102,13 @@ class CFrame : public wxFrame
|
|||||||
wxBoxSizer* sizerFrame;
|
wxBoxSizer* sizerFrame;
|
||||||
CGameListCtrl* m_GameListCtrl;
|
CGameListCtrl* m_GameListCtrl;
|
||||||
wxPanel* m_Panel;
|
wxPanel* m_Panel;
|
||||||
wxToolBar* m_ToolBar;
|
|
||||||
wxToolBarToolBase* m_ToolPlay;
|
wxToolBarToolBase* m_ToolPlay;
|
||||||
bool m_bLogWindow;
|
bool m_bLogWindow;
|
||||||
CLogWindow* m_LogWindow;
|
CLogWindow* m_LogWindow;
|
||||||
|
|
||||||
// AUI
|
// AUI
|
||||||
wxAuiManager *m_Mgr;
|
wxAuiManager *m_Mgr;
|
||||||
|
wxAuiToolBar *m_ToolBar, *m_ToolBar2;
|
||||||
// Perspectives
|
// Perspectives
|
||||||
wxString AuiFullscreen;
|
wxString AuiFullscreen;
|
||||||
wxString AuiMode1;
|
wxString AuiMode1;
|
||||||
|
@ -285,7 +285,7 @@ void CFrame::PopulateToolbar(wxAuiToolBar* toolBar)
|
|||||||
// Delete and recreate the toolbar
|
// Delete and recreate the toolbar
|
||||||
void CFrame::RecreateToolbar()
|
void CFrame::RecreateToolbar()
|
||||||
{
|
{
|
||||||
wxAuiToolBar* m_ToolBar = new wxAuiToolBar(this, ID_TOOLBAR, wxDefaultPosition, wxDefaultSize,
|
m_ToolBar = new wxAuiToolBar(this, ID_TOOLBAR, wxDefaultPosition, wxDefaultSize,
|
||||||
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
||||||
|
|
||||||
PopulateToolbar(m_ToolBar);
|
PopulateToolbar(m_ToolBar);
|
||||||
@ -299,7 +299,7 @@ void CFrame::RecreateToolbar()
|
|||||||
|
|
||||||
if (UseDebugger)
|
if (UseDebugger)
|
||||||
{
|
{
|
||||||
wxAuiToolBar* m_ToolBar2 = new wxAuiToolBar(this, ID_TOOLBAR2, wxDefaultPosition, wxDefaultSize,
|
m_ToolBar2 = new wxAuiToolBar(this, ID_TOOLBAR2, wxDefaultPosition, wxDefaultSize,
|
||||||
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
||||||
|
|
||||||
g_pCodeWindow->PopulateToolbar(m_ToolBar2);
|
g_pCodeWindow->PopulateToolbar(m_ToolBar2);
|
||||||
@ -919,14 +919,14 @@ void CFrame::UpdateGUI()
|
|||||||
bool paused = Core::GetState() == Core::CORE_PAUSE;
|
bool paused = Core::GetState() == Core::CORE_PAUSE;
|
||||||
|
|
||||||
// Make sure that we have a toolbar
|
// Make sure that we have a toolbar
|
||||||
if (GetToolBar() != NULL)
|
if (m_ToolBar != NULL)
|
||||||
{
|
{
|
||||||
// Enable/disable the Config and Stop buttons
|
// Enable/disable the Config and Stop buttons
|
||||||
//GetToolBar()->EnableTool(IDM_CONFIG_MAIN, !initialized);
|
//GetToolBar()->EnableTool(IDM_CONFIG_MAIN, !initialized);
|
||||||
GetToolBar()->EnableTool(wxID_OPEN, !initialized);
|
m_ToolBar->EnableTool(wxID_OPEN, !initialized);
|
||||||
GetToolBar()->EnableTool(wxID_REFRESH, !initialized); // Don't allow refresh when we don't show the list
|
m_ToolBar->EnableTool(wxID_REFRESH, !initialized); // Don't allow refresh when we don't show the list
|
||||||
GetToolBar()->EnableTool(IDM_STOP, running || paused);
|
m_ToolBar->EnableTool(IDM_STOP, running || paused);
|
||||||
GetToolBar()->EnableTool(IDM_SCREENSHOT, running || paused);
|
m_ToolBar->EnableTool(IDM_SCREENSHOT, running || paused);
|
||||||
}
|
}
|
||||||
|
|
||||||
// File
|
// File
|
||||||
@ -954,28 +954,28 @@ void CFrame::UpdateGUI()
|
|||||||
|
|
||||||
if (running)
|
if (running)
|
||||||
{
|
{
|
||||||
if (GetToolBar() != NULL)
|
if (m_ToolBar != NULL)
|
||||||
{
|
{
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetNormalBitmap(m_Bitmaps[Toolbar_Pause]);
|
m_ToolBar->SetToolBitmap(IDM_PLAY, m_Bitmaps[Toolbar_Pause]);
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetShortHelp(_("Pause"));
|
m_ToolBar->SetToolShortHelp(IDM_PLAY, _("Pause"));
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetLabel(_("Pause"));
|
m_ToolBar->SetToolLabel(IDM_PLAY, _("Pause"));
|
||||||
}
|
}
|
||||||
GetMenuBar()->FindItem(IDM_PLAY)->SetText(_("&Pause\tF10"));
|
GetMenuBar()->FindItem(IDM_PLAY)->SetText(_("&Pause\tF10"));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (GetToolBar() != NULL)
|
if (m_ToolBar != NULL)
|
||||||
{
|
{
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetNormalBitmap(m_Bitmaps[Toolbar_Play]);
|
m_ToolBar->SetToolBitmap(IDM_PLAY, m_Bitmaps[Toolbar_Play]);
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetShortHelp(_("Play"));
|
m_ToolBar->SetToolShortHelp(IDM_PLAY, _("Play"));
|
||||||
GetToolBar()->FindById(IDM_PLAY)->SetLabel(_("Play"));
|
m_ToolBar->SetToolLabel(IDM_PLAY, _("Play"));
|
||||||
}
|
}
|
||||||
GetMenuBar()->FindItem(IDM_PLAY)->SetText(_("&Play\tF10"));
|
GetMenuBar()->FindItem(IDM_PLAY)->SetText(_("&Play\tF10"));
|
||||||
|
|
||||||
}
|
}
|
||||||
// Commit changes to toolbar
|
// Commit changes to toolbar
|
||||||
if (GetToolBar() != NULL) GetToolBar()->Realize();
|
if (m_ToolBar != NULL) m_ToolBar->Realize();
|
||||||
|
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user