X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c77049a04b5918a6b432aab94eaf31bc73c28916..d8fc3398ac61229b4986a6c72eb17af98f41123e:/include/wx/docview.h diff --git a/include/wx/docview.h b/include/wx/docview.h index 7799f53c23..0eaf23b8ba 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -73,9 +73,16 @@ public: void SetDocumentName(const wxString& name) { m_documentTypeName = name; } wxString GetDocumentName() const { return m_documentTypeName; } + // access the flag indicating whether this document had been already saved, + // SetDocumentSaved() is only used internally, don't call it bool GetDocumentSaved() const { return m_savedYet; } void SetDocumentSaved(bool saved = true) { m_savedYet = saved; } + // return true if the document hasn't been modified since the last time it + // was saved (implying that it returns false if it was never saved, even if + // the document is not modified) + bool AlreadySaved() const { return !IsModified() && GetDocumentSaved(); } + virtual bool Close(); virtual bool Save(); virtual bool SaveAs(); @@ -213,9 +220,6 @@ public: // 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); @@ -228,6 +232,9 @@ public: #endif protected: + // hook the document into event handlers chain here + virtual bool TryValidator(wxEvent& event); + wxDocument* m_viewDocument; wxString m_viewTypeName; wxWindow* m_viewFrame; @@ -349,14 +356,16 @@ public: 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() { } virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); + + // wrapper around CreateDocument() with a more clear name + wxDocument *CreateNewDocument() + { return CreateDocument(wxString(), wxDOC_NEW); } + virtual wxView *CreateView(wxDocument *doc, long flags = 0); virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0); virtual bool FlushDoc(wxDocument *doc); @@ -442,6 +451,9 @@ public: #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; @@ -478,12 +490,9 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long type = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxT("frame")); + const wxString& name = wxFrameNameStr); 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); @@ -494,6 +503,9 @@ public: 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; @@ -529,9 +541,6 @@ public: 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); @@ -539,6 +548,9 @@ public: void OnCloseWindow(wxCloseEvent& event); protected: + // hook the document manager into event handling chain here + virtual bool TryValidator(wxEvent& event); + wxDocManager *m_docManager; private: