GUI: Fixed some GUI related start/stop crashes

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4223 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
John Peterson
2009-09-07 12:40:43 +00:00
parent 49601e0af2
commit 7e115dcb00
27 changed files with 424 additions and 190 deletions

View File

@ -89,6 +89,9 @@ DSPDebuggerHLE::DSPDebuggerHLE(wxWindow *parent, wxWindowID id, const wxString &
, upd93(false)
, upd92(false)
{
// Confirm parenting
//this->Reparent(parent);
CreateGUIControls();
// load ini...
@ -144,17 +147,18 @@ DSPDebuggerHLE::DSPDebuggerHLE(wxWindow *parent, wxWindowID id, const wxString &
DSPDebuggerHLE::~DSPDebuggerHLE()
{
/*
// empty
IniFile file;
file.Load(DEBUGGER_CONFIG_FILE);
this->Save(file);
file.Save(DEBUGGER_CONFIG_FILE);
*/
// Reset
m_DebuggerFrame = NULL;
// Talk
ConsoleListener* Console = LogManager::GetInstance()->getConsoleListener();
Console->Log(LogTypes::LNOTICE, StringFromFormat("Sound closed\n").c_str());
NOTICE_LOG(CONSOLE, "Stop [Sound]\t\tDSPDebuggerHLE destroyed");
}
// ====================
@ -162,15 +166,21 @@ DSPDebuggerHLE::~DSPDebuggerHLE()
// ========================================================================
// System functions
// --------------
void DSPDebuggerHLE::OnClose(wxCloseEvent& /*event*/)
void DSPDebuggerHLE::OnClose(wxCloseEvent& event)
{
// Save the window position when we hide the window to
//PanicAlert("OnClose");
//event.Skip();
// Save the window position
IniFile file;
file.Load(DEBUGGER_CONFIG_FILE);
this->Save(file);
file.Save(DEBUGGER_CONFIG_FILE);
EndModal(0);
//EndModal(0);
//Close(true);
//Destroy();
delete this;
}
void DSPDebuggerHLE::OnUpdate(wxCommandEvent& /*event*/)

View File

@ -157,6 +157,7 @@ if(m_DebuggerFrame->ScanMails)
void CUCode_AX::SaveMail(bool Wii, u32 _uMail)
{
#if defined(HAVE_WX) && HAVE_WX
if (!m_DebuggerFrame) return;
if(m_DebuggerFrame->ScanMails)
{
int i = 0;

View File

@ -139,13 +139,17 @@ wxWindow* GetParentedWxWindow(HWND Parent)
void DllDebugger(HWND _hParent, bool Show)
{
#if defined(HAVE_WX) && HAVE_WX
if (!m_DebuggerFrame)
m_DebuggerFrame = new DSPDebuggerHLE(GetParentedWxWindow(_hParent));
if (Show)
{
if (!m_DebuggerFrame)
m_DebuggerFrame = new DSPDebuggerHLE(NULL);
//m_DebuggerFrame = new DSPDebuggerHLE(GetParentedWxWindow(_hParent));
m_DebuggerFrame->Show();
}
else
m_DebuggerFrame->Hide();
{
if (m_DebuggerFrame) m_DebuggerFrame->Close();
}
#endif
}
@ -229,6 +233,7 @@ void Shutdown()
#if defined(HAVE_WX) && HAVE_WX
// Reset mails
/*
if (m_DebuggerFrame)
{
sMailLog.clear();
@ -236,8 +241,8 @@ void Shutdown()
m_DebuggerFrame->sMail.clear();
m_DebuggerFrame->sMailEnd.clear();
}
#endif
*/
#endif
}
void DoState(unsigned char **ptr, int mode)

View File

@ -46,6 +46,7 @@ GFXDebuggerOGL::GFXDebuggerOGL(wxWindow *parent, wxWindowID id, const wxString &
GFXDebuggerOGL::~GFXDebuggerOGL()
{
SaveSettings();
NOTICE_LOG(CONSOLE, "Stop [Video Thread]: Closing OpenGL debugging window");
}
void GFXDebuggerOGL::OnClose(wxCloseEvent& event)

View File

@ -146,7 +146,7 @@ namespace EmuWindow
{
HWND m_hWnd = NULL; // The new window that is created here
HWND m_hParent = NULL; // The main CPanel or the main wxFrame
HWND m_hParent = NULL; // The main CPanel
HINSTANCE m_hInstance = NULL;
WNDCLASSEX wndClass;