]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/docview/doc.cpp
[ 1936700 ] wxCAL_SHOW_WEEK_NUMBERS, slightly modified
[wxWidgets.git] / samples / docview / doc.cpp
index f4b5f587c4ad817bd046df8341f44f6430b76f71..dbf9d7ddad41ca04735789908fa1dfa1d94cc5ab 100644 (file)
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
-#include "wx/txtstrm.h"
 #ifdef __WXMAC__
 #include "wx/filename.h"
 #endif
 
+#if wxUSE_STD_IOSTREAM
+    #include "wx/ioswrap.h"
+#else
+    #include "wx/txtstrm.h"
+#endif
+
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
 #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
 #endif
@@ -34,7 +39,7 @@ IMPLEMENT_DYNAMIC_CLASS(DrawingDocument, wxDocument)
 
 DrawingDocument::~DrawingDocument(void)
 {
-    WX_CLEAR_LIST(wxList, doodleSegments);
+    WX_CLEAR_LIST(wxList, m_doodleSegments)
 }
 
 #if wxUSE_STD_IOSTREAM
@@ -42,10 +47,10 @@ wxSTD ostream& DrawingDocument::SaveObject(wxSTD ostream& stream)
 {
     wxDocument::SaveObject(stream);
 
-    wxInt32 n = doodleSegments.GetCount();
+    wxInt32 n = m_doodleSegments.GetCount();
     stream << n << '\n';
 
-    wxList::compatibility_iterator node = doodleSegments.GetFirst();
+    wxList::compatibility_iterator node = m_doodleSegments.GetFirst();
     while (node)
     {
         DoodleSegment *segment = (DoodleSegment *)node->GetData();
@@ -64,10 +69,10 @@ wxOutputStream& DrawingDocument::SaveObject(wxOutputStream& stream)
 
     wxTextOutputStream text_stream( stream );
 
-    wxInt32 n = doodleSegments.GetCount();
+    wxInt32 n = m_doodleSegments.GetCount();
     text_stream << n << '\n';
 
-    wxList::compatibility_iterator node = doodleSegments.GetFirst();
+    wxList::compatibility_iterator node = m_doodleSegments.GetFirst();
     while (node)
     {
         DoodleSegment *segment = (DoodleSegment *)node->GetData();
@@ -93,7 +98,7 @@ wxSTD istream& DrawingDocument::LoadObject(wxSTD istream& stream)
     {
         DoodleSegment *segment = new DoodleSegment;
         segment->LoadObject(stream);
-        doodleSegments.Append(segment);
+        m_doodleSegments.Append(segment);
     }
 
     return stream;
@@ -112,16 +117,16 @@ wxInputStream& DrawingDocument::LoadObject(wxInputStream& stream)
     {
         DoodleSegment *segment = new DoodleSegment;
         segment->LoadObject(stream);
-        doodleSegments.Append(segment);
+        m_doodleSegments.Append(segment);
     }
 
     return stream;
 }
 #endif
 
-DoodleSegment::DoodleSegment(DoodleSegment& seg):wxObject()
+DoodleSegment::DoodleSegment(const DoodleSegment& seg):wxObject()
 {
-    wxList::compatibility_iterator node = seg.lines.GetFirst();
+    wxList::compatibility_iterator node = seg.m_lines.GetFirst();
     while (node)
     {
         DoodleLine *line = (DoodleLine *)node->GetData();
@@ -131,7 +136,7 @@ DoodleSegment::DoodleSegment(DoodleSegment& seg):wxObject()
         newLine->x2 = line->x2;
         newLine->y2 = line->y2;
 
-        lines.Append(newLine);
+        m_lines.Append(newLine);
 
         node = node->GetNext();
     }
@@ -139,16 +144,16 @@ DoodleSegment::DoodleSegment(DoodleSegment& seg):wxObject()
 
 DoodleSegment::~DoodleSegment(void)
 {
-    WX_CLEAR_LIST(wxList, lines);
+    WX_CLEAR_LIST(wxList, m_lines)
 }
 
 #if wxUSE_STD_IOSTREAM
 wxSTD ostream& DoodleSegment::SaveObject(wxSTD ostream& stream)
 {
-    wxInt32 n = lines.GetCount();
+    wxInt32 n = m_lines.GetCount();
     stream << n << '\n';
 
-    wxList::compatibility_iterator node = lines.GetFirst();
+    wxList::compatibility_iterator node = m_lines.GetFirst();
     while (node)
     {
         DoodleLine *line = (DoodleLine *)node->GetData();
@@ -166,17 +171,17 @@ wxOutputStream &DoodleSegment::SaveObject(wxOutputStream& stream)
 {
     wxTextOutputStream text_stream( stream );
 
-    wxInt32 n = lines.GetCount();
-    text_stream << n << _T('\n');
+    wxInt32 n = m_lines.GetCount();
+    text_stream << n << wxT("\n");
 
-    wxList::compatibility_iterator node = lines.GetFirst();
+    wxList::compatibility_iterator node = m_lines.GetFirst();
     while (node)
     {
-        DoodleLine *line = (DoodleLine *)node->GetData();
-        text_stream << line->x1 << _T(" ") <<
-            line->y1 << _T(" ") <<
-            line->x2 << _T(" ") <<
-            line->y2 << _T("\n");
+        DoodleLine* line = (DoodleLine*)node->GetData();
+        text_stream << line->x1 << wxT(" ") <<
+            line->y1 << wxT(" ") <<
+            line->x2 << wxT(" ") <<
+            line->y2 << wxT("\n");
         node = node->GetNext();
     }
 
@@ -197,7 +202,7 @@ wxSTD istream& DoodleSegment::LoadObject(wxSTD istream& stream)
             line->y1 >>
             line->x2 >>
             line->y2;
-        lines.Append(line);
+        m_lines.Append(line);
     }
 
     return stream;
@@ -217,7 +222,7 @@ wxInputStream &DoodleSegment::LoadObject(wxInputStream& stream)
             line->y1 >>
             line->x2 >>
             line->y2;
-        lines.Append(line);
+        m_lines.Append(line);
     }
 
     return stream;
@@ -226,7 +231,7 @@ wxInputStream &DoodleSegment::LoadObject(wxInputStream& stream)
 
 void DoodleSegment::Draw(wxDC *dc)
 {
-    wxList::compatibility_iterator node = lines.GetFirst();
+    wxList::compatibility_iterator node = m_lines.GetFirst();
     while (node)
     {
         DoodleLine *line = (DoodleLine *)node->GetData();
@@ -239,46 +244,46 @@ void DoodleSegment::Draw(wxDC *dc)
 * Implementation of drawing command
 */
 
-DrawingCommand::DrawingCommand(const wxString& name, int command, DrawingDocument *ddoc, DoodleSegment *seg):
-wxCommand(true, name)
+DrawingCommand::DrawingCommand(const wxString& name, int command, DrawingDocument* doc, DoodleSegment* seg) :
+    wxCommand(true, name)
 {
-    doc = ddoc;
-    segment = seg;
-    cmd = command;
+    m_doc = doc;
+    m_segment = seg;
+    m_cmd = command;
 }
 
 DrawingCommand::~DrawingCommand(void)
 {
-    if (segment)
-        delete segment;
+    if (m_segment)
+        delete m_segment;
 }
 
 bool DrawingCommand::Do(void)
 {
-    switch (cmd)
+    switch (m_cmd)
     {
     case DOODLE_CUT:
         {
             // Cut the last segment
-            if (doc->GetDoodleSegments().GetCount() > 0)
+            if (m_doc->GetDoodleSegments().GetCount() > 0)
             {
-                wxList::compatibility_iterator node = doc->GetDoodleSegments().GetLast();
-                if (segment)
-                    delete segment;
+                wxList::compatibility_iterator node = m_doc->GetDoodleSegments().GetLast();
+                if (m_segment)
+                    delete m_segment;
 
-                segment = (DoodleSegment *)node->GetData();
-                doc->GetDoodleSegments().Erase(node);
+                m_segment = (DoodleSegment*)node->GetData();
+                m_doc->GetDoodleSegments().Erase(node);
 
-                doc->Modify(true);
-                doc->UpdateAllViews();
+                m_doc->Modify(true);
+                m_doc->UpdateAllViews();
             }
             break;
         }
     case DOODLE_ADD:
         {
-            doc->GetDoodleSegments().Append(new DoodleSegment(*segment));
-            doc->Modify(true);
-            doc->UpdateAllViews();
+            m_doc->GetDoodleSegments().Append(new DoodleSegment(*m_segment));
+            m_doc->Modify(true);
+            m_doc->UpdateAllViews();
             break;
         }
     }
@@ -287,34 +292,34 @@ bool DrawingCommand::Do(void)
 
 bool DrawingCommand::Undo(void)
 {
-    switch (cmd)
+    switch (m_cmd)
     {
     case DOODLE_CUT:
         {
             // Paste the segment
-            if (segment)
+            if (m_segment)
             {
-                doc->GetDoodleSegments().Append(segment);
-                doc->Modify(true);
-                doc->UpdateAllViews();
-                segment = (DoodleSegment *) NULL;
+                m_doc->GetDoodleSegments().Append(m_segment);
+                m_doc->Modify(true);
+                m_doc->UpdateAllViews();
+                m_segment = NULL;
             }
-            doc->Modify(true);
-            doc->UpdateAllViews();
+            m_doc->Modify(true);
+            m_doc->UpdateAllViews();
             break;
         }
     case DOODLE_ADD:
         {
             // Cut the last segment
-            if (doc->GetDoodleSegments().GetCount() > 0)
+            if (m_doc->GetDoodleSegments().GetCount() > 0)
             {
-                wxList::compatibility_iterator node = doc->GetDoodleSegments().GetLast();
-                DoodleSegment *seg = (DoodleSegment *)node->GetData();
+                wxList::compatibility_iterator node = m_doc->GetDoodleSegments().GetLast();
+                DoodleSegment* seg = (DoodleSegment*)node->GetData();
                 delete seg;
-                doc->GetDoodleSegments().Erase(node);
+                m_doc->GetDoodleSegments().Erase(node);
 
-                doc->Modify(true);
-                doc->UpdateAllViews();
+                m_doc->Modify(true);
+                m_doc->UpdateAllViews();
             }
         }
     }
@@ -327,9 +332,9 @@ IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument)
 // we override OnSave/OpenDocument instead of Save/LoadObject
 bool TextEditDocument::OnSaveDocument(const wxString& filename)
 {
-    TextEditView *view = (TextEditView *)GetFirstView();
+    TextEditView* view = GetFirstView();
 
-    if (!view->textsw->SaveFile(filename))
+    if (!view->m_textsw->SaveFile(filename))
         return false;
     Modify(false);
 #ifdef __WXMAC__
@@ -341,8 +346,8 @@ bool TextEditDocument::OnSaveDocument(const wxString& filename)
 
 bool TextEditDocument::OnOpenDocument(const wxString& filename)
 {
-    TextEditView *view = (TextEditView *)GetFirstView();
-    if (!view->textsw->LoadFile(filename))
+    TextEditView* view = GetFirstView();
+    if (!view->m_textsw->LoadFile(filename))
         return false;
 
     SetFilename(filename, true);
@@ -353,21 +358,23 @@ bool TextEditDocument::OnOpenDocument(const wxString& filename)
 
 bool TextEditDocument::IsModified(void) const
 {
-    TextEditView *view = (TextEditView *)GetFirstView();
-    if (view)
-    {
-        return (wxDocument::IsModified() || view->textsw->IsModified());
-    }
-    else
-        return wxDocument::IsModified();
+    TextEditView* view = GetFirstView();
+    return (wxDocument::IsModified() || (view && view->m_textsw->IsModified()));
 }
 
 void TextEditDocument::Modify(bool mod)
 {
-    TextEditView *view = (TextEditView *)GetFirstView();
+    TextEditView* view = GetFirstView();
 
     wxDocument::Modify(mod);
 
-    if (!mod && view && view->textsw)
-        view->textsw->DiscardEdits();
+    if (!mod && view && view->m_textsw)
+        view->m_textsw->DiscardEdits();
 }
+
+TextEditView* TextEditDocument::GetFirstView() const
+{
+   wxView* view = wxDocument::GetFirstView();
+   return view ? wxStaticCast(view, TextEditView) : NULL;
+}
+