]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/docview/doc.cpp
Some wx.* fixes
[wxWidgets.git] / samples / docview / doc.cpp
index 725d39d68548b9436efe74b28289d279d2ecdc04..7bee8496561806681d1d6c2b83088f8c14dde873 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -24,6 +24,9 @@
 #include "wx/wx.h"
 #endif
 #include "wx/txtstrm.h"
+#ifdef __WXMAC__
+#include "wx/filename.h"
+#endif
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
 #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
@@ -31,7 +34,6 @@
 
 #include "doc.h"
 #include "view.h"
-
 IMPLEMENT_DYNAMIC_CLASS(DrawingDocument, wxDocument)
 
 DrawingDocument::DrawingDocument(void)
@@ -40,7 +42,7 @@ DrawingDocument::DrawingDocument(void)
 
 DrawingDocument::~DrawingDocument(void)
 {
-    doodleSegments.DeleteContents(TRUE);
+    WX_CLEAR_LIST(wxList, doodleSegments);
 }
 
 #if wxUSE_STD_IOSTREAM
@@ -48,17 +50,17 @@ wxSTD ostream& DrawingDocument::SaveObject(wxSTD ostream& stream)
 {
     wxDocument::SaveObject(stream);
     
-    wxInt32 n = doodleSegments.Number();
+    wxInt32 n = doodleSegments.GetCount();
     stream << n << '\n';
     
-    wxNode *node = doodleSegments.First();
+    wxList::compatibility_iterator node = doodleSegments.GetFirst();
     while (node)
     {
-        DoodleSegment *segment = (DoodleSegment *)node->Data();
+        DoodleSegment *segment = (DoodleSegment *)node->GetData();
         segment->SaveObject(stream);
         stream << '\n';
         
-        node = node->Next();
+        node = node->GetNext();
     }
     
     return stream;
@@ -70,17 +72,17 @@ wxOutputStream& DrawingDocument::SaveObject(wxOutputStream& stream)
     
     wxTextOutputStream text_stream( stream );
     
-    wxInt32 n = doodleSegments.Number();
+    wxInt32 n = doodleSegments.GetCount();
     text_stream << n << '\n';
     
-    wxNode *node = doodleSegments.First();
+    wxList::compatibility_iterator node = doodleSegments.GetFirst();
     while (node)
     {
-        DoodleSegment *segment = (DoodleSegment *)node->Data();
+        DoodleSegment *segment = (DoodleSegment *)node->GetData();
         segment->SaveObject(stream);
         text_stream << '\n';
         
-        node = node->Next();
+        node = node->GetNext();
     }
     
     return stream;
@@ -131,10 +133,10 @@ DoodleSegment::DoodleSegment(void)
 
 DoodleSegment::DoodleSegment(DoodleSegment& seg)
 {
-    wxNode *node = seg.lines.First();
+    wxList::compatibility_iterator node = seg.lines.GetFirst();
     while (node)
     {
-        DoodleLine *line = (DoodleLine *)node->Data();
+        DoodleLine *line = (DoodleLine *)node->GetData();
         DoodleLine *newLine = new DoodleLine;
         newLine->x1 = line->x1;
         newLine->y1 = line->y1;
@@ -143,30 +145,30 @@ DoodleSegment::DoodleSegment(DoodleSegment& seg)
         
         lines.Append(newLine);
         
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
 DoodleSegment::~DoodleSegment(void)
 {
-    lines.DeleteContents(TRUE);
+    WX_CLEAR_LIST(wxList, lines);
 }
 
 #if wxUSE_STD_IOSTREAM
 wxSTD ostream& DoodleSegment::SaveObject(wxSTD ostream& stream)
 {
-    wxInt32 n = lines.Number();
+    wxInt32 n = lines.GetCount();
     stream << n << '\n';
     
-    wxNode *node = lines.First();
+    wxList::compatibility_iterator node = lines.GetFirst();
     while (node)
     {
-        DoodleLine *line = (DoodleLine *)node->Data();
+        DoodleLine *line = (DoodleLine *)node->GetData();
         stream << line->x1 << " " << 
             line->y1 << " " << 
             line->x2 << " " << 
             line->y2 << "\n";
-        node = node->Next();
+        node = node->GetNext();
     }
     
     return stream;
@@ -176,18 +178,18 @@ wxOutputStream &DoodleSegment::SaveObject(wxOutputStream& stream)
 {
     wxTextOutputStream text_stream( stream );
     
-    wxInt32 n = lines.Number();
-    text_stream << n << '\n';
+    wxInt32 n = lines.GetCount();
+    text_stream << n << _T('\n');
     
-    wxNode *node = lines.First();
+    wxList::compatibility_iterator node = lines.GetFirst();
     while (node)
     {
-        DoodleLine *line = (DoodleLine *)node->Data();
-        text_stream << line->x1 << " " << 
-            line->y1 << " " << 
-            line->x2 << " " << 
-            line->y2 << "\n";
-        node = node->Next();
+        DoodleLine *line = (DoodleLine *)node->GetData();
+        text_stream << line->x1 << _T(" ") << 
+            line->y1 << _T(" ") << 
+            line->x2 << _T(" ") << 
+            line->y2 << _T("\n");
+        node = node->GetNext();
     }
     
     return stream;
@@ -236,12 +238,12 @@ wxInputStream &DoodleSegment::LoadObject(wxInputStream& stream)
 
 void DoodleSegment::Draw(wxDC *dc)
 {
-    wxNode *node = lines.First();
+    wxList::compatibility_iterator node = lines.GetFirst();
     while (node)
     {
-        DoodleLine *line = (DoodleLine *)node->Data();
+        DoodleLine *line = (DoodleLine *)node->GetData();
         dc->DrawLine(line->x1, line->y1, line->x2, line->y2);
-        node = node->Next();
+        node = node->GetNext();
     }
 }
 
@@ -270,14 +272,14 @@ bool DrawingCommand::Do(void)
     case DOODLE_CUT:
         {
             // Cut the last segment
-            if (doc->GetDoodleSegments().Number() > 0)
+            if (doc->GetDoodleSegments().GetCount() > 0)
             {
-                wxNode *node = doc->GetDoodleSegments().Last();
+                wxList::compatibility_iterator node = doc->GetDoodleSegments().GetLast();
                 if (segment)
                     delete segment;
                 
-                segment = (DoodleSegment *)node->Data();
-                delete node;
+                segment = (DoodleSegment *)node->GetData();
+                doc->GetDoodleSegments().Erase(node);
                 
                 doc->Modify(TRUE);
                 doc->UpdateAllViews();
@@ -316,12 +318,12 @@ bool DrawingCommand::Undo(void)
     case DOODLE_ADD:
         {
             // Cut the last segment
-            if (doc->GetDoodleSegments().Number() > 0)
+            if (doc->GetDoodleSegments().GetCount() > 0)
             {
-                wxNode *node = doc->GetDoodleSegments().Last();
-                DoodleSegment *seg = (DoodleSegment *)node->Data();
+                wxList::compatibility_iterator node = doc->GetDoodleSegments().GetLast();
+                DoodleSegment *seg = (DoodleSegment *)node->GetData();
                 delete seg;
-                delete node;
+                doc->GetDoodleSegments().Erase(node);
                 
                 doc->Modify(TRUE);
                 doc->UpdateAllViews();
@@ -342,6 +344,10 @@ bool TextEditDocument::OnSaveDocument(const wxString& filename)
     if (!view->textsw->SaveFile(filename))
         return FALSE;
     Modify(FALSE);
+#ifdef __WXMAC__
+    wxFileName fn(filename) ;
+    fn.MacSetDefaultTypeAndCreator() ;
+#endif
     return TRUE;
 }