GUI: Bugfixes, some bugs left
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4134 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d50b4c2ffc
commit
0f1a83c116
|
@ -271,7 +271,7 @@ void ConsoleListener::Log(LogTypes::LOG_LEVELS Level, const char *Text)
|
||||||
Color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
|
Color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (strlen(Text) > 10)
|
if (Level != CUSTOM_LEVEL && strlen(Text) > 10)
|
||||||
{
|
{
|
||||||
// First 10 chars white
|
// First 10 chars white
|
||||||
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
|
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY);
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#define WARNING_LEVEL 3 // Something is suspicious.
|
#define WARNING_LEVEL 3 // Something is suspicious.
|
||||||
#define INFO_LEVEL 4 // General information.
|
#define INFO_LEVEL 4 // General information.
|
||||||
#define DEBUG_LEVEL 5 // Detailed debugging - might make things slow.
|
#define DEBUG_LEVEL 5 // Detailed debugging - might make things slow.
|
||||||
|
#define CUSTOM_LEVEL 6 // Custom level
|
||||||
|
|
||||||
namespace LogTypes
|
namespace LogTypes
|
||||||
{
|
{
|
||||||
|
@ -81,6 +82,7 @@ enum LOG_LEVELS {
|
||||||
LWARNING = WARNING_LEVEL,
|
LWARNING = WARNING_LEVEL,
|
||||||
LINFO = INFO_LEVEL,
|
LINFO = INFO_LEVEL,
|
||||||
LDEBUG = DEBUG_LEVEL,
|
LDEBUG = DEBUG_LEVEL,
|
||||||
|
LCUSTOM = CUSTOM_LEVEL
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -91,11 +93,11 @@ enum LOG_LEVELS {
|
||||||
- Debug_run() - run only in debug time
|
- Debug_run() - run only in debug time
|
||||||
*/
|
*/
|
||||||
#if defined LOGGING || defined _DEBUG || defined DEBUGFAST
|
#if defined LOGGING || defined _DEBUG || defined DEBUGFAST
|
||||||
#define MAX_LOGLEVEL DEBUG_LEVEL
|
#define MAX_LOGLEVEL DEBUG_LEVEL
|
||||||
#else
|
#else
|
||||||
#ifndef MAX_LOGLEVEL
|
#ifndef MAX_LOGLEVEL
|
||||||
#define MAX_LOGLEVEL WARNING_LEVEL
|
#define MAX_LOGLEVEL WARNING_LEVEL
|
||||||
#endif // loglevel
|
#endif // loglevel
|
||||||
#endif // logging
|
#endif // logging
|
||||||
|
|
||||||
#define ERROR_LOG(...) {}
|
#define ERROR_LOG(...) {}
|
||||||
|
|
|
@ -21,9 +21,7 @@
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "Thread.h"
|
#include "Thread.h"
|
||||||
#include "StringUtil.h"
|
#include "StringUtil.h"
|
||||||
#ifdef _WIN32
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -174,7 +174,7 @@ CCodeWindow::CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter
|
||||||
}
|
}
|
||||||
CCodeWindow::~CCodeWindow()
|
CCodeWindow::~CCodeWindow()
|
||||||
{
|
{
|
||||||
|
Parent->g_pCodeWindow = NULL;
|
||||||
}
|
}
|
||||||
// Redirect old wxFrame calls
|
// Redirect old wxFrame calls
|
||||||
wxMenuBar *CCodeWindow::GetMenuBar()
|
wxMenuBar *CCodeWindow::GetMenuBar()
|
||||||
|
|
|
@ -421,7 +421,7 @@ void CCodeWindow::OnToggleMemoryWindow(bool Show, int i)
|
||||||
//Toggle Sound Debugging Window
|
//Toggle Sound Debugging Window
|
||||||
void CCodeWindow::OnToggleSoundWindow(bool Show, int i)
|
void CCodeWindow::OnToggleSoundWindow(bool Show, int i)
|
||||||
{
|
{
|
||||||
//ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
|
|
||||||
if (Show)
|
if (Show)
|
||||||
{
|
{
|
||||||
|
@ -446,8 +446,19 @@ void CCodeWindow::OnToggleSoundWindow(bool Show, int i)
|
||||||
Win = Parent->GetWxWindow(wxT("Sound"));
|
Win = Parent->GetWxWindow(wxT("Sound"));
|
||||||
if (Win)
|
if (Win)
|
||||||
{
|
{
|
||||||
//Console->Log(LogTypes::LNOTICE, StringFromFormat("AddPage\n").c_str());
|
//Parent->ListChildren();
|
||||||
|
Win->SetName(wxT("Sound"));
|
||||||
|
Win->Reparent(Parent);
|
||||||
|
//Console->Log(LogTypes::LNOTICE, StringFromFormat("Reparent\n").c_str());
|
||||||
|
//Parent->ListChildren();
|
||||||
Parent->GetNotebook(i)->AddPage(Win, wxT("Sound"), true, Parent->aNormalFile );
|
Parent->GetNotebook(i)->AddPage(Win, wxT("Sound"), true, Parent->aNormalFile );
|
||||||
|
Console->Log(LogTypes::LNOTICE, StringFromFormat("AddPage\n").c_str());
|
||||||
|
//Parent->ListChildren();
|
||||||
|
//Console->Log(LogTypes::LNOTICE, StringFromFormat("OpenDebug: Win %i\n", FindWindowByName(wxT("Sound"))).c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Console->Log(LogTypes::LNOTICE, StringFromFormat("OpenDebug: Win not found\n").c_str());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,7 +341,7 @@ CFrame::CFrame(bool showLogWindow,
|
||||||
if (SConfig::GetInstance().m_InterfaceConsole) Console->Open();
|
if (SConfig::GetInstance().m_InterfaceConsole) Console->Open();
|
||||||
|
|
||||||
// Start debugging mazimized
|
// Start debugging mazimized
|
||||||
if (UseDebugger) this->Maximize(true);
|
//if (UseDebugger) this->Maximize(true);
|
||||||
// Debugger class
|
// Debugger class
|
||||||
if (UseDebugger)
|
if (UseDebugger)
|
||||||
{
|
{
|
||||||
|
@ -428,46 +428,7 @@ CFrame::CFrame(bool showLogWindow,
|
||||||
if (UseDebugger)
|
if (UseDebugger)
|
||||||
{
|
{
|
||||||
// Load perspective
|
// Load perspective
|
||||||
std::vector<std::string> VPerspectives;
|
SaveLocal();
|
||||||
std::string _Perspectives;
|
|
||||||
|
|
||||||
IniFile ini;
|
|
||||||
ini.Load(DEBUGGER_CONFIG_FILE);
|
|
||||||
ini.Get("Perspectives", "Perspectives", &_Perspectives, "");
|
|
||||||
ini.Get("Perspectives", "Active", &ActivePerspective, 0);
|
|
||||||
SplitString(_Perspectives, ",", VPerspectives);
|
|
||||||
|
|
||||||
//
|
|
||||||
for (int i = 0; i < VPerspectives.size(); i++)
|
|
||||||
{
|
|
||||||
SPerspectives Tmp;
|
|
||||||
std::string _Section, _Perspective, _Width, _Height;
|
|
||||||
std::vector<std::string> _SWidth, _SHeight;
|
|
||||||
Tmp.Name = VPerspectives.at(i);
|
|
||||||
_Section = StringFromFormat("P - %s", Tmp.Name.c_str());
|
|
||||||
if (!ini.Exists(_Section.c_str(), "Width")) continue;
|
|
||||||
|
|
||||||
ini.Get(_Section.c_str(), "Perspective", &_Perspective, "");
|
|
||||||
ini.Get(_Section.c_str(), "Width", &_Width, "");
|
|
||||||
ini.Get(_Section.c_str(), "Height", &_Height, "");
|
|
||||||
|
|
||||||
Tmp.Perspective = wxString::FromAscii(_Perspective.c_str());
|
|
||||||
|
|
||||||
SplitString(_Width, ",", _SWidth);
|
|
||||||
SplitString(_Height, ",", _SHeight);
|
|
||||||
for (int i = 0; i < _SWidth.size(); i++)
|
|
||||||
{
|
|
||||||
int _Tmp;
|
|
||||||
if (TryParseInt(_SWidth.at(0).c_str(), &_Tmp)) Tmp.Width.push_back(_Tmp);
|
|
||||||
}
|
|
||||||
for (int i = 0; i < _SHeight.size(); i++)
|
|
||||||
{
|
|
||||||
int _Tmp;
|
|
||||||
if (TryParseInt(_SHeight.at(0).c_str(), &_Tmp)) Tmp.Height.push_back(_Tmp);
|
|
||||||
}
|
|
||||||
Perspectives.push_back(Tmp);
|
|
||||||
}
|
|
||||||
|
|
||||||
DoLoadPerspective();
|
DoLoadPerspective();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -655,45 +616,89 @@ void CFrame::SetPaneSize()
|
||||||
// Debugging, show loose windows
|
// Debugging, show loose windows
|
||||||
void CFrame::ListChildren()
|
void CFrame::ListChildren()
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
|
wxAuiNotebook * NB = NULL;
|
||||||
|
|
||||||
for (int i = 0; i < this->GetChildren().size(); i++)
|
for (int i = 0; i < this->GetChildren().size(); i++)
|
||||||
{
|
{
|
||||||
wxWindow * Win = this->GetChildren().Item(i)->GetData();
|
wxWindow * Win = this->GetChildren().Item(i)->GetData();
|
||||||
// Console->Log(LogTypes::LDEBUG, StringFromFormat(
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
// "%i: %s (%s) :: % s\n", i,
|
"%i: %s (%s) :: %s", i,
|
||||||
// Win->GetName().mb_str(), Win->GetLabel().mb_str(), Win->GetParent()->GetName().mb_str()).c_str());
|
Win->GetName().mb_str(), Win->GetLabel().mb_str(), Win->GetParent()->GetName().mb_str()).c_str());
|
||||||
|
//if (Win->GetName().IsSameAs(wxT("control")))
|
||||||
|
if (Win->IsKindOf(CLASSINFO(wxAuiNotebook)))
|
||||||
|
{
|
||||||
|
NB = (wxAuiNotebook*)Win;
|
||||||
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat("%s", NB->GetName().mb_str()).c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
NB = NULL;
|
||||||
|
}
|
||||||
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat("\n").c_str());
|
||||||
|
|
||||||
Win = this->GetChildren().Item(i)->GetData();
|
Win = this->GetChildren().Item(i)->GetData();
|
||||||
for (int j = 0; j < Win->GetChildren().size(); j++)
|
for (int j = 0; j < Win->GetChildren().size(); j++)
|
||||||
{
|
{
|
||||||
// Console->Log(LogTypes::LDEBUG, StringFromFormat(
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
// " %i.%i: %s (%s) :: % s\n", i, j,
|
" %i.%i: %s (%s) :: %s", i, j,
|
||||||
// Win->GetName().mb_str(), Win->GetLabel().mb_str(), Win->GetParent()->GetName().mb_str()).c_str());
|
Win->GetName().mb_str(), Win->GetLabel().mb_str(), Win->GetParent()->GetName().mb_str()).c_str());
|
||||||
|
if (NB) Console->Log(LogTypes::LCUSTOM, StringFromFormat("%s", NB->GetPage(j)->GetName().mb_str()).c_str());
|
||||||
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat("\n").c_str());
|
||||||
|
|
||||||
|
Win = this->GetChildren().Item(j)->GetData();
|
||||||
|
for (int k = 0; k < Win->GetChildren().size(); k++)
|
||||||
|
{
|
||||||
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
|
" %i.%i.%i: %s (%s) :: %s\n", i, j, k,
|
||||||
|
Win->GetName().mb_str(), Win->GetLabel().mb_str(), Win->GetParent()->GetName().mb_str()).c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void CFrame::ReloadPanes()
|
void CFrame::ReloadPanes()
|
||||||
{
|
{
|
||||||
|
// Keep settings
|
||||||
|
bool bConsole = SConfig::GetInstance().m_InterfaceConsole;
|
||||||
|
|
||||||
|
//ListChildren();
|
||||||
|
|
||||||
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
|
//Console->Log(LogTypes::LNOTICE, StringFromFormat("ReloadPanes begin: Sound %i\n", FindWindowByName(wxT("Sound"))).c_str());
|
||||||
|
|
||||||
if (ActivePerspective >= Perspectives.size()) ActivePerspective = 0;
|
if (ActivePerspective >= Perspectives.size()) ActivePerspective = 0;
|
||||||
|
|
||||||
|
// Check that there is a perspective
|
||||||
if (Perspectives.size() > 0)
|
if (Perspectives.size() > 0)
|
||||||
{
|
{
|
||||||
|
// Check that the perspective was saved once before
|
||||||
|
if (Perspectives.at(ActivePerspective).Width.size() == 0) return;
|
||||||
|
|
||||||
// Close all pages
|
// Close all pages
|
||||||
ClosePages();
|
ClosePages();
|
||||||
// Drop all panes with notebooks
|
|
||||||
for (int i = 0; i < m_Mgr->GetAllPanes().GetCount(); i++)
|
/*
|
||||||
{
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
if (m_Mgr->GetAllPanes().Item(i).window->IsKindOf(CLASSINFO(wxAuiNotebook)))
|
"Will detached panes, have %i panes (%i NBs)\n", m_Mgr->GetAllPanes().GetCount(), GetNotebookCount()).c_str());
|
||||||
{
|
*/
|
||||||
// Todo, delete the window instead of just hiding it
|
|
||||||
m_Mgr->GetAllPanes().Item(i).window->Hide();
|
CloseAllNotebooks();
|
||||||
m_Mgr->DetachPane(m_Mgr->GetAllPanes().Item(i).window);
|
m_Mgr->Update();
|
||||||
}
|
/*
|
||||||
}
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
|
"Detached panes, have %i panes (%i NBs)\n", m_Mgr->GetAllPanes().GetCount(), GetNotebookCount()).c_str());
|
||||||
|
*/
|
||||||
|
|
||||||
// Create new panes with notebooks
|
// Create new panes with notebooks
|
||||||
for (int i = 0; i < Perspectives.at(ActivePerspective).Width.size() - 1; i++)
|
for (int i = 0; i < Perspectives.at(ActivePerspective).Width.size() - 1; i++)
|
||||||
m_Mgr->AddPane(CreateEmptyNotebook());
|
{
|
||||||
|
m_Mgr->AddPane(CreateEmptyNotebook(), wxAuiPaneInfo().Show());
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
|
"Created %i panes, have %i panes (%i NBs)\n",
|
||||||
|
Perspectives.at(ActivePerspective).Width.size() - 1, m_Mgr->GetAllPanes().GetCount(), GetNotebookCount()).c_str());
|
||||||
|
*/
|
||||||
// Names
|
// Names
|
||||||
NamePanes();
|
NamePanes();
|
||||||
// Perspectives
|
// Perspectives
|
||||||
|
@ -705,13 +710,18 @@ void CFrame::ReloadPanes()
|
||||||
m_Mgr->AddPane(CreateEmptyNotebook());
|
m_Mgr->AddPane(CreateEmptyNotebook());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Console->Log(LogTypes::LNOTICE, StringFromFormat("ReloadPanes end: Sound %i\n", FindWindowByName(wxT("Sound"))).c_str());
|
||||||
|
//ListChildren();
|
||||||
|
|
||||||
|
// If the code window was closed
|
||||||
|
if (!g_pCodeWindow) g_pCodeWindow = new CCodeWindow(SConfig::GetInstance().m_LocalCoreStartupParameter, this, this);
|
||||||
// Load GUI settings
|
// Load GUI settings
|
||||||
g_pCodeWindow->Load();
|
g_pCodeWindow->Load();
|
||||||
// Open notebook pages
|
// Open notebook pages
|
||||||
AddRemoveBlankPage();
|
AddRemoveBlankPage();
|
||||||
g_pCodeWindow->OpenPages();
|
g_pCodeWindow->OpenPages();
|
||||||
if (m_bLogWindow) DoToggleWindow(IDM_LOGWINDOW, true);
|
if (m_bLogWindow) DoToggleWindow(IDM_LOGWINDOW, true);
|
||||||
if (SConfig::GetInstance().m_InterfaceConsole) DoToggleWindow(IDM_CONSOLEWINDOW, true);
|
//if (bConsole) DoToggleWindow(IDM_CONSOLEWINDOW, true);
|
||||||
}
|
}
|
||||||
void CFrame::DoLoadPerspective()
|
void CFrame::DoLoadPerspective()
|
||||||
{
|
{
|
||||||
|
@ -722,17 +732,67 @@ void CFrame::DoLoadPerspective()
|
||||||
/*
|
/*
|
||||||
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
"Loaded: %s, NBs: %i, Non-NBs: %i, \n",
|
"Loaded: %s, NBs: %i, Non-NBs: %i, \n\n",
|
||||||
Perspectives.at(ActivePerspective).Name.c_str(), GetNotebookCount(), m_Mgr->GetAllPanes().GetCount() - GetNotebookCount()).c_str());
|
Perspectives.at(ActivePerspective).Name.c_str(), GetNotebookCount(), m_Mgr->GetAllPanes().GetCount() - GetNotebookCount()).c_str());
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
// Update the local perspectives array
|
||||||
|
void CFrame::SaveLocal()
|
||||||
|
{
|
||||||
|
Perspectives.clear();
|
||||||
|
std::vector<std::string> VPerspectives;
|
||||||
|
std::string _Perspectives;
|
||||||
|
|
||||||
|
IniFile ini;
|
||||||
|
ini.Load(DEBUGGER_CONFIG_FILE);
|
||||||
|
ini.Get("Perspectives", "Perspectives", &_Perspectives, "");
|
||||||
|
ini.Get("Perspectives", "Active", &ActivePerspective, 5);
|
||||||
|
SplitString(_Perspectives, ",", VPerspectives);
|
||||||
|
|
||||||
|
//
|
||||||
|
for (int i = 0; i < VPerspectives.size(); i++)
|
||||||
|
{
|
||||||
|
SPerspectives Tmp;
|
||||||
|
std::string _Section, _Perspective, _Width, _Height;
|
||||||
|
std::vector<std::string> _SWidth, _SHeight;
|
||||||
|
Tmp.Name = VPerspectives.at(i);
|
||||||
|
_Section = StringFromFormat("P - %s", Tmp.Name.c_str());
|
||||||
|
if (!ini.Exists(_Section.c_str(), "Width")) continue;
|
||||||
|
|
||||||
|
ini.Get(_Section.c_str(), "Perspective", &_Perspective, "");
|
||||||
|
ini.Get(_Section.c_str(), "Width", &_Width, "");
|
||||||
|
ini.Get(_Section.c_str(), "Height", &_Height, "");
|
||||||
|
|
||||||
|
Tmp.Perspective = wxString::FromAscii(_Perspective.c_str());
|
||||||
|
|
||||||
|
SplitString(_Width, ",", _SWidth);
|
||||||
|
SplitString(_Height, ",", _SHeight);
|
||||||
|
for (int i = 0; i < _SWidth.size(); i++)
|
||||||
|
{
|
||||||
|
int _Tmp;
|
||||||
|
if (TryParseInt(_SWidth.at(0).c_str(), &_Tmp)) Tmp.Width.push_back(_Tmp);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < _SHeight.size(); i++)
|
||||||
|
{
|
||||||
|
int _Tmp;
|
||||||
|
if (TryParseInt(_SHeight.at(0).c_str(), &_Tmp)) Tmp.Height.push_back(_Tmp);
|
||||||
|
}
|
||||||
|
Perspectives.push_back(Tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
void CFrame::Save()
|
void CFrame::Save()
|
||||||
{
|
{
|
||||||
if (Perspectives.size() == 0) return;
|
if (Perspectives.size() == 0)
|
||||||
|
{
|
||||||
|
wxMessageBox(wxT("Please create a perspective before saving"), wxT("Notice"), wxOK, this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (ActivePerspective >= Perspectives.size()) ActivePerspective = 0;
|
if (ActivePerspective >= Perspectives.size()) ActivePerspective = 0;
|
||||||
|
|
||||||
// Turn off edit before saving
|
// Turn off edit before saving
|
||||||
TogglePaneStyle(false);
|
TogglePaneStyle(false);
|
||||||
|
// Name panes
|
||||||
|
NamePanes();
|
||||||
|
|
||||||
// Get client size
|
// Get client size
|
||||||
int iClientX = this->GetSize().GetX(), iClientY = this->GetSize().GetY();
|
int iClientX = this->GetSize().GetX(), iClientY = this->GetSize().GetY();
|
||||||
|
@ -770,10 +830,15 @@ void CFrame::Save()
|
||||||
ini.Set("Perspectives", "Active", ActivePerspective);
|
ini.Set("Perspectives", "Active", ActivePerspective);
|
||||||
ini.Save(DEBUGGER_CONFIG_FILE);
|
ini.Save(DEBUGGER_CONFIG_FILE);
|
||||||
|
|
||||||
/*
|
// Update the local vector
|
||||||
|
SaveLocal();
|
||||||
|
|
||||||
|
/**/
|
||||||
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
|
||||||
Console->Log(LogTypes::LCUSTOM, StringFromFormat("Saved: %s\n", Perspectives.at(ActivePerspective).Name.c_str()).c_str());
|
Console->Log(LogTypes::LCUSTOM, StringFromFormat(
|
||||||
*/
|
"Saved: %s, NBs: %i, Non-NBs: %i, \n\n",
|
||||||
|
Perspectives.at(ActivePerspective).Name.c_str(), GetNotebookCount(), m_Mgr->GetAllPanes().GetCount() - GetNotebookCount()).c_str());
|
||||||
|
|
||||||
|
|
||||||
TogglePaneStyle(m_ToolBarAui->GetToolToggled(IDM_EDIT_PERSPECTIVES));
|
TogglePaneStyle(m_ToolBarAui->GetToolToggled(IDM_EDIT_PERSPECTIVES));
|
||||||
}
|
}
|
||||||
|
@ -815,14 +880,9 @@ void CFrame::OnPaneClose(wxAuiManagerEvent& event)
|
||||||
|
|
||||||
wxAuiNotebook * nb = (wxAuiNotebook*)event.pane->window;
|
wxAuiNotebook * nb = (wxAuiNotebook*)event.pane->window;
|
||||||
if (!nb) return;
|
if (!nb) return;
|
||||||
if (false)
|
if (! (nb->GetPageCount() == 0 || (nb->GetPageCount() == 1 && nb->GetPageText(0).IsSameAs(wxT("<>")))))
|
||||||
//if (! (nb->GetPageCount() == 0 || (nb->GetPageCount() == 1 && nb->GetPageText(0).IsSameAs(wxT("<>")))))
|
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("You can't close panes that have pages in them."),
|
wxMessageBox(wxT("You can't close panes that have pages in them."), wxT("Notice"), wxOK, this);
|
||||||
wxT("Notice"),
|
|
||||||
wxOK,
|
|
||||||
this);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -832,9 +892,8 @@ void CFrame::OnPaneClose(wxAuiManagerEvent& event)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Detach and delete the empty notebook
|
// Detach and delete the empty notebook
|
||||||
m_Mgr->DetachPane(event.pane->window);
|
event.pane->DestroyOnClose(true);
|
||||||
//event.pane->window->Close();
|
m_Mgr->ClosePane(*event.pane);
|
||||||
event.pane->window->Destroy();
|
|
||||||
|
|
||||||
//Console->Log(LogTypes::LCUSTOM, StringFromFormat("GetNotebookCount after: %i\n", GetNotebookCount()).c_str());
|
//Console->Log(LogTypes::LCUSTOM, StringFromFormat("GetNotebookCount after: %i\n", GetNotebookCount()).c_str());
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,7 @@ class CFrame : public wxFrame
|
||||||
void ListChildren();
|
void ListChildren();
|
||||||
void ClosePages();
|
void ClosePages();
|
||||||
void DoToggleWindow(int,bool);
|
void DoToggleWindow(int,bool);
|
||||||
|
void CloseAllNotebooks();
|
||||||
int GetNotebookCount();
|
int GetNotebookCount();
|
||||||
void DoAddPage(wxWindow *, int, std::string);
|
void DoAddPage(wxWindow *, int, std::string);
|
||||||
void DoRemovePage(wxWindow *, bool Hide = true);
|
void DoRemovePage(wxWindow *, bool Hide = true);
|
||||||
|
@ -144,6 +145,7 @@ class CFrame : public wxFrame
|
||||||
void AddPane();
|
void AddPane();
|
||||||
int Limit(int,int,int);
|
int Limit(int,int,int);
|
||||||
void Save();
|
void Save();
|
||||||
|
void SaveLocal();
|
||||||
void OnPaneClose(wxAuiManagerEvent& evt);
|
void OnPaneClose(wxAuiManagerEvent& evt);
|
||||||
void ReloadPanes();
|
void ReloadPanes();
|
||||||
void DoLoadPerspective();
|
void DoLoadPerspective();
|
||||||
|
|
|
@ -303,10 +303,12 @@ void CFrame::RecreateToolbar()
|
||||||
m_ToolBarDebug = new wxAuiToolBar(this, ID_TOOLBAR_DEBUG, wxDefaultPosition, wxDefaultSize,
|
m_ToolBarDebug = new wxAuiToolBar(this, ID_TOOLBAR_DEBUG, 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_ToolBarDebug);
|
g_pCodeWindow->PopulateToolbar(m_ToolBarDebug);
|
||||||
|
/*
|
||||||
m_Mgr->AddPane(m_ToolBarDebug, wxAuiPaneInfo().
|
m_Mgr->AddPane(m_ToolBarDebug, wxAuiPaneInfo().
|
||||||
Name(wxT("TBDebug")).Caption(wxT("TBDebug")).
|
Name(wxT("TBDebug")).Caption(wxT("TBDebug")).
|
||||||
ToolbarPane().Top().
|
ToolbarPane().Top().
|
||||||
LeftDockable(false).RightDockable(false).Floatable(false));
|
LeftDockable(false).RightDockable(false).Floatable(false));
|
||||||
|
*/
|
||||||
|
|
||||||
m_ToolBarAui = new wxAuiToolBar(this, ID_TOOLBAR_AUI, wxDefaultPosition, wxDefaultSize,
|
m_ToolBarAui = new wxAuiToolBar(this, ID_TOOLBAR_AUI, wxDefaultPosition, wxDefaultSize,
|
||||||
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_OVERFLOW | wxAUI_TB_TEXT);
|
||||||
|
@ -768,10 +770,6 @@ void CFrame::OnCreatePerspective(wxCommandEvent& event)
|
||||||
SPerspectives Tmp;
|
SPerspectives Tmp;
|
||||||
Tmp.Name = dlg.GetValue().mb_str();
|
Tmp.Name = dlg.GetValue().mb_str();
|
||||||
Perspectives.push_back(Tmp);
|
Perspectives.push_back(Tmp);
|
||||||
|
|
||||||
//if (m_perspectives.GetCount() == 0) m_perspectives_menu->AppendSeparator();
|
|
||||||
// m_perspectives_menu->Append(ID_FirstPerspective + m_perspectives.GetCount(), dlg.GetValue());
|
|
||||||
//m_perspectives.Add(m_mgr.SavePerspective());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFrame::TogglePaneStyle(bool On)
|
void CFrame::TogglePaneStyle(bool On)
|
||||||
|
@ -1180,6 +1178,30 @@ wxAuiNotebook * CFrame::GetNotebook(int NBId)
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
// Close all panes with notebooks
|
||||||
|
void CFrame::CloseAllNotebooks()
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while(GetNotebookCount() > 0)
|
||||||
|
{
|
||||||
|
if (m_Mgr->GetAllPanes().Item(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;
|
||||||
|
//Console->Log(LogTypes::LCUSTOM, StringFromFormat(" %i Pane\n", i).c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
//Console->Log(LogTypes::LCUSTOM, StringFromFormat(" %i No pane\n", i).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
int CFrame::GetNotebookCount()
|
int CFrame::GetNotebookCount()
|
||||||
{
|
{
|
||||||
int Ret = 0;
|
int Ret = 0;
|
||||||
|
|
|
@ -67,30 +67,20 @@ void CLogWindow::CreateGUIControls()
|
||||||
// Left side: buttons (-submit), options, and log type selection
|
// Left side: buttons (-submit), options, and log type selection
|
||||||
wxStaticBoxSizer* sbLeftOptions = new wxStaticBoxSizer(wxVERTICAL, this, wxT("Options"));
|
wxStaticBoxSizer* sbLeftOptions = new wxStaticBoxSizer(wxVERTICAL, this, wxT("Options"));
|
||||||
|
|
||||||
|
// Verbosity
|
||||||
wxArrayString wxLevels;
|
wxArrayString wxLevels;
|
||||||
for (int i = 1; i <= MAX_LOGLEVEL; ++i)
|
for (int i = 1; i <= MAX_LOGLEVEL; ++i) wxLevels.Add(wxString::Format(wxT("%i"), i));
|
||||||
wxLevels.Add(wxString::Format(wxT("%i"), i));
|
|
||||||
m_verbosity = new wxRadioBox(this, IDM_VERBOSITY, wxT("Verbosity"), wxDefaultPosition, wxDefaultSize, wxLevels, 0, wxRA_SPECIFY_COLS, wxDefaultValidator);
|
m_verbosity = new wxRadioBox(this, IDM_VERBOSITY, wxT("Verbosity"), wxDefaultPosition, wxDefaultSize, wxLevels, 0, wxRA_SPECIFY_COLS, wxDefaultValidator);
|
||||||
sbLeftOptions->Add(m_verbosity);
|
// Options
|
||||||
|
|
||||||
m_writeFileCB = new wxCheckBox(this, IDM_WRITEFILE, wxT("Write to File"), wxDefaultPosition, wxDefaultSize, 0);
|
m_writeFileCB = new wxCheckBox(this, IDM_WRITEFILE, wxT("Write to File"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
sbLeftOptions->Add(m_writeFileCB);
|
|
||||||
|
|
||||||
m_writeConsoleCB = new wxCheckBox(this, IDM_WRITECONSOLE, wxT("Write to Console"), wxDefaultPosition, wxDefaultSize, 0);
|
m_writeConsoleCB = new wxCheckBox(this, IDM_WRITECONSOLE, wxT("Write to Console"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
sbLeftOptions->Add(m_writeConsoleCB);
|
|
||||||
|
|
||||||
m_writeWindowCB = new wxCheckBox(this, IDM_WRITEWINDOW, wxT("Write to Window ->"), wxDefaultPosition, wxDefaultSize, 0);
|
m_writeWindowCB = new wxCheckBox(this, IDM_WRITEWINDOW, wxT("Write to Window ->"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
sbLeftOptions->Add(m_writeWindowCB);
|
|
||||||
|
|
||||||
sLeft->Add(sbLeftOptions, 0, wxEXPAND);
|
|
||||||
|
|
||||||
wxBoxSizer* sLogCtrl = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer* sLogCtrl = new wxBoxSizer(wxHORIZONTAL);
|
||||||
sLogCtrl->Add(new wxButton(this, IDM_TOGGLEALL, wxT("Toggle all"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), 1);
|
sLogCtrl->Add(new wxButton(this, IDM_TOGGLEALL, wxT("Toggle all"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), 1);
|
||||||
sLogCtrl->Add(new wxButton(this, IDM_CLEARLOG, wxT("Clear"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), 1);
|
sLogCtrl->Add(new wxButton(this, IDM_CLEARLOG, wxT("Clear"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT), 1);
|
||||||
sLeft->Add(sLogCtrl, 0, wxEXPAND);
|
|
||||||
|
|
||||||
m_checks = new wxCheckListBox(this, IDM_LOGCHECKS, wxDefaultPosition, wxDefaultSize);
|
m_checks = new wxCheckListBox(this, IDM_LOGCHECKS, wxDefaultPosition, wxDefaultSize);
|
||||||
sLeft->Add(m_checks, 1, wxEXPAND);
|
|
||||||
|
|
||||||
// Right side: Log viewer and submit row
|
// Right side: Log viewer and submit row
|
||||||
m_log = new wxTextCtrl(this, IDM_LOG, wxEmptyString, wxDefaultPosition, wxDefaultSize,
|
m_log = new wxTextCtrl(this, IDM_LOG, wxEmptyString, wxDefaultPosition, wxDefaultSize,
|
||||||
|
@ -103,6 +93,16 @@ void CLogWindow::CreateGUIControls()
|
||||||
wxTE_PROCESS_ENTER | wxTE_PROCESS_TAB);
|
wxTE_PROCESS_ENTER | wxTE_PROCESS_TAB);
|
||||||
//m_cmdline->SetFont(DebuggerFont);
|
//m_cmdline->SetFont(DebuggerFont);
|
||||||
|
|
||||||
|
// Sizers
|
||||||
|
sbLeftOptions->Add(m_writeFileCB);
|
||||||
|
sbLeftOptions->Add(m_writeConsoleCB);
|
||||||
|
sbLeftOptions->Add(m_writeWindowCB);
|
||||||
|
|
||||||
|
sLeft->Add(m_verbosity, 0, wxEXPAND);
|
||||||
|
sLeft->Add(sbLeftOptions, 0, wxEXPAND);
|
||||||
|
sLeft->Add(sLogCtrl, 0, wxEXPAND);
|
||||||
|
sLeft->Add(m_checks, 1, wxEXPAND);
|
||||||
|
|
||||||
sRightBottom->Add(m_cmdline, 1, wxEXPAND);
|
sRightBottom->Add(m_cmdline, 1, wxEXPAND);
|
||||||
sRight->Add(m_log, 1, wxEXPAND | wxSHRINK);
|
sRight->Add(m_log, 1, wxEXPAND | wxSHRINK);
|
||||||
sRight->Add(sRightBottom, 0, wxEXPAND);
|
sRight->Add(sRightBottom, 0, wxEXPAND);
|
||||||
|
|
Loading…
Reference in New Issue