mirror of
https://github.com/wxWidgets/wxWidgets.git
synced 2026-09-27 10:44:21 +08:00
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:
+9
-15
@@ -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
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user