mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Lots more work on making the frame aui stuff functional.
Also added a DSPCORE_STOP state. The DSP-LLE debugger window segmentation faults if it is openned when a game is not running. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5931 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@@ -100,10 +100,9 @@ void CPlugin::Config(HWND _hwnd)
|
||||
}
|
||||
|
||||
// Debug: Open the Debugging window
|
||||
void CPlugin::Debug(void *Parent, bool Show)
|
||||
void *CPlugin::Debug(void *Parent, bool Show)
|
||||
{
|
||||
if (m_DllDebugger != NULL)
|
||||
m_DllDebugger(Parent, Show);
|
||||
return m_DllDebugger(Parent, Show);
|
||||
}
|
||||
|
||||
void CPlugin::SetGlobals(PLUGIN_GLOBALS* _pluginGlobals) {
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace Common
|
||||
{
|
||||
typedef void (__cdecl * TGetDllInfo)(PLUGIN_INFO*);
|
||||
typedef void (__cdecl * TDllConfig)(HWND);
|
||||
typedef void (__cdecl * TDllDebugger)(void *, bool);
|
||||
typedef void* (__cdecl * TDllDebugger)(void *, bool);
|
||||
typedef void (__cdecl * TSetDllGlobals)(PLUGIN_GLOBALS*);
|
||||
typedef void (__cdecl * TInitialize)(void *);
|
||||
typedef void (__cdecl * TShutdown)();
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
void Config(HWND _hwnd);
|
||||
void About(HWND _hwnd);
|
||||
void Debug(void *Parent, bool Show);
|
||||
void *Debug(void *Parent, bool Show);
|
||||
void DoState(unsigned char **ptr, int mode);
|
||||
void EmuStateChange(PLUGIN_EMUSTATE newState);
|
||||
void Initialize(void *init);
|
||||
|
||||
@@ -212,11 +212,6 @@ void Stop() // - Hammertime!
|
||||
|
||||
WARN_LOG(CONSOLE, "Stop [Main Thread]\t\t---- Shutting down ----");
|
||||
|
||||
// This must be done a while before freeing the dll to not crash wx around
|
||||
// MSWWindowProc and DefWindowProc, will investigate further
|
||||
Host_Message(AUDIO_DESTROY);
|
||||
Host_Message(VIDEO_DESTROY);
|
||||
|
||||
Host_SetWaitCursor(true); // hourglass!
|
||||
if (PowerPC::GetState() == PowerPC::CPU_POWERDOWN)
|
||||
return;
|
||||
|
||||
@@ -377,7 +377,6 @@ Common::PluginVideo *CPluginManager::GetVideo()
|
||||
// the plugins in turn
|
||||
void CPluginManager::FreeVideo()
|
||||
{
|
||||
//Host_Message(VIDEO_DESTROY);
|
||||
WARN_LOG(CONSOLE, "%s", Core::StopMessage(false, "Will unload video DLL").c_str());
|
||||
delete m_video;
|
||||
m_video = NULL;
|
||||
@@ -385,7 +384,6 @@ void CPluginManager::FreeVideo()
|
||||
|
||||
void CPluginManager::FreeDSP()
|
||||
{
|
||||
//Host_Message(AUDIO_DESTROY);
|
||||
WARN_LOG(CONSOLE, "%s", Core::StopMessage(false, "Will unload audio DLL").c_str());
|
||||
delete m_dsp;
|
||||
m_dsp = NULL;
|
||||
@@ -438,23 +436,24 @@ void CPluginManager::OpenConfig(void* _Parent, const char *_rFilename, PLUGIN_TY
|
||||
}
|
||||
|
||||
// Open debugging window. Type = Video or DSP. Show = Show or hide window.
|
||||
void CPluginManager::OpenDebug(void* _Parent, const char *_rFilename, PLUGIN_TYPE Type, bool Show)
|
||||
void *CPluginManager::OpenDebug(void* _Parent, const char *_rFilename, PLUGIN_TYPE Type, bool Show)
|
||||
{
|
||||
if (! File::Exists((File::GetPluginsDirectory() + _rFilename).c_str()))
|
||||
{
|
||||
PanicAlert("Can't find plugin %s", _rFilename);
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
switch(Type)
|
||||
{
|
||||
case PLUGIN_TYPE_VIDEO:
|
||||
GetVideo()->Debug(_Parent, Show);
|
||||
return GetVideo()->Debug(_Parent, Show);
|
||||
break;
|
||||
case PLUGIN_TYPE_DSP:
|
||||
GetDSP()->Debug(_Parent, Show);
|
||||
return GetDSP()->Debug(_Parent, Show);
|
||||
break;
|
||||
default:
|
||||
PanicAlert("Type %d debug not supported in plugin %s", Type, _rFilename);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
void ShutdownVideoPlugin();
|
||||
void ScanForPlugins();
|
||||
void OpenConfig(void* _Parent, const char *_rFilename, PLUGIN_TYPE Type);
|
||||
void OpenDebug(void* _Parent, const char *_rFilename, PLUGIN_TYPE Type, bool Show);
|
||||
void *OpenDebug(void* _Parent, const char *_rFilename, PLUGIN_TYPE Type, bool Show);
|
||||
const CPluginInfos& GetPluginInfos() {return(m_PluginInfos);}
|
||||
PLUGIN_GLOBALS* GetGlobals();
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
SDSP g_dsp;
|
||||
DSPBreakpoints dsp_breakpoints;
|
||||
DSPCoreState core_state = DSPCORE_RUNNING;
|
||||
DSPCoreState core_state = DSPCORE_STOP;
|
||||
DSPEmitter *jit = NULL;
|
||||
Common::Event step_event;
|
||||
|
||||
@@ -136,11 +136,15 @@ bool DSPCore_Init(const char *irom_filename, const char *coef_filename,
|
||||
|
||||
step_event.Init();
|
||||
|
||||
core_state = DSPCORE_RUNNING;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void DSPCore_Shutdown()
|
||||
{
|
||||
core_state = DSPCORE_STOP;
|
||||
|
||||
if(jit) {
|
||||
delete jit;
|
||||
jit = NULL;
|
||||
|
||||
@@ -251,8 +251,9 @@ void CompileCurrent();
|
||||
|
||||
enum DSPCoreState
|
||||
{
|
||||
DSPCORE_RUNNING = 0,
|
||||
DSPCORE_STEPPING = 1,
|
||||
DSPCORE_STOP = 0,
|
||||
DSPCORE_RUNNING,
|
||||
DSPCORE_STEPPING,
|
||||
};
|
||||
|
||||
int DSPCore_RunCycles(int cycles);
|
||||
|
||||
@@ -48,17 +48,9 @@ class CCodeWindow
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxTAB_TRAVERSAL | wxNO_BORDER,
|
||||
const wxString& name = wxT("Dolphin-Debugger")
|
||||
long style = wxTAB_TRAVERSAL,
|
||||
const wxString& name = wxT("Code")
|
||||
);
|
||||
/*
|
||||
CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, wxWindow* parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = _T("Dolphin-Debugger"),
|
||||
const wxPoint& pos = wxPoint(950, 100),
|
||||
const wxSize& size = wxSize(400, 500),
|
||||
long style = wxDEFAULT_FRAME_STYLE | wxCLIP_CHILDREN | wxNO_FULL_REPAINT_ON_RESIZE);
|
||||
*/
|
||||
|
||||
~CCodeWindow();
|
||||
void Load();
|
||||
@@ -122,13 +114,13 @@ class CCodeWindow
|
||||
bool bAutomaticStart; bool bBootToPause;
|
||||
int iLogWindow;
|
||||
int iConsoleWindow;
|
||||
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;
|
||||
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;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -107,15 +107,15 @@ void CCodeWindow::Load()
|
||||
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);
|
||||
ini.Get("Float", "Log", &Parent->bFloatWindow[0], false);
|
||||
ini.Get("Float", "Console", &Parent->bFloatWindow[1], false);
|
||||
ini.Get("Float", "Code", &Parent->bFloatWindow[2], false);
|
||||
ini.Get("Float", "Registers", &Parent->bFloatWindow[3], false);
|
||||
ini.Get("Float", "Breakpoints", &Parent->bFloatWindow[4], false);
|
||||
ini.Get("Float", "Memory", &Parent->bFloatWindow[5], false);
|
||||
ini.Get("Float", "JIT", &Parent->bFloatWindow[6], false);
|
||||
ini.Get("Float", "Sound", &Parent->bFloatWindow[7], false);
|
||||
ini.Get("Float", "Video", &Parent->bFloatWindow[8], false);
|
||||
|
||||
// Boot to pause or not
|
||||
ini.Get("ShowOnStart", "AutomaticStart", &bAutomaticStart, false);
|
||||
@@ -470,7 +470,8 @@ void CCodeWindow::OnToggleWindow(wxCommandEvent& event)
|
||||
void CCodeWindow::ToggleCodeWindow(bool bShow)
|
||||
{
|
||||
if (bShow)
|
||||
Parent->DoAddPage(this, iCodeWindow, wxT("Code"), bFloatCodeWindow);
|
||||
Parent->DoAddPage(this, iCodeWindow,
|
||||
Parent->bFloatWindow[IDM_CODEWINDOW - IDM_LOGWINDOW]);
|
||||
else // hide
|
||||
Parent->DoRemovePage(this);
|
||||
}
|
||||
@@ -483,7 +484,7 @@ void CCodeWindow::ToggleRegisterWindow(bool bShow)
|
||||
if (!m_RegisterWindow)
|
||||
m_RegisterWindow = new CRegisterWindow(Parent, IDM_REGISTERWINDOW);
|
||||
Parent->DoAddPage(m_RegisterWindow, iRegisterWindow,
|
||||
wxT("Registers"), bFloatRegisterWindow);
|
||||
Parent->bFloatWindow[IDM_REGISTERWINDOW - IDM_LOGWINDOW]);
|
||||
}
|
||||
else // hide
|
||||
Parent->DoRemovePage(m_RegisterWindow);
|
||||
@@ -497,7 +498,7 @@ void CCodeWindow::ToggleBreakPointWindow(bool bShow)
|
||||
if (!m_BreakpointWindow)
|
||||
m_BreakpointWindow = new CBreakPointWindow(this, Parent, IDM_BREAKPOINTWINDOW);
|
||||
Parent->DoAddPage(m_BreakpointWindow, iBreakpointWindow,
|
||||
wxT("Breakpoints"), bFloatBreakpointWindow);
|
||||
Parent->bFloatWindow[IDM_BREAKPOINTWINDOW - IDM_LOGWINDOW]);
|
||||
}
|
||||
else // hide
|
||||
Parent->DoRemovePage(m_BreakpointWindow);
|
||||
@@ -510,7 +511,8 @@ void CCodeWindow::ToggleMemoryWindow(bool bShow)
|
||||
{
|
||||
if (!m_MemoryWindow)
|
||||
m_MemoryWindow = new CMemoryWindow(Parent, IDM_MEMORYWINDOW);
|
||||
Parent->DoAddPage(m_MemoryWindow, iMemoryWindow, wxT("Memory"), bFloatMemoryWindow);
|
||||
Parent->DoAddPage(m_MemoryWindow, iMemoryWindow,
|
||||
Parent->bFloatWindow[IDM_MEMORYWINDOW - IDM_LOGWINDOW]);
|
||||
}
|
||||
else // hide
|
||||
Parent->DoRemovePage(m_MemoryWindow);
|
||||
@@ -523,7 +525,8 @@ void CCodeWindow::ToggleJitWindow(bool bShow)
|
||||
{
|
||||
if (!m_JitWindow)
|
||||
m_JitWindow = new CJitWindow(Parent, IDM_JITWINDOW);
|
||||
Parent->DoAddPage(m_JitWindow, iJitWindow, wxT("JIT"), bFloatJitWindow);
|
||||
Parent->DoAddPage(m_JitWindow, iJitWindow,
|
||||
Parent->bFloatWindow[IDM_JITWINDOW - IDM_LOGWINDOW]);
|
||||
}
|
||||
else // hide
|
||||
Parent->DoRemovePage(m_JitWindow);
|
||||
@@ -537,50 +540,51 @@ void CCodeWindow::ToggleJitWindow(bool bShow)
|
||||
void CCodeWindow::ToggleDLLWindow(int Id, bool bShow)
|
||||
{
|
||||
std::string DLLName;
|
||||
wxString Title;
|
||||
int PluginType, i;
|
||||
bool bFloat;
|
||||
wxPanel *Win;
|
||||
|
||||
switch(Id)
|
||||
{
|
||||
case IDM_SOUNDWINDOW:
|
||||
DLLName = SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDSPPlugin.c_str();
|
||||
PluginType = PLUGIN_TYPE_DSP;
|
||||
Title = wxT("Sound");
|
||||
i = iSoundWindow;
|
||||
bFloat = bFloatSoundWindow;
|
||||
bFloat = Parent->bFloatWindow[IDM_SOUNDWINDOW - IDM_LOGWINDOW];
|
||||
break;
|
||||
case IDM_VIDEOWINDOW:
|
||||
DLLName = SConfig::GetInstance().m_LocalCoreStartupParameter.m_strVideoPlugin.c_str();
|
||||
PluginType = PLUGIN_TYPE_VIDEO;
|
||||
Title = wxT("Video");
|
||||
i = iVideoWindow;
|
||||
bFloat = bFloatVideoWindow;
|
||||
bFloat = Parent->bFloatWindow[IDM_VIDEOWINDOW - IDM_LOGWINDOW];
|
||||
break;
|
||||
default:
|
||||
PanicAlert("CCodeWindow::ToggleDLLWindow called with invalid Id");
|
||||
return;
|
||||
}
|
||||
|
||||
GetMenuBar()->FindItem(Id)->Check(bShow);
|
||||
|
||||
if (bShow)
|
||||
{
|
||||
// Show window
|
||||
CPluginManager::GetInstance().OpenDebug(Parent,
|
||||
Win = (wxPanel *)CPluginManager::GetInstance().OpenDebug(Parent,
|
||||
DLLName.c_str(), (PLUGIN_TYPE)PluginType, bShow);
|
||||
|
||||
wxWindow* Win = Parent->GetWxWindow(Title);
|
||||
if (Win)
|
||||
{
|
||||
Win->Show();
|
||||
Win->SetId(Id);
|
||||
Parent->DoAddPage(Win, i, Title, bFloat);
|
||||
Parent->DoAddPage(Win, i, bFloat);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Parent->DoRemovePageId(Id, false, false);
|
||||
CPluginManager::GetInstance().OpenDebug(Parent,
|
||||
DLLName.c_str(), (PLUGIN_TYPE)PluginType, bShow);
|
||||
Win = (wxPanel *)FindWindowById(Id);
|
||||
if (Win)
|
||||
{
|
||||
Parent->DoRemovePageId(Id, false, false);
|
||||
Win->Close();
|
||||
Win->Destroy();
|
||||
}
|
||||
}
|
||||
GetMenuBar()->FindItem(Id)->Check(bShow && !!Win);
|
||||
}
|
||||
|
||||
@@ -67,9 +67,9 @@ BEGIN_EVENT_TABLE(CJitWindow, wxPanel)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id,
|
||||
const wxString& title, const wxPoint& pos, const wxSize& size, long style)
|
||||
: wxPanel(parent, id, pos, size, style)
|
||||
CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos,
|
||||
const wxSize& size, long style, const wxString& name)
|
||||
: wxPanel(parent, id, pos, size, style, name)
|
||||
{
|
||||
the_jit_window = this;
|
||||
wxBoxSizer* sizerBig = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
@@ -46,10 +46,10 @@ class CJitWindow : public wxPanel
|
||||
public:
|
||||
CJitWindow(wxWindow* parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = _T("JIT block viewer"),
|
||||
const wxPoint& pos = wxPoint(950, 100),
|
||||
const wxSize& size = wxSize(400, 500),
|
||||
long style = wxNO_BORDER);
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxTAB_TRAVERSAL,
|
||||
const wxString& title = _T("JIT block viewer"));
|
||||
~CJitWindow();
|
||||
|
||||
static void ViewAddr(u32 em_address);
|
||||
|
||||
@@ -71,8 +71,8 @@ EVT_CHECKBOX(IDM_HEX , CMemoryWindow::onHex)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
CMemoryWindow::CMemoryWindow(wxWindow* parent, wxWindowID id,
|
||||
const wxString& title, const wxPoint& pos, const wxSize& size, long style)
|
||||
: wxPanel(parent, id, pos, size, style)
|
||||
const wxPoint& pos, const wxSize& size, long style, const wxString& name)
|
||||
: wxPanel(parent, id, pos, size, style, name)
|
||||
{
|
||||
wxBoxSizer* sizerBig = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxBoxSizer* sizerRight = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
@@ -38,10 +38,10 @@ class CMemoryWindow
|
||||
|
||||
CMemoryWindow(wxWindow* parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = _T("Dolphin-Memory"),
|
||||
const wxPoint& pos = wxPoint(950, 100),
|
||||
const wxSize& size = wxSize(400, 500),
|
||||
long style = wxNO_BORDER);
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxNO_BORDER,
|
||||
const wxString& name = _T("Memory"));
|
||||
|
||||
~CMemoryWindow();
|
||||
wxCheckBox* chk8;
|
||||
|
||||
@@ -266,15 +266,7 @@ EVT_MENU(IDM_ADD_PERSPECTIVE, CFrame::OnDropDownToolbarSelect)
|
||||
EVT_MENU(IDM_TAB_SPLIT, CFrame::OnDropDownToolbarSelect)
|
||||
EVT_MENU(IDM_NO_DOCKING, CFrame::OnDropDownToolbarSelect)
|
||||
// Drop down float
|
||||
EVT_MENU(IDM_FLOAT_LOGWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_CONSOLEWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_CODEWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_REGISTERWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_BREAKPOINTWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_MEMORYWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_JITWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_SOUNDWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU(IDM_FLOAT_VIDEOWINDOW, CFrame::OnFloatWindow)
|
||||
EVT_MENU_RANGE(IDM_FLOAT_LOGWINDOW, IDM_FLOAT_VIDEOWINDOW, CFrame::OnFloatWindow)
|
||||
|
||||
EVT_MENU(IDM_NETPLAY, CFrame::OnNetPlay)
|
||||
EVT_MENU(IDM_BROWSE, CFrame::OnBrowse)
|
||||
@@ -350,7 +342,6 @@ CFrame::CFrame(wxFrame* parent,
|
||||
, m_MenuBar(NULL)
|
||||
, bRenderToMain(false), bNoWiimoteMsg(false)
|
||||
, m_ToolBar(NULL), m_ToolBarDebug(NULL), m_ToolBarAui(NULL)
|
||||
, bFloatLogWindow(false), bFloatConsoleWindow(false)
|
||||
, m_pStatusBar(NULL), m_GameListCtrl(NULL), m_Panel(NULL)
|
||||
, m_RenderFrame(NULL), m_RenderParent(NULL)
|
||||
, m_LogWindow(NULL), UseDebugger(_UseDebugger)
|
||||
@@ -360,6 +351,9 @@ CFrame::CFrame(wxFrame* parent,
|
||||
, m_timer(this)
|
||||
#endif
|
||||
{
|
||||
for (int i = 0; i <= IDM_VIDEOWINDOW - IDM_LOGWINDOW; i++)
|
||||
bFloatWindow[i] = false;
|
||||
|
||||
if (ShowLogWindow) SConfig::GetInstance().m_InterfaceLogWindow = true;
|
||||
|
||||
// Give it a console early to show potential messages from this onward
|
||||
@@ -443,7 +437,7 @@ CFrame::CFrame(wxFrame* parent,
|
||||
{
|
||||
IniFile ini; int winpos;
|
||||
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
|
||||
ini.Get("LogWindow", "pos", &winpos, 2);
|
||||
ini.Get("LogWindow", "pos", &winpos, wxAUI_DOCK_RIGHT);
|
||||
|
||||
m_Mgr->GetPane(wxT("Pane 0")).Show().PaneBorder(false).CaptionVisible(false).Layer(0).Center();
|
||||
m_Mgr->GetPane(wxT("Pane 1")).Hide().PaneBorder(false).CaptionVisible(true).Layer(0)
|
||||
@@ -701,14 +695,6 @@ void CFrame::OnHostMessage(wxCommandEvent& event)
|
||||
DoStop();
|
||||
break;
|
||||
#endif
|
||||
|
||||
case AUDIO_DESTROY:
|
||||
if (g_pCodeWindow)
|
||||
g_pCodeWindow->ToggleDLLWindow(IDM_SOUNDWINDOW, false);
|
||||
break;
|
||||
|
||||
case VIDEO_DESTROY:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -917,12 +903,6 @@ wxFrame * CFrame::CreateParentFrame(wxWindowID Id, const wxString& Title, wxWind
|
||||
return Frame;
|
||||
}
|
||||
|
||||
wxPanel* CFrame::CreateEmptyPanel(wxWindowID Id)
|
||||
{
|
||||
wxPanel* Panel = new wxPanel(this, Id);
|
||||
return Panel;
|
||||
}
|
||||
|
||||
wxAuiNotebook* CFrame::CreateEmptyNotebook()
|
||||
{
|
||||
wxAuiNotebook* NB = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, NOTEBOOK_STYLE);
|
||||
|
||||
@@ -147,20 +147,11 @@ class CFrame : public CRenderFrame
|
||||
wxAuiToolBar *m_ToolBar, *m_ToolBarDebug, *m_ToolBarAui;
|
||||
long NOTEBOOK_STYLE, TOOLBAR_STYLE;
|
||||
int iLeftWidth[2], iMidWidth[2];
|
||||
bool bFloatLogWindow;
|
||||
bool bFloatConsoleWindow;
|
||||
bool bFloatWindow[IDM_VIDEOWINDOW - IDM_LOGWINDOW + 1];
|
||||
|
||||
// Utility
|
||||
wxWindow * GetWxWindow(wxString);
|
||||
#ifdef _WIN32
|
||||
wxWindow * GetWxWindowHwnd(HWND);
|
||||
#endif
|
||||
wxWindow * GetFloatingPage(int Id);
|
||||
wxWindow * GetNootebookPage(wxString);
|
||||
wxWindow * GetNootebookPageFromId(wxWindowID Id);
|
||||
wxWindow * GetNotebookPageFromId(wxWindowID Id);
|
||||
wxAuiNotebook * GetNotebookFromId(u32);
|
||||
wxWindowID WindowParentIdFromChildId(int Id);
|
||||
wxString WindowNameFromId(int Id);
|
||||
int GetNotebookCount();
|
||||
int Limit(int,int,int);
|
||||
int PercentageToPixels(int,int);
|
||||
@@ -175,12 +166,12 @@ class CFrame : public CRenderFrame
|
||||
void OnFloatWindow(wxCommandEvent& event);
|
||||
void ToggleFloatWindow(int Id);
|
||||
void OnTab(wxAuiNotebookEvent& event);
|
||||
int GetNootebookAffiliation(wxString Name);
|
||||
int GetNotebookAffiliation(wxWindowID Id);
|
||||
void ClosePages();
|
||||
void ShowAllNotebooks(bool Window = false);
|
||||
void HideAllNotebooks(bool Window = false);
|
||||
void CloseAllNotebooks();
|
||||
void DoAddPage(wxWindow *, int, wxString, bool);
|
||||
void DoAddPage(wxWindow *, int, bool);
|
||||
void DoRemovePage(wxWindow *, bool Hide = true);
|
||||
void DoRemovePageId(wxWindowID Id, bool bHide, bool bDestroy);
|
||||
void TogglePane();
|
||||
@@ -276,7 +267,6 @@ class CFrame : public CRenderFrame
|
||||
void PopulateToolbarAui(wxAuiToolBar* toolBar);
|
||||
void RecreateToolbar();
|
||||
void CreateMenu();
|
||||
wxPanel *CreateEmptyPanel(wxWindowID Id = wxID_ANY);
|
||||
wxAuiNotebook *CreateEmptyNotebook();
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -881,9 +881,16 @@ void CFrame::DoStop()
|
||||
Frame::EndRecordingInput();
|
||||
if(Frame::IsPlayingInput())
|
||||
Frame::EndPlayInput();
|
||||
|
||||
|
||||
// These windows cause segmentation faults if they are open when the emulator
|
||||
// stops. It has something to do with the the wxAuiManager update.
|
||||
if (g_pCodeWindow)
|
||||
{
|
||||
g_pCodeWindow->ToggleDLLWindow(IDM_SOUNDWINDOW, false);
|
||||
g_pCodeWindow->ToggleDLLWindow(IDM_VIDEOWINDOW, false);
|
||||
}
|
||||
|
||||
Core::Stop();
|
||||
UpdateGUI();
|
||||
|
||||
// Destroy the renderer frame when not rendering to main
|
||||
m_RenderFrame->Disconnect(wxID_ANY, wxEVT_SIZE,
|
||||
@@ -902,6 +909,8 @@ void CFrame::DoStop()
|
||||
m_RenderFrame->Destroy();
|
||||
m_RenderParent = NULL;
|
||||
|
||||
UpdateGUI();
|
||||
|
||||
// Clean framerate indications from the status bar.
|
||||
m_pStatusBar->SetStatusText(wxT(" "), 0);
|
||||
|
||||
|
||||
@@ -152,6 +152,28 @@ enum
|
||||
IDM_SOUNDWINDOW,
|
||||
IDM_VIDEOWINDOW,
|
||||
|
||||
// Float Window IDs
|
||||
IDM_LOGWINDOW_PARENT,
|
||||
IDM_CONSOLEWINDOW_PARENT,
|
||||
IDM_CODEWINDOW_PARENT,
|
||||
IDM_REGISTERWINDOW_PARENT,
|
||||
IDM_BREAKPOINTWINDOW_PARENT,
|
||||
IDM_MEMORYWINDOW_PARENT,
|
||||
IDM_JITWINDOW_PARENT,
|
||||
IDM_SOUNDWINDOW_PARENT,
|
||||
IDM_VIDEOWINDOW_PARENT,
|
||||
|
||||
// Float popup menu IDs
|
||||
IDM_FLOAT_LOGWINDOW,
|
||||
IDM_FLOAT_CONSOLEWINDOW,
|
||||
IDM_FLOAT_CODEWINDOW,
|
||||
IDM_FLOAT_REGISTERWINDOW,
|
||||
IDM_FLOAT_BREAKPOINTWINDOW,
|
||||
IDM_FLOAT_MEMORYWINDOW,
|
||||
IDM_FLOAT_JITWINDOW,
|
||||
IDM_FLOAT_SOUNDWINDOW,
|
||||
IDM_FLOAT_VIDEOWINDOW,
|
||||
|
||||
// Symbols
|
||||
IDM_CLEARSYMBOLS,
|
||||
IDM_CLEANSYMBOLS, // not used
|
||||
@@ -185,16 +207,6 @@ enum
|
||||
IDM_GOTOPC,
|
||||
IDM_ADDRBOX,
|
||||
|
||||
IDM_FLOAT_LOGWINDOW,
|
||||
IDM_FLOAT_CONSOLEWINDOW,
|
||||
IDM_FLOAT_CODEWINDOW,
|
||||
IDM_FLOAT_REGISTERWINDOW,
|
||||
IDM_FLOAT_BREAKPOINTWINDOW,
|
||||
IDM_FLOAT_MEMORYWINDOW,
|
||||
IDM_FLOAT_JITWINDOW,
|
||||
IDM_FLOAT_SOUNDWINDOW,
|
||||
IDM_FLOAT_VIDEOWINDOW,
|
||||
|
||||
ID_TOOLBAR_AUI,
|
||||
IDM_SAVE_PERSPECTIVE,
|
||||
IDM_ADD_PERSPECTIVE,
|
||||
@@ -206,16 +218,6 @@ 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,
|
||||
|
||||
@@ -48,8 +48,9 @@ BEGIN_EVENT_TABLE(CLogWindow, wxPanel)
|
||||
EVT_TIMER(IDTM_UPDATELOG, CLogWindow::OnLogTimer)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxString &, const wxPoint &position, const wxSize& size, long style)
|
||||
: wxPanel(parent, id, position, size, style)
|
||||
CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxPoint& pos,
|
||||
const wxSize& size, long style, const wxString& name)
|
||||
: wxPanel(parent, id, pos, size, style, name)
|
||||
, Parent(parent) , m_LogAccess(true)
|
||||
, m_Log(NULL), m_cmdline(NULL), m_FontChoice(NULL)
|
||||
, m_LogSection(1)
|
||||
|
||||
@@ -54,10 +54,11 @@ class CLogWindow : public wxPanel, LogListener
|
||||
public:
|
||||
CLogWindow(CFrame *parent,
|
||||
wxWindowID id = wxID_ANY,
|
||||
const wxString& title = wxT("Log"),
|
||||
const wxPoint& pos = wxPoint(100, 700),
|
||||
const wxSize& size = wxSize(800, 270),
|
||||
long style = wxNO_BORDER);
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxTAB_TRAVERSAL,
|
||||
const wxString& name = wxT("Log")
|
||||
);
|
||||
~CLogWindow();
|
||||
void NotifyUpdate();
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user