]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/objstrm.h
some changes to make wxHtmlHelpController easier to subclass
[wxWidgets.git] / include / wx / objstrm.h
index a2fe96082cea9ed1fc3261cb1194a104a712c2e9..8d1970df1f10435d6568aac693c0731a91c563ac 100644 (file)
@@ -8,14 +8,17 @@
 // Copyright:   (c) 1998 Guilhem Lavaux
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
-#ifndef __WXOBJSTRM_H__
-#define __WXOBJSTRM_H__
+#ifndef _WX_WXOBJSTRM_H__
+#define _WX_WXOBJSTRM_H__
 
 #ifdef __GNUG__
 #pragma interface
 #endif
 
 #include "wx/defs.h"
+
+#if wxUSE_STREAMS && wxUSE_SERIAL
+
 #include "wx/object.h"
 #include "wx/string.h"
 #include "wx/stream.h"
 class wxObjectStreamInfo : public wxObject {
  public:
   wxString object_name;
-  int n_children;
+  int n_children, children_removed;
   wxList children;
-  wxObject *parent;
+  wxObjectStreamInfo *parent;
   wxObject *object;
+  bool duplicate, recall;
 };
 
 class wxObjectOutputStream : public wxFilterOutputStream {
  public:
   wxObjectOutputStream(wxOutputStream& s);
 
-  void AddChildren(wxObject *obj);
+  void AddChild(wxObject *obj);
   bool SaveObject(wxObject& obj);
 
   bool FirstStage() const { return m_stage == 0; }
@@ -49,14 +53,21 @@ class wxObjectOutputStream : public wxFilterOutputStream {
   int m_stage;
   bool m_saving;
   wxObjectStreamInfo *m_current_info;
+  wxList m_saved_objs;
 };
 
 class wxObjectInputStream : public wxFilterInputStream {
  public:
   wxObjectInputStream(wxInputStream& s);
 
+  bool SecondCall() const { return m_secondcall; }
+  void Recall(bool on = TRUE) { m_current_info->recall = on; }
+
   wxObject *GetChild(int no) const;
-  wxObject *GetParent() const { return m_current_info->parent; }
+  wxObject *GetChild();
+  int NumberOfChildren() const { return m_current_info->n_children; }
+  void RemoveChildren(int nb);
+  wxObject *GetParent() const;
   wxObject *LoadObject();
 
   wxObject *SolveName(const wxString& objName) const;
@@ -67,8 +78,13 @@ class wxObjectInputStream : public wxFilterInputStream {
   void ProcessObjectData(wxObjectStreamInfo *info);
 
  protected:
+  bool m_secondcall;
   wxObjectStreamInfo *m_current_info;
   wxList m_solver;
 };
 
 #endif
+  // wxUSE_STREAMS && wxUSE_SERIAL
+
+#endif
+// _WX_WXOBJSTRM_H__