X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d602f1d8b65680306feff33241f1f9eced643826..abb69c6c82d61cf18f14270650a68896a3d8ed47:/include/wx/objstrm.h?ds=sidebyside diff --git a/include/wx/objstrm.h b/include/wx/objstrm.h index a2fe96082c..8d1970df1f 100644 --- a/include/wx/objstrm.h +++ b/include/wx/objstrm.h @@ -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" @@ -23,17 +26,18 @@ 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__