GUI: Save floating setting, float console window

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4216 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
John Peterson
2009-09-06 18:45:22 +00:00
parent aef1f943f3
commit 0f794fe9cc
6 changed files with 324 additions and 207 deletions
+7 -7
View File
@@ -123,13 +123,13 @@ class CCodeWindow
bool bAutomaticStart; bool bBootToPause;
bool bLogWindow; int iLogWindow;
bool bConsoleWindow; int iConsoleWindow;
bool bCodeWindow; int iCodeWindow;
bool bRegisterWindow; int iRegisterWindow;
bool bBreakpointWindow; int iBreakpointWindow;
bool bMemoryWindow; int iMemoryWindow;
bool bJitWindow; int iJitWindow;
bool bSoundWindow; int iSoundWindow;
bool bVideoWindow; int iVideoWindow;
bool bCodeWindow; int iCodeWindow; bool bFloatCodeWindow;
bool bRegisterWindow; int iRegisterWindow; bool bFloatRegisterWindow;
bool bBreakpointWindow; int iBreakpointWindow; bool bFloatBreakpointWindow;
bool bMemoryWindow; int iMemoryWindow; bool bFloatMemoryWindow;
bool bJitWindow; int iJitWindow; bool bFloatJitWindow;
bool bSoundWindow; int iSoundWindow; bool bFloatSoundWindow;
bool bVideoWindow; int iVideoWindow; bool bFloatVideoWindow;
private:
@@ -113,6 +113,16 @@ void CCodeWindow::Load()
ini.Get(_Section.c_str(), "JIT", &iJitWindow, 1);
ini.Get(_Section.c_str(), "Sound", &iSoundWindow, 0);
ini.Get(_Section.c_str(), "Video", &iVideoWindow, 0);
// Get floating setting
ini.Get("Float", "Log", &Parent->bFloatLogWindow, false);
ini.Get("Float", "Console", &Parent->bFloatConsoleWindow, false);
ini.Get("Float", "Code", &bFloatCodeWindow, false);
ini.Get("Float", "Registers", &bFloatRegisterWindow, false);
ini.Get("Float", "Breakpoints", &bFloatBreakpointWindow, false);
ini.Get("Float", "Memory", &bFloatMemoryWindow, false);
ini.Get("Float", "JIT", &bFloatJitWindow, false);
ini.Get("Float", "Sound", &bFloatSoundWindow, false);
ini.Get("Float", "Video", &bFloatVideoWindow, false);
// Boot to pause or not
ini.Get("ShowOnStart", "AutomaticStart", &bAutomaticStart, false);
@@ -149,6 +159,16 @@ void CCodeWindow::Save()
ini.Set(_Section.c_str(), "JIT", iJitWindow);
ini.Set(_Section.c_str(), "Sound", iSoundWindow);
ini.Set(_Section.c_str(), "Video", iVideoWindow);
// Save floating setting
ini.Set("Float", "Log", (bool)FindWindowById(IDM_LOGWINDOW_PARENT));
ini.Set("Float", "Console", (bool)FindWindowById(IDM_CONSOLEWINDOW_PARENT));
ini.Set("Float", "Code", (bool)FindWindowById(IDM_CODEWINDOW_PARENT));
ini.Set("Float", "Registers", (bool)FindWindowById(IDM_REGISTERWINDOW_PARENT));
ini.Set("Float", "Breakpoints", (bool)FindWindowById(IDM_BREAKPOINTWINDOW_PARENT));
ini.Set("Float", "Memory", (bool)FindWindowById(IDM_MEMORYWINDOW_PARENT));
ini.Set("Float", "JIT", (bool)FindWindowById(IDM_JITWINDOW_PARENT));
ini.Set("Float", "Sound", (bool)FindWindowById(IDM_SOUNDWINDOW_PARENT));
ini.Set("Float", "Video", (bool)FindWindowById(IDM_VIDEOWINDOW_PARENT));
// Save window settings
/*
@@ -441,7 +461,7 @@ void CCodeWindow::OnToggleCodeWindow(bool _Show, int i)
{
if (_Show)
{
Parent->DoAddPage(this, i, wxT("Code"));
Parent->DoAddPage(this, i, wxT("Code"), bFloatCodeWindow);
}
else // hide
Parent->DoRemovePage (this);
@@ -451,7 +471,7 @@ void CCodeWindow::OnToggleRegisterWindow(bool _Show, int i)
if (_Show)
{
if (!m_RegisterWindow) m_RegisterWindow = new CRegisterWindow(Parent, IDM_REGISTERWINDOW);
Parent->DoAddPage(m_RegisterWindow, i, wxT("Registers"));
Parent->DoAddPage(m_RegisterWindow, i, wxT("Registers"), bFloatRegisterWindow);
}
else // hide
Parent->DoRemovePage (m_RegisterWindow);
@@ -463,7 +483,7 @@ void CCodeWindow::OnToggleBreakPointWindow(bool _Show, int i)
{
if (!m_BreakpointWindow) m_BreakpointWindow = new CBreakPointWindow(this, Parent, IDM_BREAKPOINTWINDOW);
#ifdef _WIN32
Parent->DoAddPage(m_BreakpointWindow, i, wxT("Breakpoints"));
Parent->DoAddPage(m_BreakpointWindow, i, wxT("Breakpoints"), bFloatBreakpointWindow);
#else
m_BreakpointWindow->Show();
#endif
@@ -483,7 +503,7 @@ void CCodeWindow::OnToggleMemoryWindow(bool _Show, int i)
{
if (!m_MemoryWindow) m_MemoryWindow = new CMemoryWindow(Parent, IDM_MEMORYWINDOW);
#ifdef _WIN32
Parent->DoAddPage(m_MemoryWindow, i, wxT("Memory"));
Parent->DoAddPage(m_MemoryWindow, i, wxT("Memory"), bFloatMemoryWindow);
#else
m_MemoryWindow->Show();
#endif
@@ -503,7 +523,7 @@ void CCodeWindow::OnToggleJitWindow(bool _Show, int i)
{
if (!m_JitWindow) m_JitWindow = new CJitWindow(Parent, IDM_JITWINDOW);
#ifdef _WIN32
Parent->DoAddPage(m_JitWindow, i, wxT("JIT"));
Parent->DoAddPage(m_JitWindow, i, wxT("JIT"), bFloatJitWindow);
#else
m_JitWindow->Show();
#endif
+36 -2
View File
@@ -328,7 +328,8 @@ CFrame::CFrame(wxFrame* parent,
: wxFrame(parent, id, title, pos, size, style), g_pCodeWindow(NULL)
, m_LogWindow(NULL), m_MenuBar(NULL), m_ToolBar(NULL), m_ToolBarDebug(NULL), m_ToolBarAui(NULL)
, m_pStatusBar(NULL), m_GameListCtrl(NULL), m_Panel(NULL)
, UseDebugger(_UseDebugger), m_bEdit(false), m_bTabSplit(false), m_bNoDocking(false), bRenderToMain(true)
, UseDebugger(_UseDebugger), m_bEdit(false), m_bTabSplit(false), m_bNoDocking(false)
, bRenderToMain(true), bFloatLogWindow(false), bFloatConsoleWindow(false)
, HaveLeds(false), HaveSpeakers(false)
, m_fLastClickTime(0), m_iLastMotionTime(0), LastMouseX(0), LastMouseY(0)
#if wxUSE_TIMER
@@ -344,7 +345,7 @@ CFrame::CFrame(wxFrame* parent,
if (SConfig::GetInstance().m_InterfaceLogWindow) m_LogWindow = new CLogWindow(this, IDM_LOGWINDOW);
// Start debugging mazimized
if (UseDebugger) this->Maximize(true);
//if (UseDebugger) this->Maximize(true);
// Debugger class
if (UseDebugger)
{
@@ -782,9 +783,42 @@ void CFrame::Update()
}
#endif
// --------
// Functions
wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, wxWindow * Child)
{
//NOTICE_LOG(CONSOLE, "CreateParentFrame: %i %s %i", Id, Title.mb_str(), Child->GetId())
wxFrame * Frame = new wxFrame(this, Id, Title);
Child->Reparent(Frame);
Child->Show();
wxBoxSizer * m_MainSizer = new wxBoxSizer(wxHORIZONTAL);
m_MainSizer->Add(Child, 1, wxEXPAND);
Frame->Connect(wxID_ANY, wxEVT_CLOSE_WINDOW,
wxCloseEventHandler(CFrame::OnFloatingPageClosed),
(wxObject*)0, this);
if (Id == IDM_CONSOLEWINDOW_PARENT)
{
Frame->Connect(wxID_ANY, wxEVT_SIZE,
wxSizeEventHandler(CFrame::OnFloatingPageSize),
(wxObject*)0, this);
}
// Main sizer
Frame->SetSizer( m_MainSizer );
// Minimum frame size
Frame->SetMinSize(wxSize(200, -1));
Frame->Show();
return Frame;
}
wxPanel* CFrame::CreateEmptyPanel(wxWindowID Id)
{
wxPanel* Panel = new wxPanel(this, Id);
+11 -5
View File
@@ -104,6 +104,8 @@ class CFrame : public wxFrame
wxAuiToolBar *m_ToolBar, *m_ToolBarDebug, *m_ToolBarAui;
long NOTEBOOK_STYLE, TOOLBAR_STYLE;
int iLeftWidth[2], iMidWidth[2];
bool bFloatLogWindow;
bool bFloatConsoleWindow;
// Utility
wxWindow * GetWxWindow(wxString);
@@ -114,6 +116,7 @@ class CFrame : public wxFrame
wxWindow * GetNootebookPage(wxString);
wxWindow * GetNootebookPageFromId(wxWindowID Id);
wxAuiNotebook * GetNotebookFromId(u32);
wxWindowID WindowParentIdFromChildId(int Id);
wxString WindowNameFromId(int Id);
int GetNotebookCount();
int Limit(int,int,int);
@@ -134,13 +137,10 @@ class CFrame : public wxFrame
void ShowAllNotebooks(bool Window = false);
void HideAllNotebooks(bool Window = false);
void CloseAllNotebooks();
void DoAddPage(wxWindow *, int, wxString);
void DoAddPage(wxWindow *, int, wxString, bool);
void DoRemovePage(wxWindow *, bool Hide = true);
void DoRemovePageId(wxWindowID Id, bool Hide = true, bool Destroy = false);
void DoRemovePageString(wxString, bool Hide = true, bool Destroy = false);
void DoUnfloatPage(int Id);
void OnFloatingPageClosed(wxCloseEvent& event);
void DoFloatPage(wxWindow * Win);
wxFrame * CreateParentFrame(wxWindowID Id = wxID_ANY, const wxString& title = wxT(""), wxWindow * = NULL);
void HidePane();
void SetSimplePaneSize();
void SetPaneSize();
@@ -148,6 +148,12 @@ class CFrame : public wxFrame
void TogglePaneStyle(bool,int);
void ToggleNotebookStyle(long);
void ResizeConsole();
// Float window
void DoUnfloatPage(int Id);
void OnFloatingPageClosed(wxCloseEvent& event);
void OnFloatingPageSize(wxSizeEvent& event);
void DoFloatNotebookPage(wxWindowID Id);
wxFrame * CreateParentFrame(wxWindowID Id = wxID_ANY, const wxString& title = wxT(""), wxWindow * = NULL);
// User perspectives
struct SPerspectives
{
File diff suppressed because it is too large Load Diff
+10
View File
@@ -198,6 +198,16 @@ enum
IDM_PERSPECTIVES_100 = IDM_PERSPECTIVES_0 + 100,
// --------------------------------------------------------------
IDM_LOGWINDOW_PARENT, // Window IDs
IDM_CONSOLEWINDOW_PARENT,
IDM_CODEWINDOW_PARENT,
IDM_REGISTERWINDOW_PARENT,
IDM_BREAKPOINTWINDOW_PARENT,
IDM_MEMORYWINDOW_PARENT,
IDM_JITWINDOW_PARENT,
IDM_SOUNDWINDOW_PARENT,
IDM_VIDEOWINDOW_PARENT,
IDM_TOGGLE_DUALCORE, // Other
IDM_TOGGLE_SKIPIDLE,
IDM_TOGGLE_TOOLBAR,