]> git.saurik.com Git - wxWidgets.git/commitdiff
DocView and wxStream things
authorRobert Roebling <robert@roebling.de>
Sun, 11 Jul 1999 19:29:59 +0000 (19:29 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 11 Jul 1999 19:29:59 +0000 (19:29 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/defs.h
samples/docview/doc.cpp
samples/docview/doc.h
src/common/docview.cpp

index c049542ebcd236517c7a63b0b1fd04845d1950da..947721ee8c8bc43e17159050dae05b9cc23179e4 100644 (file)
@@ -419,54 +419,54 @@ enum
 
 // fixed length types
 
-typedef  char    signed  wxInt8;
-typedef  char  unsigned  wxUint8;
+#define wxInt8    char    signed
+#define wxUint8   char  unsigned  
 
 #ifdef __WIN16__
-typedef  int     signed  wxInt16;
-typedef  int   unsigned  wxUint16;
-typedef  long    signed  wxInt32;
-typedef  long  unsigned  wxUint32;
+#define wxInt16    int    signed  
+#define wxUint16   int  unsigned  
+#define wxInt32   long    signed  
+#define wxUint32  long  unsigned  
 #endif
 
 #ifdef __WIN32__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#define wxInt16  short    signed  
+#define wxUint16 short  unsigned  
+#define wxInt32    int    signed  
+#define wxUint32   int  unsigned  
 #endif
 
 #ifdef __WXMAC__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#define wxInt16  short    signed  
+#define wxUint16 short  unsigned  
+#define wxInt32    int    signed  
+#define wxUint32   int  unsigned  
 #endif
 
 #ifdef __WXOS2__
-typedef  short   signed  wxInt16;
-typedef  short unsigned  wxUint16;
-typedef  int     signed  wxInt32;
-typedef  int   unsigned  wxUint32;
+#define wxInt16  short    signed  
+#define wxUint16 short  unsigned  
+#define wxInt32    int    signed  
+#define wxUint32   int  unsigned  
 #endif
 
 #if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__)
   #if defined(SIZEOF_INT)
     /* well, this shouldn't happen... */
-    typedef  short   signed  wxInt16;
-    typedef  short unsigned  wxUint16;
-    typedef  int     signed  wxInt32;
-    typedef  int   unsigned  wxUint32;
+    #define wxInt16  short    signed  
+    #define wxUint16 short  unsigned  
+    #define wxInt32    int    signed  
+    #define wxUint32   int  unsigned  
   #else
-    typedef  short   signed  wxInt16;
-    typedef  short unsigned  wxUint16;
-    typedef  int     signed  wxInt32;
-    typedef  int   unsigned  wxUint32;
+    #define wxInt16  short    signed  
+    #define wxUint16 short  unsigned  
+    #define wxInt32    int    signed  
+    #define wxUint32   int  unsigned  
   #endif
 #endif
 
-typedef  wxUint8         wxByte;
-typedef  wxUint16        wxWord;
+#define  wxByte   wxUint8
+#define  wxWord   wxUint16        
 
 // byte sex
 
index 23a531614357f20cd2df2d8a95c39a93ffe8eda6..fb915e6465f72b228c2aa6bf6d57a4cfbb84515d 100644 (file)
@@ -23,6 +23,7 @@
 #ifndef WX_PRECOMP
 #include "wx/wx.h"
 #endif
+#include "wx/txtstrm.h"
 
 #if !wxUSE_DOC_VIEW_ARCHITECTURE
 #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
@@ -42,6 +43,7 @@ DrawingDocument::~DrawingDocument(void)
   doodleSegments.DeleteContents(TRUE);
 }
 
+#if wxUSE_STD_IOSTREAM
 ostream& DrawingDocument::SaveObject(ostream& stream)
 {
   wxDocument::SaveObject(stream);
@@ -58,7 +60,30 @@ ostream& DrawingDocument::SaveObject(ostream& stream)
   }
   return stream;
 }
+#else
+bool DrawingDocument::SaveObject(wxOutputStream &stream)
+{
+  wxDocument::SaveObject(stream);
+  
+  wxTextOutputStream text_stream( stream );
 
+  wxInt32 n = doodleSegments.Number();
+  text_stream << n << "\n";
+  
+  wxNode *node = doodleSegments.First();
+  while (node)
+  {
+    DoodleSegment *segment = (DoodleSegment *)node->Data();
+    segment->SaveObject(stream);
+    text_stream << "\n";
+    
+    node = node->Next();
+  }
+  return TRUE;
+}
+#endif
+
+#if wxUSE_STD_IOSTREAM
 istream& DrawingDocument::LoadObject(istream& stream)
 {
   wxDocument::LoadObject(stream);
@@ -75,6 +100,26 @@ istream& DrawingDocument::LoadObject(istream& stream)
 
   return stream;
 }
+#else
+bool DrawingDocument::LoadObject(wxInputStream& stream)
+{
+  wxDocument::LoadObject(stream);
+
+  wxTextInputStream text_stream( stream );
+  
+  wxInt32 n = 0;
+  text_stream >> n;
+
+  for (int i = 0; i < n; i++)
+  {
+    DoodleSegment *segment = new DoodleSegment;
+    segment->LoadObject(stream);
+    doodleSegments.Append(segment);
+  }
+
+  return TRUE;
+}
+#endif
 
 DoodleSegment::DoodleSegment(void)
 {
@@ -103,6 +148,7 @@ DoodleSegment::~DoodleSegment(void)
   lines.DeleteContents(TRUE);
 }
 
+#if wxUSE_STD_IOSTREAM
 ostream& DoodleSegment::SaveObject(ostream& stream)
 {
   stream << lines.Number() << '\n';
@@ -115,7 +161,29 @@ ostream& DoodleSegment::SaveObject(ostream& stream)
   }
   return stream;
 }
+#else
+bool DoodleSegment::SaveObject(wxOutputStream& stream)
+{
+  wxTextOutputStream text_stream( stream );
+
+  wxInt32 n = lines.Number();
+  text_stream << n << "\n";
+  
+  wxNode *node = lines.First();
+  while (node)
+  {
+    DoodleLine *line = (DoodleLine *)node->Data();
+    text_stream << line->x1 << " " << 
+                   line->y1 << " " << 
+                  line->x2 << " " << 
+                  line->y2 << "\n";
+    node = node->Next();
+  }
+  return TRUE;
+}
+#endif
 
+#if wxUSE_STD_IOSTREAM
 istream& DoodleSegment::LoadObject(istream& stream)
 {
   int n = 0;
@@ -129,6 +197,26 @@ istream& DoodleSegment::LoadObject(istream& stream)
   }
   return stream;
 }
+#else
+bool DoodleSegment::LoadObject(wxInputStream& stream)
+{
+  wxTextInputStream text_stream( stream );
+  
+  wxInt32 n = 0;
+  text_stream >> n;
+
+  for (int i = 0; i < n; i++)
+  {
+    DoodleLine *line = new DoodleLine;
+    text_stream >> line->x1 >> 
+                   line->y1 >> 
+                  line->x2 >> 
+                  line->y2;
+    lines.Append(line);
+  }
+  return TRUE;
+}
+#endif
 
 void DoodleSegment::Draw(wxDC *dc)
 {
index a83b45c877114b88d964d5644673cb3390eb2a8d..55079678d43d90567ae8b537bfec211119254a75 100644 (file)
 class DoodleLine: public wxObject
 {
  public:
-  long x1;
-  long y1;
-  long x2;
-  long y2;
+  wxInt32 x1;
+  wxInt32 y1;
+  wxInt32 x2;
+  wxInt32 y2;
 };
 
 // Contains a list of lines: represents a mouse-down doodle
@@ -39,8 +39,14 @@ class DoodleSegment: public wxObject
   ~DoodleSegment(void);
 
   void Draw(wxDC *dc);
+#if wxUSE_STD_IOSTREAM
   ostream& SaveObject(ostream& stream);
   istream& LoadObject(istream& stream);
+#else
+  bool SaveObject(wxOutputStream& stream);
+  bool LoadObject(wxInputStream& stream);
+#endif
+
 };
 
 class DrawingDocument: public wxDocument
@@ -53,8 +59,13 @@ class DrawingDocument: public wxDocument
   DrawingDocument(void);
   ~DrawingDocument(void);
 
+#if wxUSE_STD_IOSTREAM
   ostream& SaveObject(ostream& stream);
   istream& LoadObject(istream& stream);
+#else
+  bool SaveObject(wxOutputStream& stream);
+  bool LoadObject(wxInputStream& stream);
+#endif
 
   inline wxList& GetDoodleSegments(void) const { return (wxList&) doodleSegments; };
 };
index 3834c2a2e7be2dbcd6e6e915c85f55e016ed44e6..a6687e39a6eb591034f0fc768267e769e82c4712 100644 (file)
@@ -285,7 +285,7 @@ bool wxDocument::OnSaveDocument(const wxString& file)
     if (store.fail() || store.bad())
 #else
     wxFileOutputStream store(file.fn_str());
-    if (store.LastError() == 0)
+    if (store.LastError() != 0)
 #endif
     {
         (void)wxMessageBox(_("Sorry, could not open this file for saving."), msgTitle, wxOK | wxICON_EXCLAMATION,
@@ -321,7 +321,7 @@ bool wxDocument::OnOpenDocument(const wxString& file)
     if (store.fail() || store.bad())
 #else
     wxFileInputStream store(file.fn_str());
-    if (store.LastError() == 0)
+    if (store.LastError() != 0)
 #endif
     {
         (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION,