X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d1df0fc585f03cca4b194d1f9159b49a5711da6..0fe243db0c0447b69917eaa6d3a0e32743229638:/samples/docview/doc.cpp diff --git a/samples/docview/doc.cpp b/samples/docview/doc.cpp index 1f1715d781..f43bbb1c13 100644 --- a/samples/docview/doc.cpp +++ b/samples/docview/doc.cpp @@ -44,25 +44,37 @@ IMPLEMENT_DYNAMIC_CLASS(DrawingDocument, wxDocument) -DocumentOstream& DrawingDocument::SaveObject(DocumentOstream& stream) +DocumentOstream& DrawingDocument::SaveObject(DocumentOstream& ostream) { - wxDocument::SaveObject(stream); +#if wxUSE_STD_IOSTREAM + DocumentOstream& stream = ostream; +#else + wxTextOutputStream stream(ostream); +#endif + + wxDocument::SaveObject(ostream); const wxInt32 count = m_doodleSegments.size(); stream << count << '\n'; for ( int n = 0; n < count; n++ ) { - m_doodleSegments[n].SaveObject(stream); + m_doodleSegments[n].SaveObject(ostream); stream << '\n'; } - return stream; + return ostream; } -DocumentIstream& DrawingDocument::LoadObject(DocumentIstream& stream) +DocumentIstream& DrawingDocument::LoadObject(DocumentIstream& istream) { - wxDocument::LoadObject(stream); +#if wxUSE_STD_IOSTREAM + DocumentIstream& stream = istream; +#else + wxTextInputStream stream(istream); +#endif + + wxDocument::LoadObject(istream); wxInt32 count = 0; stream >> count; @@ -70,11 +82,11 @@ DocumentIstream& DrawingDocument::LoadObject(DocumentIstream& stream) for ( int n = 0; n < count; n++ ) { DoodleSegment segment; - segment.LoadObject(stream); + segment.LoadObject(istream); m_doodleSegments.push_back(segment); } - return stream; + return istream; } void DrawingDocument::DoUpdate() @@ -130,7 +142,7 @@ DocumentOstream& DoodleSegment::SaveObject(DocumentOstream& ostream) << line.y2 << '\n'; } - return stream; + return ostream; } DocumentIstream& DoodleSegment::LoadObject(DocumentIstream& istream) @@ -155,46 +167,52 @@ DocumentIstream& DoodleSegment::LoadObject(DocumentIstream& istream) m_lines.push_back(line); } - return stream; + return istream; } // ---------------------------------------------------------------------------- -// TextEditDocument implementation +// wxTextDocument: wxDocument and wxTextCtrl married // ---------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument) +IMPLEMENT_CLASS(wxTextDocument, wxDocument) // Since text windows have their own method for saving to/loading from files, // we override DoSave/OpenDocument instead of Save/LoadObject -bool TextEditDocument::DoSaveDocument(const wxString& filename) +bool wxTextDocument::DoSaveDocument(const wxString& filename) { - return GetFirstView()->GetText()->SaveFile(filename); + return GetTextCtrl()->SaveFile(filename); } -bool TextEditDocument::DoOpenDocument(const wxString& filename) +bool wxTextDocument::DoOpenDocument(const wxString& filename) { - return GetFirstView()->GetText()->LoadFile(filename); + return GetTextCtrl()->LoadFile(filename); } -bool TextEditDocument::IsModified() const +bool wxTextDocument::IsModified() const { - TextEditView* view = GetFirstView(); - return wxDocument::IsModified() || (view && view->GetText()->IsModified()); + wxTextCtrl* wnd = GetTextCtrl(); + return wxDocument::IsModified() || (wnd && wnd->IsModified()); } -void TextEditDocument::Modify(bool modified) +void wxTextDocument::Modify(bool modified) { - TextEditView* view = GetFirstView(); - wxDocument::Modify(modified); - if ( !modified && view && view->GetText() ) - view->GetText()->DiscardEdits(); + wxTextCtrl* wnd = GetTextCtrl(); + if (wnd && !modified) + { + wnd->DiscardEdits(); + } } -TextEditView* TextEditDocument::GetFirstView() const +// ---------------------------------------------------------------------------- +// TextEditDocument implementation +// ---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument) + +wxTextCtrl* TextEditDocument::GetTextCtrl() const { - wxView* view = wxDocument::GetFirstView(); - return view ? wxStaticCast(view, TextEditView) : NULL; + wxView* view = GetFirstView(); + return view ? wxStaticCast(view, TextEditView)->GetText() : NULL; } -