1998-08-04 17:49:26 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: serbase.h
|
|
|
|
// Purpose: Serialization plug-ins
|
|
|
|
// Author: Guilhem Lavaux
|
|
|
|
// Modified by:
|
|
|
|
// Created: July 1998
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) Guilhem Lavaux
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
1998-08-15 00:23:28 +00:00
|
|
|
#ifndef _WX_WX_SERBASEH_H__
|
|
|
|
#define _WX_WX_SERBASEH_H__
|
1998-08-04 17:49:26 +00:00
|
|
|
|
|
|
|
#include <wx/dynlib.h>
|
|
|
|
|
|
|
|
#define WXSERIAL(classname) classname##_Serialize
|
|
|
|
|
|
|
|
class wxObject_Serialize : public wxObject {
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxObject_Serialize)
|
|
|
|
public:
|
|
|
|
wxObject_Serialize() {}
|
|
|
|
virtual ~wxObject_Serialize() {}
|
|
|
|
|
|
|
|
void SetObject(wxObject *obj) { m_object = obj; }
|
|
|
|
wxObject *Object() { return m_object; }
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxObject *m_object;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#define DECLARE_SERIAL_CLASS(classname, parent) \
|
|
|
|
class WXSERIAL(classname) : public WXSERIAL(parent) { \
|
|
|
|
DECLARE_DYNAMIC_CLASS(classname##_Serialize) \
|
|
|
|
public: \
|
|
|
|
WXSERIAL(classname)() { } \
|
|
|
|
virtual ~WXSERIAL(classname)() { } \
|
|
|
|
\
|
|
|
|
virtual void StoreObject(wxObjectOutputStream& stream); \
|
|
|
|
virtual void LoadObject(wxObjectInputStream& stream); \
|
|
|
|
};
|
|
|
|
|
|
|
|
#define DECLARE_ALIAS_SERIAL_CLASS(classname, parent) \
|
|
|
|
class WXSERIAL(classname) : public WXSERIAL(parent) { \
|
|
|
|
DECLARE_DYNAMIC_CLASS(classname##_Serialize) \
|
|
|
|
public: \
|
|
|
|
WXSERIAL(classname)() { } \
|
|
|
|
virtual ~WXSERIAL(classname)() { } \
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IMPLEMENT_SERIAL_CLASS(classname, parent) \
|
|
|
|
IMPLEMENT_DYNAMIC_CLASS(classname##_Serialize, parent##_Serialize)
|
|
|
|
|
|
|
|
#define IMPLEMENT_ALIAS_SERIAL_CLASS(classname, parent) \
|
|
|
|
IMPLEMENT_DYNAMIC_CLASS(classname##_Serialize, parent##_Serialize)
|
|
|
|
|
|
|
|
#endif
|