#define EMPTY_MACROVALUE /**/
-class WXDLLIMPEXP_BASE wxObject;
-class WXDLLIMPEXP_BASE wxClassInfo;
-class WXDLLIMPEXP_BASE wxDynamicClassInfo;
-class WXDLLIMPEXP_BASE wxHashTable;
-class WXDLLIMPEXP_BASE wxObjectRefData;
-class WXDLLIMPEXP_BASE wxEvent;
-class WXDLLIMPEXP_BASE wxEvtHandler;
+class WXDLLIMPEXP_FWD_BASE wxObject;
+class WXDLLIMPEXP_FWD_BASE wxClassInfo;
+class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo;
+class WXDLLIMPEXP_FWD_BASE wxHashTable;
+class WXDLLIMPEXP_FWD_BASE wxHashTable_Node;
+class WXDLLIMPEXP_FWD_BASE wxObjectRefData;
+class WXDLLIMPEXP_FWD_BASE wxEvent;
+class WXDLLIMPEXP_FWD_BASE wxEvtHandler;
typedef void (wxObject::*wxObjectEventFunction)(wxEvent&);
wxT_LAST_TYPE_KIND = wxT_DELEGATE // sentinel for bad data, asserts, debugging
};
-class WXDLLIMPEXP_BASE wxxVariant ;
-class WXDLLIMPEXP_BASE wxTypeInfo ;
+class WXDLLIMPEXP_FWD_BASE wxxVariant ;
+class WXDLLIMPEXP_FWD_BASE wxTypeInfo ;
WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo* , wxTypeInfoMap , class WXDLLIMPEXP_BASE ) ;
class WXDLLIMPEXP_BASE wxPropertyInfo
{
- friend class WXDLLIMPEXP_BASE wxDynamicClassInfo ;
+ friend class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo ;
public :
wxPropertyInfo(wxPropertyInfo* &iter,
wxClassInfo* itsClass,
class WXDLLIMPEXP_BASE wxHandlerInfo
{
- friend class WXDLLIMPEXP_BASE wxDynamicClassInfo ;
+ friend class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo ;
public :
wxHandlerInfo(wxHandlerInfo* &iter,
wxClassInfo* itsClass,
typedef wxObject* (*wxVariantToObjectConverter)( wxxVariant &data ) ;
typedef wxxVariant (*wxObjectToVariantConverter)( wxObject* ) ;
-class WXDLLIMPEXP_BASE wxWriter;
-class WXDLLIMPEXP_BASE wxPersister;
+class WXDLLIMPEXP_FWD_BASE wxWriter;
+class WXDLLIMPEXP_FWD_BASE wxPersister;
typedef bool (*wxObjectStreamingCallback) ( const wxObject *, wxWriter * , wxPersister * , wxxVariantArray & ) ;
class WXDLLIMPEXP_BASE wxClassInfo
{
- friend class WXDLLIMPEXP_BASE wxPropertyInfo ;
- friend class WXDLLIMPEXP_BASE wxHandlerInfo ;
+ friend class WXDLLIMPEXP_FWD_BASE wxPropertyInfo ;
+ friend class WXDLLIMPEXP_FWD_BASE wxHandlerInfo ;
+ friend wxObject *wxCreateDynamicObject(const wxString& name);
public:
wxClassInfo(const wxClassInfo **_Parents,
const wxChar *_UnitName,
wxObjectConstructorFn GetConstructor() const { return m_objectConstructor; }
static const wxClassInfo *GetFirst() { return sm_first; }
const wxClassInfo *GetNext() const { return m_next; }
- static wxClassInfo *FindClass(const wxChar *className);
+ static wxClassInfo *FindClass(const wxString& className);
// Climb upwards through inheritance hierarchy.
// Dual inheritance is catered for.
return false ;
}
+ DECLARE_CLASS_INFO_ITERATORS()
+
// if there is a callback registered with that class it will be called
// before this object will be written to disk, it can veto streaming out
// this object by returning false, if this class has not registered a
// puts all the properties of this class and its superclasses in the map, as long as there is not yet
// an entry with the same name (overriding mechanism)
void GetProperties( wxPropertyInfoMap &map ) const ;
-public:
+private:
const wxChar *m_className;
int m_objectSize;
wxObjectConstructorFn m_objectConstructor;
static wxClassInfo *sm_first;
wxClassInfo *m_next;
- // FIXME: this should be private (currently used directly by way too
- // many clients)
static wxHashTable *sm_classTable;
protected :
};
-WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxChar *name);
+WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxString& name);
// ----------------------------------------------------------------------------
// wxDynamicObject
class WXDLLIMPEXP_BASE wxDynamicClassInfo : public wxClassInfo
{
- friend class WXDLLIMPEXP_BASE wxDynamicObject ;
+ friend class WXDLLIMPEXP_FWD_BASE wxDynamicObject ;
public :
wxDynamicClassInfo( const wxChar *_UnitName, const wxChar *_ClassName , const wxClassInfo* superClass ) ;
virtual ~wxDynamicClassInfo() ;