]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/objstrm.cpp
controls can now be put in the toolbars (MSW only so far, preliminary version)
[wxWidgets.git] / src / common / objstrm.cpp
index 824cd28fa666acbfbb802ab8b34e720221a0cf1a..0488a6b90d3c7a46106de747988e2f858f92675b 100644 (file)
 #pragma implementation "objstrm.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+  #pragma hdrstop
+#endif
+
+#if wxUSE_SERIAL && wxUSE_STREAMS
+
 #include "wx/object.h"
 #include "wx/objstrm.h"
 #include "wx/datstrm.h"
@@ -36,7 +45,7 @@ wxString wxObjectOutputStream::GetObjectName(wxObject *obj)
 {
   wxString name;
 
-  name.Printf("%x", (unsigned long)obj);
+  name.Printf(wxT("%x"), (unsigned long)obj);
   return name;
 }
 
@@ -49,13 +58,16 @@ void wxObjectOutputStream::WriteObjectDef(wxObjectStreamInfo& info)
   if (info.duplicate) {
     data_s.WriteString(TAG_DUPLICATE_OBJECT);
     data_s.WriteString(GetObjectName(info.object));
+    wxPrintf(wxT("info.object (dup %s)\n"), info.object->GetClassInfo()->GetClassName());
     return;
   }
 
   if (info.object) {
     data_s.WriteString(info.object->GetClassInfo()->GetClassName());
+    wxPrintf(wxT("info.object (%s)\n"), info.object->GetClassInfo()->GetClassName());
   } else {
     data_s.WriteString(TAG_EMPTY_OBJECT);
+    wxPrintf(wxT("info.object (NULL)\n"));
     return;
   }
 
@@ -160,6 +172,7 @@ bool wxObjectOutputStream::SaveObject(wxObject& obj)
 wxObjectInputStream::wxObjectInputStream(wxInputStream& s)
   : wxFilterInputStream(s)
 {
+  m_secondcall = FALSE;
 }
 
 wxObject *wxObjectInputStream::SolveName(const wxString& name) const
@@ -200,7 +213,7 @@ wxObject *wxObjectInputStream::GetChild(int no) const
   wxObjectStreamInfo *info;
 
   if (m_current_info->children_removed >= m_current_info->n_children)
-    return NULL;
+    return (wxObject *) NULL;
 
   node = m_current_info->children.Nth(m_current_info->children_removed+no);
 
@@ -230,13 +243,13 @@ bool wxObjectInputStream::ReadObjectDef(wxObjectStreamInfo *info)
 
   class_name = data_s.ReadString();
   info->children_removed = 0;
+  info->n_children = 0;
 
   if (class_name == TAG_EMPTY_OBJECT)
     info->object = (wxObject *) NULL;
   else if (class_name == TAG_DUPLICATE_OBJECT) {
     info->object_name = data_s.ReadString();
     info->object = SolveName(info->object_name);
-    info->n_children = 0;
   } else {
     info->object_name = data_s.ReadString();
     info->object = wxCreateDynamicObject( WXSTRINGCAST class_name);
@@ -307,3 +320,6 @@ wxObject *wxObjectInputStream::LoadObject()
 
   return object;
 }
+
+#endif
+