Simplify docview sample by removing wxTextDocument class

The purpose of this class was unclear as only TextEditDocument, deriving
from it, was actually used, so it seems like we can just rename it to
TextEditDocument and use a single class instead of using two without
losing anything.
This commit is contained in:
Vadim Zeitlin
2024-05-05 22:06:08 +02:00
parent d2e303968d
commit 2d3461bc01
2 changed files with 17 additions and 38 deletions
+9 -15
View File
@@ -178,31 +178,31 @@ DocumentIstream& DoodleSegment::LoadObject(DocumentIstream& istream)
}
// ----------------------------------------------------------------------------
// wxTextDocument: wxDocument and wxTextCtrl married
// TextEditDocument: wxDocument and wxTextCtrl married
// ----------------------------------------------------------------------------
wxIMPLEMENT_CLASS(wxTextDocument, wxDocument);
wxIMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument);
bool wxTextDocument::OnCreate(const wxString& path, long flags)
bool TextEditDocument::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()->Bind(wxEVT_TEXT, &wxTextDocument::OnTextChange, this);
GetTextCtrl()->Bind(wxEVT_TEXT, &TextEditDocument::OnTextChange, 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)
bool TextEditDocument::DoSaveDocument(const wxString& filename)
{
return GetTextCtrl()->SaveFile(filename);
}
bool wxTextDocument::DoOpenDocument(const wxString& filename)
bool TextEditDocument::DoOpenDocument(const wxString& filename)
{
if ( !GetTextCtrl()->LoadFile(filename) )
return false;
@@ -213,13 +213,13 @@ bool wxTextDocument::DoOpenDocument(const wxString& filename)
return true;
}
bool wxTextDocument::IsModified() const
bool TextEditDocument::IsModified() const
{
wxTextCtrl* wnd = GetTextCtrl();
return wxDocument::IsModified() || (wnd && wnd->IsModified());
}
void wxTextDocument::Modify(bool modified)
void TextEditDocument::Modify(bool modified)
{
wxDocument::Modify(modified);
@@ -230,19 +230,13 @@ void wxTextDocument::Modify(bool modified)
}
}
void wxTextDocument::OnTextChange(wxCommandEvent& event)
void TextEditDocument::OnTextChange(wxCommandEvent& event)
{
Modify(true);
event.Skip();
}
// ----------------------------------------------------------------------------
// TextEditDocument implementation
// ----------------------------------------------------------------------------
wxIMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument);
wxTextCtrl* TextEditDocument::GetTextCtrl() const
{
wxView* view = GetFirstView();
+8 -23
View File
@@ -157,20 +157,18 @@ public:
// ----------------------------------------------------------------------------
// wxTextDocument: wxDocument and wxTextCtrl married
// TextEditDocument: wxDocument implemented using wxTextCtrl
// ----------------------------------------------------------------------------
class wxTextDocument : public wxDocument
class TextEditDocument : public wxDocument
{
public:
wxTextDocument() : wxDocument() { }
wxTextDocument(const wxTextDocument&) = delete;
wxTextDocument &operator=(const wxTextDocument&) = delete;
TextEditDocument() : wxDocument() { }
TextEditDocument(const TextEditDocument&) = delete;
TextEditDocument &operator=(const TextEditDocument&) = delete;
virtual bool OnCreate(const wxString& path, long flags) override;
virtual wxTextCtrl* GetTextCtrl() const = 0;
virtual bool IsModified() const override;
virtual void Modify(bool mod) override;
@@ -178,24 +176,11 @@ protected:
virtual bool DoSaveDocument(const wxString& filename) override;
virtual bool DoOpenDocument(const wxString& filename) override;
private:
wxTextCtrl* GetTextCtrl() const;
void OnTextChange(wxCommandEvent& event);
wxDECLARE_ABSTRACT_CLASS(wxTextDocument);
};
// ----------------------------------------------------------------------------
// A very simple text document class
// ----------------------------------------------------------------------------
class TextEditDocument : public wxTextDocument
{
public:
TextEditDocument() : wxTextDocument() { }
TextEditDocument(const TextEditDocument&) = delete;
TextEditDocument &operator=(const TextEditDocument&) = delete;
virtual wxTextCtrl* GetTextCtrl() const override;
wxDECLARE_DYNAMIC_CLASS(TextEditDocument);
};