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
This commit is contained in:
Vadim Zeitlin 2009-05-22 22:52:31 +00:00
parent e5033ed2f1
commit 112d941fe1
2 changed files with 30 additions and 0 deletions

View File

@ -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
// ----------------------------------------------------------------------------

View File

@ -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)
};