7a4b9130e3
* Fixes: wxChoice (GTK), wxCheckBox (GTK) * Fixes: wxStream * wxObject calls wx*Serialize::LoadObject/StoreObject in StoreObject/LoadObject * Added support for dynamic library (Linux only, Windows will follow) * Added serbase.h (Serialization base defines and base object) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// 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
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#ifndef __WX_SERBASEH_H__
|
|
#define __WX_SERBASEH_H__
|
|
|
|
#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
|