X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3b9f782ef3949f583e8ac53795d36787f044fc3..ca1f7cb56322e35a5bf3d9612cd14c128246947c:/src/common/docmdi.cpp diff --git a/src/common/docmdi.cpp b/src/common/docmdi.cpp index cca56168cb..c8911d606a 100644 --- a/src/common/docmdi.cpp +++ b/src/common/docmdi.cpp @@ -68,9 +68,12 @@ void wxDocMDIParentFrame::OnMRUFile(wxCommandEvent& event) (void)m_docManager->CreateDocument(f, wxDOC_SILENT); } -bool wxDocMDIParentFrame::TryValidator(wxEvent& event) +bool wxDocMDIParentFrame::TryBefore(wxEvent& event) { - return m_docManager && m_docManager->ProcessEventHere(event); + if ( m_docManager && m_docManager->ProcessEventHere(event) ) + return true; + + return wxMDIParentFrame::TryBefore(event); } void wxDocMDIParentFrame::OnCloseWindow(wxCloseEvent& event) @@ -84,94 +87,7 @@ void wxDocMDIParentFrame::OnCloseWindow(wxCloseEvent& event) } -/* - * Default document child frame for MDI children - */ - IMPLEMENT_CLASS(wxDocMDIChildFrame, wxMDIChildFrame) -BEGIN_EVENT_TABLE(wxDocMDIChildFrame, wxMDIChildFrame) - EVT_ACTIVATE(wxDocMDIChildFrame::OnActivate) - EVT_CLOSE(wxDocMDIChildFrame::OnCloseWindow) -END_EVENT_TABLE() - -void wxDocMDIChildFrame::Init() -{ - m_childDocument = NULL; - m_childView = NULL; -} - -wxDocMDIChildFrame::wxDocMDIChildFrame() -{ - Init(); -} - -wxDocMDIChildFrame::wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id, - const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) -{ - Init(); - Create(doc, view, frame, id, title, pos, size, style, name); -} - -bool wxDocMDIChildFrame::Create(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id, - const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name) -{ - m_childDocument = doc; - m_childView = view; - if (wxMDIChildFrame::Create(frame, id, title, pos, size, style, name)) - { - if (view) - view->SetFrame(this); - return true; - } - - return false; -} - -wxDocMDIChildFrame::~wxDocMDIChildFrame(void) -{ - m_childView = NULL; -} - -bool wxDocMDIChildFrame::TryValidator(wxEvent& event) -{ - return m_childView && m_childView->ProcessEventHere(event); -} - -void wxDocMDIChildFrame::OnActivate(wxActivateEvent& event) -{ - wxMDIChildFrame::OnActivate(event); - - if (event.GetActive() && m_childView) - m_childView->Activate(event.GetActive()); -} - -void wxDocMDIChildFrame::OnCloseWindow(wxCloseEvent& event) -{ - // Close view but don't delete the frame while doing so! - // ...since it will be deleted by wxWidgets if we return true. - if (m_childView) - { - bool ans = event.CanVeto() - ? m_childView->Close(false) // false means don't delete associated window - : true; // Must delete. - - if (ans) - { - m_childView->Activate(false); - delete m_childView; - m_childView = NULL; - m_childDocument = NULL; - - this->Destroy(); - } - else - event.Veto(); - } - else - event.Veto(); -} - -#endif - // wxUSE_DOC_VIEW_ARCHITECTURE +#endif // wxUSE_DOC_VIEW_ARCHITECTURE