wxAuiManager persistence changed to resolve asserts in Win32 builds
This commit is contained in:
parent
38f47db6d6
commit
6733ef3cfc
@ -62,7 +62,7 @@
|
|||||||
<event name="OnAuiPaneRestore"></event>
|
<event name="OnAuiPaneRestore"></event>
|
||||||
<event name="OnAuiRender"></event>
|
<event name="OnAuiRender"></event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnClose"></event>
|
<event name="OnClose">OnClose</event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
<event name="OnHibernate"></event>
|
<event name="OnHibernate"></event>
|
||||||
|
@ -69,10 +69,6 @@ wxZRColaFrame::wxZRColaFrame() :
|
|||||||
m_toolbarCompose->SetWindowStyleFlag(m_toolbarCompose->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
|
m_toolbarCompose->SetWindowStyleFlag(m_toolbarCompose->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Restore the wxAuiManager's state here to keep symmetric with save in the destructor below.
|
|
||||||
// See the comment in destructor why.
|
|
||||||
wxPersistentAuiManager(&m_mgr).Restore();
|
|
||||||
|
|
||||||
// Load main window icons.
|
// Load main window icons.
|
||||||
#ifdef __WINDOWS__
|
#ifdef __WINDOWS__
|
||||||
wxIcon icon_small(wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
|
wxIcon icon_small(wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
|
||||||
@ -135,6 +131,9 @@ wxZRColaFrame::wxZRColaFrame() :
|
|||||||
entries[0].Set(wxACCEL_NORMAL, WXK_F4, wxID_FOCUS_CHARACTER_CATALOG);
|
entries[0].Set(wxACCEL_NORMAL, WXK_F4, wxID_FOCUS_CHARACTER_CATALOG);
|
||||||
SetAcceleratorTable(wxAcceleratorTable(_countof(entries), entries));
|
SetAcceleratorTable(wxAcceleratorTable(_countof(entries), entries));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Restore persistent state of wxAuiManager manually, since m_mgr is not on the heap.
|
||||||
|
wxPersistentAuiManager(&m_mgr).Restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -161,10 +160,16 @@ wxZRColaFrame::~wxZRColaFrame()
|
|||||||
m_taskBarIcon->Disconnect(wxEVT_TASKBAR_LEFT_DOWN, wxTaskBarIconEventHandler(wxZRColaFrame::OnTaskbarIconClick), NULL, this);
|
m_taskBarIcon->Disconnect(wxEVT_TASKBAR_LEFT_DOWN, wxTaskBarIconEventHandler(wxZRColaFrame::OnTaskbarIconClick), NULL, this);
|
||||||
delete m_taskBarIcon;
|
delete m_taskBarIcon;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Save wxAuiManager's state before return to parent's destructor.
|
|
||||||
// Since the later calls m_mgr.UnInit() the regular persistence mechanism is useless to save wxAuiManager's state.
|
void wxZRColaFrame::OnClose(wxCloseEvent& event)
|
||||||
wxPersistentAuiManager((wxAuiManager*)&m_mgr).Save();
|
{
|
||||||
|
event.Skip();
|
||||||
|
|
||||||
|
// Save wxAuiManager's state before destructor.
|
||||||
|
// Since the destructor calls m_mgr.UnInit() the regular persistence mechanism is useless to save wxAuiManager's state.
|
||||||
|
wxPersistentAuiManager(&m_mgr).Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ public:
|
|||||||
friend class wxZRColaComposerPanel;
|
friend class wxZRColaComposerPanel;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual void OnClose(wxCloseEvent& event);
|
||||||
void OnExit(wxCommandEvent& event);
|
void OnExit(wxCommandEvent& event);
|
||||||
void OnForwardEventUpdate(wxUpdateUIEvent& event);
|
void OnForwardEventUpdate(wxUpdateUIEvent& event);
|
||||||
void OnForwardEvent(wxCommandEvent& event);
|
void OnForwardEvent(wxCommandEvent& event);
|
||||||
|
@ -190,6 +190,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
|
|||||||
this->Centre( wxBOTH );
|
this->Centre( wxBOTH );
|
||||||
|
|
||||||
// Connect Events
|
// Connect Events
|
||||||
|
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( wxZRColaFrameBase::OnClose ) );
|
||||||
this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) );
|
this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) );
|
||||||
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) );
|
this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) );
|
||||||
}
|
}
|
||||||
@ -197,6 +198,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
|
|||||||
wxZRColaFrameBase::~wxZRColaFrameBase()
|
wxZRColaFrameBase::~wxZRColaFrameBase()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
|
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( wxZRColaFrameBase::OnClose ) );
|
||||||
this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) );
|
this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) );
|
||||||
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) );
|
this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) );
|
||||||
|
|
||||||
|
@ -91,6 +91,7 @@ class wxZRColaFrameBase : public wxFrame
|
|||||||
wxStatusBar* m_statusBar;
|
wxStatusBar* m_statusBar;
|
||||||
|
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
||||||
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
|
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
|
||||||
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
|
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user