const wxString& title, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame"));
- // Extend event processing to search the document manager's event table
- virtual bool ProcessEvent(wxEvent& event);
-
wxDocManager *GetDocumentManager(void) const { return m_docManager; }
void OnExit(wxCommandEvent& event);
protected:
void Init();
+
+ virtual bool TryValidator(wxEvent& event);
+
wxDocManager *m_docManager;
private:
long type = wxDEFAULT_FRAME_STYLE,
const wxString& name = wxFrameNameStr);
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
-
void OnActivate(wxActivateEvent& event);
void OnCloseWindow(wxCloseEvent& event);
protected:
void Init();
+
+ virtual bool TryValidator(wxEvent& event);
+
wxDocument* m_childDocument;
wxView* m_childView;
// Override to do cleanup/veto close
virtual bool OnClose(bool deleteWindow);
- // Extend event processing to search the document's event table
- virtual bool ProcessEvent(wxEvent& event);
-
// A view's window can call this to notify the view it is (in)active.
// The function then notifies the document manager.
virtual void Activate(bool activate);
#endif
protected:
+ // hook the document into event handlers chain here
+ virtual bool TryValidator(wxEvent& event);
+
wxDocument* m_viewDocument;
wxString m_viewTypeName;
wxWindow* m_viewFrame;
void OnUpdateUndo(wxUpdateUIEvent& event);
void OnUpdateRedo(wxUpdateUIEvent& event);
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
-
// called when file format detection didn't work, can be overridden to do
// something in this case
virtual void OnOpenFileFailure() { }
#endif // WXWIN_COMPATIBILITY_2_6
protected:
+ // hook the currently active view into event handlers chain here
+ virtual bool TryValidator(wxEvent& event);
+
int m_defaultDocumentNameCounter;
int m_maxDocsOpen;
wxList m_docs;
const wxString& name = wxT("frame"));
virtual ~wxDocChildFrame(){}
- // Extend event processing to search the view's event table
- virtual bool ProcessEvent(wxEvent& event);
-
void OnActivate(wxActivateEvent& event);
void OnCloseWindow(wxCloseEvent& event);
bool Destroy() { m_childView = NULL; return wxFrame::Destroy(); }
protected:
+ // hook the child view into event handlers chain here
+ virtual bool TryValidator(wxEvent& event);
+
wxDocument* m_childDocument;
wxView* m_childView;
long style = wxDEFAULT_FRAME_STYLE,
const wxString& name = wxFrameNameStr);
- // Extend event processing to search the document manager's event table
- virtual bool ProcessEvent(wxEvent& event);
-
wxDocManager *GetDocumentManager() const { return m_docManager; }
void OnExit(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
protected:
+ // hook the document manager into event handling chain here
+ virtual bool TryValidator(wxEvent& event);
+
wxDocManager *m_docManager;
private:
(void)m_docManager->CreateDocument(f, wxDOC_SILENT);
}
-// Extend event processing to search the view's event table
-bool wxDocMDIParentFrame::ProcessEvent(wxEvent& event)
+bool wxDocMDIParentFrame::TryValidator(wxEvent& event)
{
- // Try the document manager, then do default processing
- if (!m_docManager || !m_docManager->ProcessEvent(event))
- return wxEvtHandler::ProcessEvent(event);
- else
- return true;
+ return m_docManager && m_docManager->ProcessEventHere(event);
}
void wxDocMDIParentFrame::OnCloseWindow(wxCloseEvent& event)
m_childView = (wxView *) NULL;
}
-// Extend event processing to search the view's event table
-bool wxDocMDIChildFrame::ProcessEvent(wxEvent& event)
+bool wxDocMDIChildFrame::TryValidator(wxEvent& event)
{
- static wxEvent *ActiveEvent = NULL;
-
- // Break recursion loops
- if (ActiveEvent == &event)
- return false;
-
- ActiveEvent = &event;
-
- bool ret;
- if ( !m_childView || ! m_childView->ProcessEvent(event) )
- {
- // Only hand up to the parent if it's a menu command
- if (!event.IsKindOf(CLASSINFO(wxCommandEvent)) || !GetParent() || !GetParent()->ProcessEvent(event))
- ret = wxEvtHandler::ProcessEvent(event);
- else
- ret = true;
- }
- else
- ret = true;
-
- ActiveEvent = NULL;
- return ret;
+ return m_childView && m_childView->ProcessEventHere(event);
}
void wxDocMDIChildFrame::OnActivate(wxActivateEvent& event)
m_viewDocument->RemoveView(this);
}
-// Extend event processing to search the document's event table
-bool wxView::ProcessEvent(wxEvent& event)
+bool wxView::TryValidator(wxEvent& event)
{
- if ( !GetDocument() || !GetDocument()->ProcessEvent(event) )
- return wxEvtHandler::ProcessEvent(event);
-
- return true;
+ wxDocument * const doc = GetDocument();
+ return doc && doc->ProcessEventHere(event);
}
void wxView::OnActivateView(bool WXUNUSED(activate), wxView *WXUNUSED(activeView), wxView *WXUNUSED(deactiveView))
return NULL;
}
-// Extend event processing to search the view's event table
-bool wxDocManager::ProcessEvent(wxEvent& event)
+bool wxDocManager::TryValidator(wxEvent& event)
{
wxView * const view = GetCurrentView();
- if ( view && view->ProcessEvent(event) )
- return true;
-
- return wxEvtHandler::ProcessEvent(event);
+ return view && view->ProcessEventHere(event);
}
namespace
view->SetFrame(this);
}
-// Extend event processing to search the view's event table
-bool wxDocChildFrame::ProcessEvent(wxEvent& event)
+bool wxDocChildFrame::TryValidator(wxEvent& event)
{
- if (m_childView)
- m_childView->Activate(true);
+ if ( !m_childView )
+ return false;
- if ( !m_childView || ! m_childView->ProcessEvent(event) )
- {
- // Only hand up to the parent if it's a menu command
- if (!event.IsKindOf(CLASSINFO(wxCommandEvent)) || !GetParent() || !GetParent()->ProcessEvent(event))
- return wxEvtHandler::ProcessEvent(event);
- else
- return true;
- }
- else
- return true;
+ // FIXME: why is this needed here?
+ m_childView->Activate(true);
+
+ return m_childView->ProcessEventHere(event);
}
void wxDocChildFrame::OnActivate(wxActivateEvent& event)
}
// Extend event processing to search the view's event table
-bool wxDocParentFrame::ProcessEvent(wxEvent& event)
+bool wxDocParentFrame::TryValidator(wxEvent& event)
{
- // Try the document manager, then do default processing
- if (!m_docManager || !m_docManager->ProcessEvent(event))
- return wxEvtHandler::ProcessEvent(event);
- else
- return true;
+ return m_docManager && m_docManager->ProcessEventHere(event);
}
// Define the behaviour for the frame closing