#if wxUSE_EXTENDED_RTTI
const int wxInvalidObjectID = -2 ;
-const int wxNullObjectID = -1 ;
+const int wxNullObjectID = -3 ;
// Filer contains the interfaces for streaming objects in and out of XML,
// rendering them either to objects in memory, or to code. Note: We
// will be called before a property gets written, may change the value , eg replace a concrete wxSize by wxSize( -1 , -1 ) or veto
// writing that property at all by returning false
- virtual bool BeforeWriteProperty( wxWriter *WXUNUSED(writer) , const wxPropertyInfo *WXUNUSED(propInfo) , wxxVariant &WXUNUSED(value) ) { return true ; }
+ virtual bool BeforeWriteProperty( wxWriter *WXUNUSED(writer) , const wxObject *WXUNUSED(object), const wxPropertyInfo *WXUNUSED(propInfo) , wxxVariant &WXUNUSED(value) ) { return true ; }
// will be called before a property gets written, may change the value , eg replace a concrete wxSize by wxSize( -1 , -1 ) or veto
// writing that property at all by returning false
- virtual bool BeforeWriteProperty( wxWriter *WXUNUSED(writer) , const wxPropertyInfo *WXUNUSED(propInfo) , wxxVariantArray &WXUNUSED(value) ) { return true ; }
+ virtual bool BeforeWriteProperty( wxWriter *WXUNUSED(writer) , const wxObject *WXUNUSED(object), const wxPropertyInfo *WXUNUSED(propInfo) , wxxVariantArray &WXUNUSED(value) ) { return true ; }
// will be called after a property has been written out, may be needed for adjusting stacks
virtual void AfterWriteProperty( wxWriter *WXUNUSED(writer) , const wxPropertyInfo *WXUNUSED(propInfo) ) {}
// Reads the component the reader is pointed at from the underlying format.
// The return value is the root object ID, which can
// then be used to ask the depersister about that object
+ // if there was a problem you will get back wxInvalidObjectID and the current
+ // error log will carry the problems encoutered
virtual int ReadObject( const wxString &name , wxDepersister *depersist ) = 0 ;
private :
const wxClassInfo **objectClassInfos ,
wxxVariantArray &metadata) = 0;
+ // construct the new object on the heap, that object will have the passed in ID (for objects that
+ // don't support allocate-create type of creation)
+ // creation parameters which are objects are having their Ids passed in objectIDValues
+ // having objectId <> wxInvalidObjectID
+
+ virtual void ConstructObject(int objectID,
+ const wxClassInfo *classInfo,
+ int paramCount,
+ wxxVariant *VariantValues ,
+ int *objectIDValues ,
+ const wxClassInfo **objectClassInfos ,
+ wxxVariantArray &metadata) = 0;
+
// destroy the heap-allocated object having the ID objectID, this may be used if an object
// is embedded in another object and set via value semantics, so the intermediate
// object can be destroyed after safely
// sets the corresponding event handler
virtual void SetConnect(int EventSourceObjectID,
const wxClassInfo *EventSourceClassInfo,
- const wxDelegateTypeInfo *delegateInfo ,
+ const wxPropertyInfo *delegateInfo ,
const wxClassInfo *EventSinkClassInfo ,
const wxHandlerInfo* handlerInfo ,
int EventSinkObjectID ) = 0;
wxxVariantArray &metadata
) ;
+ // construct the new object on the heap, that object will have the passed in ID (for objects that
+ // don't support allocate-create type of creation)
+ // creation parameters which are objects are having their Ids passed in objectIDValues
+ // having objectId <> wxInvalidObjectID
+
+ virtual void ConstructObject(int objectID,
+ const wxClassInfo *classInfo,
+ int paramCount,
+ wxxVariant *VariantValues ,
+ int *objectIDValues ,
+ const wxClassInfo **objectClassInfos ,
+ wxxVariantArray &metadata) ;
+
// destroy the heap-allocated object having the ID objectID, this may be used if an object
// is embedded in another object and set via value semantics, so the intermediate
// object can be destroyed after safely
// sets the corresponding event handler
virtual void SetConnect(int eventSourceObjectID,
const wxClassInfo *eventSourceClassInfo,
- const wxDelegateTypeInfo *delegateInfo ,
+ const wxPropertyInfo *delegateInfo ,
const wxClassInfo *eventSinkClassInfo ,
const wxHandlerInfo* handlerInfo ,
int eventSinkObjectID ) ;
wxxVariantArray &metadata
) ;
+ // construct the new object on the heap, that object will have the passed in ID (for objects that
+ // don't support allocate-create type of creation)
+ // creation parameters which are objects are having their Ids passed in objectIDValues
+ // having objectId <> wxInvalidObjectID
+
+ virtual void ConstructObject(int objectID,
+ const wxClassInfo *classInfo,
+ int paramCount,
+ wxxVariant *VariantValues ,
+ int *objectIDValues ,
+ const wxClassInfo **objectClassInfos ,
+ wxxVariantArray &metadata) ;
+
// destroy the heap-allocated object having the ID objectID, this may be used if an object
// is embedded in another object and set via value semantics, so the intermediate
// object can be destroyed after safely
// sets the corresponding event handler
virtual void SetConnect(int eventSourceObjectID,
const wxClassInfo *eventSourceClassInfo,
- const wxDelegateTypeInfo *delegateInfo ,
+ const wxPropertyInfo *delegateInfo ,
const wxClassInfo *eventSinkClassInfo ,
const wxHandlerInfo* handlerInfo ,
int eventSinkObjectID ) ;