#if wxUSE_EXTENDED_RTTI
+#include "wx/beforestd.h"
#include <map>
#include <string>
+#include "wx/afterstd.h"
using namespace std ;
return &s_typeInfo ;
}
+template<> const wxTypeInfo* wxGetTypeInfo( wxWindowList * )
+{
+ static wxCollectionTypeInfo s_typeInfo( (wxTypeInfo*) wxGetTypeInfo( (wxWindow **) NULL) ) ;
+ return &s_typeInfo ;
+}
+
// this are compiler induced specialization which are never used anywhere
WX_ILLEGAL_TYPE_SPECIALIZATION( char const * )
return accessor->GetProperty(object);
}
+wxxVariantArray wxClassInfo::GetPropertyCollection(wxObject *object, const wxChar *propertyName) const
+{
+ const wxPropertyAccessor *accessor;
+
+ accessor = FindAccessor(propertyName);
+ wxASSERT(accessor->HasGetter());
+ return accessor->GetPropertyCollection(object);
+}
+
+void wxClassInfo::AddToPropertyCollection(wxObject *object, const wxChar *propertyName , const wxxVariant& value) const
+{
+ const wxPropertyAccessor *accessor;
+
+ accessor = FindAccessor(propertyName);
+ wxASSERT(accessor->HasAdder());
+ accessor->AddToPropertyCollection( object , value ) ;
+}
+
/*
VARIANT TO OBJECT
*/
delete[] GetParents() ;
}
-wxObject *wxDynamicClassInfo::CreateObject() const
+wxObject *wxDynamicClassInfo::AllocateObject() const
{
- wxObject* parent = GetParents()[0]->CreateObject() ;
+ wxObject* parent = GetParents()[0]->AllocateObject() ;
return new wxDynamicObject( parent , this ) ;
}
void wxDynamicClassInfo::AddProperty( const wxChar *propertyName , const wxTypeInfo* typeInfo )
{
- new wxPropertyInfo( m_firstProperty , propertyName , "" , typeInfo , new wxGenericPropertyAccessor( propertyName ) , wxxVariant() ) ;
+ new wxPropertyInfo( m_firstProperty , propertyName , typeInfo , new wxGenericPropertyAccessor( propertyName ) , wxxVariant() ) ;
}
void wxDynamicClassInfo::AddHandler( const wxChar *handlerName , wxObjectEventFunction address , const wxClassInfo* eventClassInfo )