- callbacks->SetPropertyAsObject( objectID , classInfo , pi , valueId ) ;
- if ( pi->GetTypeInfo()->GetKind() == wxT_OBJECT && valueId != wxNullObjectID )
- callbacks->DestroyObject( valueId , GetObjectClassInfo( valueId ) ) ;
+ if ( prop->GetName() == wxT("object") )
+ {
+ int valueId = ReadComponent( prop, callbacks );
+ if ( valueId != wxInvalidObjectID )
+ {
+ callbacks->SetPropertyAsObject( objectID, classInfo, pi, valueId );
+ if ( pi->GetTypeInfo()->GetKind() == wxT_OBJECT && valueId != wxNullObjectID )
+ callbacks->DestroyObject( valueId, GetObjectClassInfo( valueId ) );
+ }
+ }
+ else
+ {
+ wxASSERT( pi->GetTypeInfo()->HasStringConverters() );
+ wxAny nodeval = ReadValue( prop, pi->GetTypeInfo() );
+ callbacks->SetProperty( objectID, classInfo,pi, nodeval );
+ }