From 112d941fe1e012b646386ae9ce734eaf2b403663 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 22 May 2009 22:52:31 +0000 Subject: [PATCH] mark the document as modified when its text control is (closes #10826) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/docview/doc.cpp | 25 +++++++++++++++++++++++++ samples/docview/doc.h | 5 +++++ 2 files changed, 30 insertions(+) diff --git a/samples/docview/doc.cpp b/samples/docview/doc.cpp index f43bbb1c13..d6f77344e5 100644 --- a/samples/docview/doc.cpp +++ b/samples/docview/doc.cpp @@ -176,6 +176,24 @@ DocumentIstream& DoodleSegment::LoadObject(DocumentIstream& istream) IMPLEMENT_CLASS(wxTextDocument, wxDocument) +bool wxTextDocument::OnCreate(const wxString& path, long flags) +{ + if ( !wxDocument::OnCreate(path, flags) ) + return false; + + // subscribe to changes in the text control to update the document state + // when it's modified + GetTextCtrl()->Connect + ( + wxEVT_COMMAND_TEXT_UPDATED, + wxCommandEventHandler(wxTextDocument::OnTextChange), + NULL, + this + ); + + return true; +} + // Since text windows have their own method for saving to/loading from files, // we override DoSave/OpenDocument instead of Save/LoadObject bool wxTextDocument::DoSaveDocument(const wxString& filename) @@ -205,6 +223,13 @@ void wxTextDocument::Modify(bool modified) } } +void wxTextDocument::OnTextChange(wxCommandEvent& event) +{ + Modify(true); + + event.Skip(); +} + // ---------------------------------------------------------------------------- // TextEditDocument implementation // ---------------------------------------------------------------------------- diff --git a/samples/docview/doc.h b/samples/docview/doc.h index 8365009d5c..dc6dc5e2a3 100644 --- a/samples/docview/doc.h +++ b/samples/docview/doc.h @@ -164,6 +164,9 @@ class wxTextDocument : public wxDocument { public: wxTextDocument() : wxDocument() { } + + virtual bool OnCreate(const wxString& path, long flags); + virtual wxTextCtrl* GetTextCtrl() const = 0; virtual bool IsModified() const; @@ -173,6 +176,8 @@ protected: virtual bool DoSaveDocument(const wxString& filename); virtual bool DoOpenDocument(const wxString& filename); + void OnTextChange(wxCommandEvent& event); + wxDECLARE_NO_COPY_CLASS(wxTextDocument); DECLARE_CLASS(wxTextDocument) }; -- 2.47.2