From bc1e2e73f5213561e05cc2a1bf177e5a40fee750 Mon Sep 17 00:00:00 2001 From: "glennricster@gmail.com" Date: Wed, 28 Jul 2010 15:22:27 +0000 Subject: [PATCH] Fix an issue that caused the DSP-LLE window to be openned twice in windows. (Thanks shuffle2). Fix an issue that prevented the code window settings from taking effect on application start. (Thanks shuffle2, skid_au, and sanchez). Fix a potential segmentation fault with the DSP-LLE debugger window. git-svn-id: http://dolphin-emu.googlecode.com/svn/trunk@5988 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp | 1 - Source/Core/DolphinWX/Src/Frame.cpp | 4 +- Source/Core/DolphinWX/Src/Frame.h | 4 +- Source/Core/DolphinWX/Src/FrameAui.cpp | 248 +++++++++------------ Source/Core/DolphinWX/Src/LogWindow.cpp | 6 - .../Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.cpp | 14 +- .../Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.h | 2 + Source/Plugins/Plugin_DSP_LLE/Src/main.cpp | 1 - 8 files changed, 117 insertions(+), 163 deletions(-) diff --git a/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp b/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp index c636541c9..da313f7e1 100644 --- a/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp +++ b/Source/Core/DebuggerWX/Src/CodeWindowFunctions.cpp @@ -560,7 +560,6 @@ void CCodeWindow::ToggleDLLWindow(int Id, bool bShow) if (Win) { Parent->DoRemovePage(Win, false); - Win->Close(); Win->Destroy(); } } diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp index 8fe8c9ef9..679b50c14 100644 --- a/Source/Core/DolphinWX/Src/Frame.cpp +++ b/Source/Core/DolphinWX/Src/Frame.cpp @@ -365,8 +365,9 @@ CFrame::CFrame(wxFrame* parent, if (UseDebugger) { g_pCodeWindow = new CCodeWindow(SConfig::GetInstance().m_LocalCoreStartupParameter, this, IDM_CODEWINDOW); - g_pCodeWindow->Hide(); LoadIniPerspectives(); + g_pCodeWindow->Load(); + g_pCodeWindow->Hide(); } // Create timer @@ -446,7 +447,6 @@ CFrame::CFrame(wxFrame* parent, if (g_pCodeWindow) { // Load perspective - LoadIniPerspectives(); DoLoadPerspective(); } else diff --git a/Source/Core/DolphinWX/Src/Frame.h b/Source/Core/DolphinWX/Src/Frame.h index 7b027c8e6..d5a71b287 100644 --- a/Source/Core/DolphinWX/Src/Frame.h +++ b/Source/Core/DolphinWX/Src/Frame.h @@ -145,7 +145,7 @@ class CFrame : public CRenderFrame // Utility wxWindow * GetNotebookPageFromId(wxWindowID Id); - wxAuiNotebook * GetNotebookFromId(u32); + wxAuiNotebook * GetNotebookFromId(size_t NBId); int GetNotebookCount(); wxString GetMenuLabel(int Id); @@ -159,8 +159,6 @@ class CFrame : public CRenderFrame void OnTab(wxAuiNotebookEvent& event); int GetNotebookAffiliation(wxWindowID Id); void ClosePages(); - void ShowAllNotebooks(bool Window = false); - void HideAllNotebooks(bool Window = false); void CloseAllNotebooks(); void DoAddPage(wxWindow *Win, int i, bool Float); void DoRemovePage(wxWindow *, bool bHide = true); diff --git a/Source/Core/DolphinWX/Src/FrameAui.cpp b/Source/Core/DolphinWX/Src/FrameAui.cpp index d4db49834..f3356e862 100644 --- a/Source/Core/DolphinWX/Src/FrameAui.cpp +++ b/Source/Core/DolphinWX/Src/FrameAui.cpp @@ -169,19 +169,19 @@ void CFrame::ToggleConsole(bool bShow) void CFrame::OnToggleWindow(wxCommandEvent& event) { - bool bShow = GetMenuBar()->IsChecked(event.GetId()); + bool bShow = event.IsChecked(); switch(event.GetId()) { case IDM_LOGWINDOW: if (!g_pCodeWindow) - SConfig::GetInstance().m_InterfaceLogWindow = event.IsChecked(); + SConfig::GetInstance().m_InterfaceLogWindow = bShow; ToggleLogWindow(bShow); break; case IDM_CONSOLEWINDOW: if (!g_pCodeWindow) - SConfig::GetInstance().m_InterfaceConsole = event.IsChecked(); - ToggleConsole(event.IsChecked()); + SConfig::GetInstance().m_InterfaceConsole = bShow; + ToggleConsole(bShow); break; case IDM_REGISTERWINDOW: g_pCodeWindow->ToggleRegisterWindow(bShow); @@ -202,7 +202,6 @@ void CFrame::OnToggleWindow(wxCommandEvent& event) g_pCodeWindow->ToggleDLLWindow(IDM_VIDEOWINDOW, bShow); break; } - event.Skip(); } // Notebooks @@ -308,7 +307,8 @@ void CFrame::DoFloatNotebookPage(wxWindowID Id) { nb->RemovePage(nb->GetPageIndex(Win)); // Create the parent frame and reparent the window - CreateParentFrame(Win->GetId() + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW, Win->GetName(), Win); + CreateParentFrame(Win->GetId() + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW, + Win->GetName(), Win); if (nb->GetPageCount() == 0) AddRemoveBlankPage(); } @@ -320,7 +320,7 @@ void CFrame::DoUnfloatPage(int Id) wxFrame * Win = (wxFrame*)FindWindowById(Id); if (!Win) return; - wxWindow * Child = Win->GetWindowChildren().Item(0)->GetData(); + wxWindow * Child = Win->GetChildren().Item(0)->GetData(); Child->Reparent(this); DoAddPage(Child, g_pCodeWindow->iNbAffiliation[Child->GetId() - IDM_LOGWINDOW], false); Win->Destroy(); @@ -369,10 +369,10 @@ void CFrame::TogglePane() { // Get the first notebook wxAuiNotebook * NB = NULL; - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) - NB = (wxAuiNotebook*)m_Mgr->GetAllPanes().Item(i).window; + if (m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; } if (NB) { @@ -401,7 +401,8 @@ void CFrame::DoRemovePage(wxWindow *Win, bool bHide) { if (!Win) return; - wxWindow *Parent = FindWindowById(Win->GetId() + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW); + wxWindow *Parent = FindWindowById(Win->GetId() + + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW); if (Parent) { @@ -439,13 +440,13 @@ void CFrame::DoRemovePage(wxWindow *Win, bool bHide) void CFrame::DoAddPage(wxWindow *Win, int i, bool Float) { if (!Win) return; - if (GetNotebookCount() == 0) return; if (i < 0 || i > GetNotebookCount()-1) i = 0; if (Win && GetNotebookFromId(i)->GetPageIndex(Win) != wxNOT_FOUND) return; if (!Float) GetNotebookFromId(i)->AddPage(Win, Win->GetName(), true); else - CreateParentFrame(Win->GetId() + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW, Win->GetName(), Win); + CreateParentFrame(Win->GetId() + IDM_LOGWINDOW_PARENT - IDM_LOGWINDOW, + Win->GetName(), Win); } // Toolbar @@ -462,13 +463,16 @@ void CFrame::OnDropDownSettingsToolbar(wxAuiToolBarEvent& event) // Create the popup menu wxMenu* menuPopup = new wxMenu; - wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_ADD_PANE, wxT("Add new pane")); + wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_ADD_PANE, + wxT("Add new pane")); menuPopup->Append(Item); menuPopup->Append(new wxMenuItem(menuPopup)); - Item = new wxMenuItem(menuPopup, IDM_TAB_SPLIT, wxT("Tab split"), wxT(""), wxITEM_CHECK); + Item = new wxMenuItem(menuPopup, IDM_TAB_SPLIT, wxT("Tab split"), + wxT(""), wxITEM_CHECK); menuPopup->Append(Item); Item->Check(m_bTabSplit); - Item = new wxMenuItem(menuPopup, IDM_NO_DOCKING, wxT("No docking"), wxT(""), wxITEM_CHECK); + Item = new wxMenuItem(menuPopup, IDM_NO_DOCKING, wxT("No docking"), + wxT(""), wxITEM_CHECK); menuPopup->Append(Item); Item->Check(m_bNoDocking); @@ -495,16 +499,18 @@ void CFrame::OnDropDownToolbarItem(wxAuiToolBarEvent& event) // create the popup menu wxMenu* menuPopup = new wxMenu; - wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_ADD_PERSPECTIVE, wxT("Create new perspective")); + wxMenuItem* Item = new wxMenuItem(menuPopup, IDM_ADD_PERSPECTIVE, + wxT("Create new perspective")); menuPopup->Append(Item); if (Perspectives.size() > 0) { menuPopup->Append(new wxMenuItem(menuPopup)); - for (u32 i = 0; i < Perspectives.size(); i++) + for (size_t i = 0; i < Perspectives.size(); i++) { wxMenuItem* mItem = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_0 + i, - wxString::FromAscii(Perspectives[i].Name.c_str()), wxT(""), wxITEM_CHECK); + wxString::FromAscii(Perspectives[i].Name.c_str()), + wxT(""), wxITEM_CHECK); menuPopup->Append(mItem); if (i == ActivePerspective) mItem->Check(true); } @@ -557,7 +563,8 @@ void CFrame::OnDropDownToolbarSelect(wxCommandEvent& event) { case IDM_ADD_PERSPECTIVE: { - wxTextEntryDialog dlg(this, wxT("Enter a name for the new perspective:"), + wxTextEntryDialog dlg(this, + wxT("Enter a name for the new perspective:"), wxT("Create new perspective")); wxString DefaultValue = wxString::Format(wxT("Perspective %d"), Perspectives.size() + 1); @@ -612,7 +619,7 @@ void CFrame::ResetToolbarStyle() wxAuiPaneInfoArray& AllPanes = m_Mgr->GetAllPanes(); for (int i = 0, Count = (int)AllPanes.GetCount(); i < Count; ++i) { - wxAuiPaneInfo& Pane = AllPanes.Item(i); + wxAuiPaneInfo& Pane = AllPanes[i]; if (Pane.window->IsKindOf(CLASSINFO(wxAuiToolBar))) { Pane.Show(); @@ -627,9 +634,9 @@ void CFrame::ResetToolbarStyle() void CFrame::TogglePaneStyle(bool On, int EventId) { wxAuiPaneInfoArray& AllPanes = m_Mgr->GetAllPanes(); - for (u32 i = 0; i < AllPanes.GetCount(); ++i) + for (size_t i = 0; i < AllPanes.GetCount(); ++i) { - wxAuiPaneInfo& Pane = AllPanes.Item(i); + wxAuiPaneInfo& Pane = AllPanes[i]; if (Pane.window->IsKindOf(CLASSINFO(wxAuiNotebook))) { // Default @@ -659,7 +666,7 @@ void CFrame::ToggleNotebookStyle(bool On, long Style) wxAuiPaneInfoArray& AllPanes = m_Mgr->GetAllPanes(); for (int i = 0, Count = (int)AllPanes.GetCount(); i < Count; ++i) { - wxAuiPaneInfo& Pane = AllPanes.Item(i); + wxAuiPaneInfo& Pane = AllPanes[i]; if (Pane.window->IsKindOf(CLASSINFO(wxAuiNotebook))) { wxAuiNotebook* NB = (wxAuiNotebook*)Pane.window; @@ -676,7 +683,7 @@ void CFrame::ToggleNotebookStyle(bool On, long Style) void CFrame::OnSelectPerspective(wxCommandEvent& event) { - u32 _Selection = event.GetId() - IDM_PERSPECTIVES_0; + size_t _Selection = event.GetId() - IDM_PERSPECTIVES_0; if (Perspectives.size() <= _Selection) _Selection = 0; ActivePerspective = _Selection; DoLoadPerspective(); @@ -689,46 +696,24 @@ void CFrame::ResizeConsole() wxWindow * Win = FindWindowById(IDM_CONSOLEWINDOW); if (!Win) return; - // Get OS version - int wxBorder, Border, LowerBorder, MenuBar, ScrollBar, WidthReduction; - OSVERSIONINFO osvi; - ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); - osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osvi); - if (osvi.dwMajorVersion == 6) // Vista (same as 7?) - { - wxBorder = 2; - Border = 4; - LowerBorder = 6; - MenuBar = 30; // Including upper border - ScrollBar = 19; - } - else // XP - { - wxBorder = 2; - Border = 4; - LowerBorder = 6; - MenuBar = 30; - ScrollBar = 19; - } - WidthReduction = 30 - Border; + const int wxBorder = 2, Border = 4, LowerBorder = 6, + MenuBar = 30, ScrollBar = 19; + const int WidthReduction = 30 - Border; // Get the client size int X = Win->GetClientSize().GetX(); int Y = Win->GetClientSize().GetY(); int InternalWidth = X - wxBorder*2 - ScrollBar; int InternalHeight = Y - wxBorder*2; - int WindowWidth = InternalWidth + Border*2 + /*max out the width in the word wrap mode*/ 100; + int WindowWidth = InternalWidth + Border*2 + + /*max out the width in the word wrap mode*/ 100; int WindowHeight = InternalHeight + MenuBar; // Resize buffer ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener(); Console->PixelSpace(0,0, InternalWidth,InternalHeight, false); // Move the window to hide the border - MoveWindow(GetConsoleWindow(), -Border-wxBorder,-MenuBar-wxBorder, WindowWidth + 100,WindowHeight, true); - // Move it to the bottom of the view order so that it doesn't hide the notebook tabs - // ... - // Log - //NOTICE_LOG(CONSOLE, "Size: %ix%i", X, Y); + MoveWindow(GetConsoleWindow(), -Border-wxBorder, -MenuBar-wxBorder, + WindowWidth + 100,WindowHeight, true); #endif } @@ -744,15 +729,15 @@ void CFrame::SetPaneSize() if (Perspectives.size() <= ActivePerspective) return; int iClientX = GetSize().GetX(), iClientY = GetSize().GetY(); - for (u32 i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiToolBar))) + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiToolBar))) { - if (!m_Mgr->GetAllPanes().Item(i).IsOk()) return; + if (!m_Mgr->GetAllPanes()[i].IsOk()) return; if (Perspectives[ActivePerspective].Width.size() <= j || Perspectives[ActivePerspective].Height.size() <= j) continue; - u32 W = Perspectives[ActivePerspective].Width[j], + size_t W = Perspectives[ActivePerspective].Width[j], H = Perspectives[ActivePerspective].Height[j]; // Check limits W = Limit(W, 5, 95); @@ -760,40 +745,37 @@ void CFrame::SetPaneSize() // Convert percentages to pixel lengths W = (W * iClientX) / 100; H = (H * iClientY) / 100; - m_Mgr->GetAllPanes().Item(i).BestSize(W,H).MinSize(W,H); + m_Mgr->GetAllPanes()[i].BestSize(W,H).MinSize(W,H); j++; } } m_Mgr->Update(); - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiToolBar))) + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiToolBar))) { - m_Mgr->GetAllPanes().Item(i).MinSize(-1,-1); + m_Mgr->GetAllPanes()[i].MinSize(-1,-1); } } } void CFrame::ReloadPanes() { - // Hide to avoid flickering - HideAllNotebooks(true); // Close all pages ClosePages(); CloseAllNotebooks(); // Create new panes with notebooks - for (u32 i = 0; i < Perspectives[ActivePerspective].Width.size() - 1; i++) + for (size_t i = 0; i < Perspectives[ActivePerspective].Width.size() - 1; i++) { wxString PaneName = wxString::Format(wxT("Pane %i"), i + 1); m_Mgr->AddPane(CreateEmptyNotebook(), wxAuiPaneInfo().Hide() .CaptionVisible(m_bEdit).Dockable(!m_bNoDocking).Position(i) .Name(PaneName).Caption(PaneName)); } - HideAllNotebooks(true); // Perspectives m_Mgr->LoadPerspective(Perspectives[ActivePerspective].Perspective, false); @@ -817,8 +799,8 @@ void CFrame::DoLoadPerspective() ReloadPanes(); // Restore the exact window sizes, which LoadPerspective doesn't always do SetPaneSize(); - // Show - ShowAllNotebooks(true); + + m_Mgr->Update(); } // Update the local perspectives array @@ -834,7 +816,7 @@ void CFrame::LoadIniPerspectives() ini.Get("Perspectives", "Active", &ActivePerspective, 0); SplitString(_Perspectives, ",", VPerspectives); - for (u32 i = 0; i < VPerspectives.size(); i++) + for (size_t i = 0; i < VPerspectives.size(); i++) { SPerspectives Tmp; std::string _Section, _Perspective, _Width, _Height; @@ -856,12 +838,12 @@ void CFrame::LoadIniPerspectives() SplitString(_Width, ",", _SWidth); SplitString(_Height, ",", _SHeight); - for (u32 j = 0; j < _SWidth.size(); j++) + for (size_t j = 0; j < _SWidth.size(); j++) { int _Tmp; if (TryParseInt(_SWidth[j].c_str(), &_Tmp)) Tmp.Width.push_back(_Tmp); } - for (u32 j = 0; j < _SHeight.size(); j++) + for (size_t j = 0; j < _SHeight.size(); j++) { int _Tmp; if (TryParseInt(_SHeight[j].c_str(), &_Tmp)) Tmp.Height.push_back(_Tmp); @@ -881,15 +863,15 @@ void CFrame::UpdateCurrentPerspective() current->Height.clear(); for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window-> + if (!m_Mgr->GetAllPanes()[i].window-> IsKindOf(CLASSINFO(wxAuiToolBar))) { // Save width and height as a percentage of the client width and height current->Width.push_back( - (m_Mgr->GetAllPanes().Item(i).window->GetClientSize().GetX() * 100) / + (m_Mgr->GetAllPanes()[i].window->GetClientSize().GetX() * 100) / iClientX); current->Height.push_back( - (m_Mgr->GetAllPanes().Item(i).window->GetClientSize().GetY() * 100) / + (m_Mgr->GetAllPanes()[i].window->GetClientSize().GetY() * 100) / iClientY); } } @@ -910,7 +892,7 @@ void CFrame::SaveIniPerspectives() // Save perspective names std::string STmp = ""; - for (u32 i = 0; i < Perspectives.size(); i++) + for (size_t i = 0; i < Perspectives.size(); i++) { STmp += Perspectives[i].Name + ","; } @@ -961,11 +943,12 @@ void CFrame::AddPane() wxWindow * CFrame::GetNotebookPageFromId(wxWindowID Id) { - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) continue; - wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes().Item(i).window; - for(u32 j = 0; j < NB->GetPageCount(); j++) + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + continue; + wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; + for(size_t j = 0; j < NB->GetPageCount(); j++) { if (NB->GetPage(j)->GetId() == Id) return NB->GetPage(j); } @@ -973,12 +956,13 @@ wxWindow * CFrame::GetNotebookPageFromId(wxWindowID Id) return NULL; } -wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, wxWindow * Child) +wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, + wxWindow * Child) { - wxFrame * Frame = new wxFrame(this, Id, Title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE); + wxFrame * Frame = new wxFrame(this, Id, Title, + wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE); Child->Reparent(Frame); - Child->Show(); wxBoxSizer * m_MainSizer = new wxBoxSizer(wxHORIZONTAL); @@ -996,44 +980,51 @@ wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, wxWind } // Main sizer - Frame->SetSizer( m_MainSizer ); + Frame->SetSizer(m_MainSizer); // Minimum frame size - Frame->SetMinSize(wxSize(200, -1)); + Frame->SetMinSize(wxSize(200, 200)); Frame->Show(); return Frame; } wxAuiNotebook* CFrame::CreateEmptyNotebook() { - long NOTEBOOK_STYLE = wxAUI_NB_TOP | wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE - | wxAUI_NB_SCROLL_BUTTONS | wxAUI_NB_WINDOWLIST_BUTTON | wxNO_BORDER; - wxAuiNotebook* NB = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, NOTEBOOK_STYLE); + const long NOTEBOOK_STYLE = wxAUI_NB_TOP | wxAUI_NB_TAB_SPLIT | + wxAUI_NB_TAB_EXTERNAL_MOVE | wxAUI_NB_SCROLL_BUTTONS | + wxAUI_NB_WINDOWLIST_BUTTON | wxNO_BORDER; + wxAuiNotebook* NB = new wxAuiNotebook(this, wxID_ANY, + wxDefaultPosition, wxDefaultSize, NOTEBOOK_STYLE); return NB; } void CFrame::AddRemoveBlankPage() { - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) continue; - wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes().Item(i).window; - for(u32 j = 0; j < NB->GetPageCount(); j++) + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + continue; + wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; + for(size_t j = 0; j < NB->GetPageCount(); j++) { - if (NB->GetPageText(j).IsSameAs(wxT("<>")) && NB->GetPageCount() > 1) NB->DeletePage(j); + if (NB->GetPageText(j).IsSameAs(wxT("<>")) && NB->GetPageCount() > 1) + NB->DeletePage(j); } - if (NB->GetPageCount() == 0) NB->AddPage(new wxPanel(this, wxID_ANY), wxT("<>"), true); + if (NB->GetPageCount() == 0) + NB->AddPage(new wxPanel(this, wxID_ANY), wxT("<>"), true); } } int CFrame::GetNotebookAffiliation(wxWindowID Id) { - for (u32 i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) continue; - wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes().Item(i).window; - for(u32 k = 0; k < NB->GetPageCount(); k++) + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + continue; + wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; + for(size_t k = 0; k < NB->GetPageCount(); k++) { - if (NB->GetPage(k)->GetId() == Id) return j; + if (NB->GetPage(k)->GetId() == Id) + return j; } j++; } @@ -1043,70 +1034,37 @@ int CFrame::GetNotebookAffiliation(wxWindowID Id) // Close all panes with notebooks void CFrame::CloseAllNotebooks() { - int i = 0; - while(GetNotebookCount() > 0) + wxAuiPaneInfoArray AllPanes = m_Mgr->GetAllPanes(); + for (size_t i = 0; i < AllPanes.GetCount(); i++) { - if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) + if (AllPanes[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) { - m_Mgr->GetAllPanes().Item(i).DestroyOnClose(true); - m_Mgr->ClosePane(m_Mgr->GetAllPanes().Item(i)); - //m_Mgr->GetAllPanes().Item(i).window->Hide(); - //m_Mgr->DetachPane(m_Mgr->GetAllPanes().Item(i).window); - - i = 0; + AllPanes[i].DestroyOnClose(true); + m_Mgr->ClosePane(AllPanes[i]); } - else - i++; } } int CFrame::GetNotebookCount() { int Ret = 0; - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) Ret++; + if (m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + Ret++; } return Ret; } -wxAuiNotebook * CFrame::GetNotebookFromId(u32 NBId) +wxAuiNotebook * CFrame::GetNotebookFromId(size_t NBId) { - for (u32 i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) + for (size_t i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) { - if (!m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) continue; - if (j == NBId) return (wxAuiNotebook*)m_Mgr->GetAllPanes().Item(i).window; + if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) + continue; + if (j == NBId) + return (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; j++; } return NULL; } - -void CFrame::ShowAllNotebooks(bool bShow) -{ - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) - { - if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) - { - if (bShow) - m_Mgr->GetAllPanes().Item(i).Show(); - else - m_Mgr->GetAllPanes().Item(i).window->Hide(); - } - } - m_Mgr->Update(); -} - -void CFrame::HideAllNotebooks(bool Window) -{ - for (u32 i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) - { - if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook))) - { - if (Window) - m_Mgr->GetAllPanes().Item(i).Hide(); - else - m_Mgr->GetAllPanes().Item(i).window->Hide(); - } - } - m_Mgr->Update(); -} diff --git a/Source/Core/DolphinWX/Src/LogWindow.cpp b/Source/Core/DolphinWX/Src/LogWindow.cpp index e34e7a5db..8e76ca8f0 100644 --- a/Source/Core/DolphinWX/Src/LogWindow.cpp +++ b/Source/Core/DolphinWX/Src/LogWindow.cpp @@ -413,12 +413,6 @@ void CLogWindow::OnOptionsCheck(wxCommandEvent& event) m_LogManager->removeListener((LogTypes::LOG_TYPE)i, m_console); } } - /* - if (m_writeConsole && !m_console->IsOpen()) - wxGetApp().GetCFrame()->ToggleConsole(true); - else if (!m_writeConsole && m_console->IsOpen()) - wxGetApp().GetCFrame()->ToggleConsole(false); - */ break; } SaveSettings(); diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.cpp index 3366dbdee..0e8e66c6b 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.cpp +++ b/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.cpp @@ -32,6 +32,8 @@ void Host_NotifyMapLoaded() {} void Host_UpdateBreakPointView() {} +DSPDebuggerLLE* m_DebuggerFrame = NULL; + BEGIN_EVENT_TABLE(DSPDebuggerLLE, wxPanel) EVT_CLOSE(DSPDebuggerLLE::OnClose) EVT_MENU_RANGE(ID_RUNTOOL, ID_STEPTOOL, DSPDebuggerLLE::OnChangeState) @@ -109,18 +111,17 @@ DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent) UpdateState(); m_mgr.Update(); - - Show(); } DSPDebuggerLLE::~DSPDebuggerLLE() { m_mgr.UnInit(); + m_DebuggerFrame = NULL; } void DSPDebuggerLLE::OnClose(wxCloseEvent& event) { - Hide(); + event.Skip(); } void DSPDebuggerLLE::OnChangeState(wxCommandEvent& event) @@ -176,12 +177,15 @@ void DSPDebuggerLLE::FocusOnPC() void DSPDebuggerLLE::UpdateState() { - if (DSPCore_GetState() == DSPCORE_RUNNING) { + if (DSPCore_GetState() == DSPCORE_RUNNING) + { m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Pause")); m_Toolbar->SetToolBitmap(ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, wxSize(10,10))); m_Toolbar->EnableTool(ID_STEPTOOL, false); - } else { + } + else + { m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Run")); m_Toolbar->SetToolBitmap(ID_RUNTOOL, wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_OTHER, wxSize(10,10))); diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.h b/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.h index ac50d4405..d71f89035 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.h +++ b/Source/Plugins/Plugin_DSP_LLE/Src/Debugger/DSPDebugWindow.h @@ -102,4 +102,6 @@ private: void UnselectAll(); }; +extern DSPDebuggerLLE* m_DebuggerFrame; + #endif //_DSP_DEBUGGER_LLE_H diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp index 0a6c30024..3ae331282 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp +++ b/Source/Plugins/Plugin_DSP_LLE/Src/main.cpp @@ -41,7 +41,6 @@ #include "DSPConfigDlgLLE.h" DSPConfigDialogLLE* m_ConfigFrame = NULL; #include "Debugger/DSPDebugWindow.h" -DSPDebuggerLLE* m_DebuggerFrame = NULL; #endif PLUGIN_GLOBALS* globals = NULL; -- 2.11.4.GIT