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:
parent
e5033ed2f1
commit
112d941fe1
@ -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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -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)
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user