-#define WX_HIDE_PROPERTY( name ) \
- static wxPropertyInfo _propertyInfo##name( first , class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (void*) NULL ) ,NULL , wxxVariant() , wxPROP_DONT_STREAM , wxEmptyString , wxEmptyString ) ;
-
-#define WX_PROPERTY( name , type , setter , getter ,defaultValue , flags , help , group) \
- WX_SETTER( name , class_t , type , setter ) \
- static wxSetter##name _setter##name ; \
- WX_GETTER( name , class_t , type , getter ) \
- static wxGetter##name _getter##name ; \
- static wxPropertyAccessor _accessor##name( &_setter##name , &_getter##name , NULL , NULL ) ; \
- static wxPropertyInfo _propertyInfo##name( first , class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue) , flags , group , help ) ;
-
-#define WX_PROPERTY_FLAGS( name , flags , type , setter , getter ,defaultValue , pflags , help , group) \
- WX_SETTER( name , class_t , type , setter ) \
- static wxSetter##name _setter##name ; \
- WX_GETTER( name , class_t , type , getter ) \
- static wxGetter##name _getter##name ; \
- static wxPropertyAccessor _accessor##name( &_setter##name , &_getter##name , NULL , NULL ) ; \
- static wxPropertyInfo _propertyInfo##name( first , class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (flags*) NULL ) ,&_accessor##name , wxxVariant(defaultValue), wxPROP_ENUM_STORE_LONG | pflags , help , group ) ;
-
-#define WX_READONLY_PROPERTY( name , type , getter ,defaultValue , flags , help , group) \
- WX_GETTER( name , class_t , type , getter ) \
- static wxGetter##name _getter##name ; \
- static wxPropertyAccessor _accessor##name( NULL , &_getter##name , NULL , NULL ) ; \
- static wxPropertyInfo _propertyInfo##name( first , class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue), flags , help , group ) ;
-
-#define WX_PROPERTY_COLLECTION( name , colltype , addelemtype , adder , getter , flags , help , group ) \
- WX_ADDER( name , class_t , addelemtype , adder ) \
- static wxAdder##name _adder##name ; \
- WX_COLLECTION_GETTER( name , class_t , colltype , getter ) \
- static wxCollectionGetter##name _collectionGetter##name ; \
- static wxPropertyAccessor _accessor##name( NULL , NULL ,&_adder##name , &_collectionGetter##name ) ; \
- static wxPropertyInfo _propertyInfo##name( first , class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (colltype*) NULL ) ,wxGetTypeInfo( (addelemtype*) NULL ) ,&_accessor##name , flags , help , group ) ;
-
-#define WX_READONLY_PROPERTY_COLLECTION( name , colltype , addelemtype , getter , flags , help , group) \
- WX_COLLECTION_GETTER( name , class_t , colltype , getter ) \
- static wxCollectionGetter##name _collectionGetter##name ; \
- static wxPropertyAccessor _accessor##name( NULL , NULL , NULL , &_collectionGetter##name ) ; \
- static wxPropertyInfo _propertyInfo##name( first ,class_t::GetClassInfoStatic() , #name , wxGetTypeInfo( (colltype*) NULL ) ,wxGetTypeInfo( (addelemtype*) NULL ) ,&_accessor##name , flags , help , group ) ;
-/*
-#define WX_PROPERTY_COLLECTION( name , colltype , addelemtype , adder , getter ) \
-static wxPropertyCollectionAccessorT<class_t , colltype , addelemtype > _accessor##name( &adder , &getter , #adder , #getter ) ; \
-static wxPropertyInfo _propertyInfo##name( first , #name , wxGetTypeInfo( (colltype*) NULL ) ,wxGetTypeInfo( (addelemtype*) NULL ) ,&_accessor##name ) ;
-
-#define WX_READONLY_PROPERTY_COLLECTION( name , colltype , addelemtype , getter ) \
-static wxPropertyCollectionAccessorT<class_t , colltype , addelemtype > _accessor##name( &getter , #getter ) ; \
-static wxPropertyInfo _propertyInfo##name( first , #name , wxGetTypeInfo( (colltype*) NULL ) ,wxGetTypeInfo( (addelemtype*) NULL ) ,&_accessor##name ) ;
-*/
+#define wxHIDE_PROPERTY( pname ) \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(void).name() ,NULL , wxxVariant() , wxPROP_DONT_STREAM , wxEmptyString , wxEmptyString ) ;
+
+#define wxPROPERTY( pname , type , setter , getter , defaultValue , flags , help , group) \
+ wxSETTER( pname , class_t , type , setter ) \
+ static wxSetter##pname _setter##pname ; \
+ wxGETTER( pname , class_t , type , getter ) \
+ static wxGetter##pname _getter##pname ; \
+ static wxPropertyAccessor _accessor##pname( &_setter##pname , &_getter##pname , NULL , NULL ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(type).name() ,&_accessor##pname , wxxVariant(defaultValue) , flags , group , help ) ;
+
+#define wxPROPERTY_FLAGS( pname , flags , type , setter , getter ,defaultValue , pflags , help , group) \
+ wxSETTER( pname , class_t , type , setter ) \
+ static wxSetter##pname _setter##pname ; \
+ wxGETTER( pname , class_t , type , getter ) \
+ static wxGetter##pname _getter##pname ; \
+ static wxPropertyAccessor _accessor##pname( &_setter##pname , &_getter##pname , NULL , NULL ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(flags).name() ,&_accessor##pname , wxxVariant(defaultValue), wxPROP_ENUM_STORE_LONG | pflags , help , group ) ;
+
+#define wxREADONLY_PROPERTY( pname , type , getter ,defaultValue , flags , help , group) \
+ wxGETTER( pname , class_t , type , getter ) \
+ static wxGetter##pname _getter##pname ; \
+ static wxPropertyAccessor _accessor##pname( NULL , &_getter##pname , NULL , NULL ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(type).name() ,&_accessor##pname , wxxVariant(defaultValue), flags , help , group ) ;
+
+#define wxREADONLY_PROPERTY_FLAGS( pname , flags , type , getter ,defaultValue , pflags , help , group) \
+ wxGETTER( pname , class_t , type , getter ) \
+ static wxGetter##pname _getter##pname ; \
+ static wxPropertyAccessor _accessor##pname( NULL , &_getter##pname , NULL , NULL ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(flags).name() ,&_accessor##pname , wxxVariant(defaultValue), wxPROP_ENUM_STORE_LONG | pflags , help , group ) ;
+
+#define wxPROPERTY_COLLECTION( pname , colltype , addelemtype , adder , getter , flags , help , group ) \
+ wxADDER( pname , class_t , addelemtype , adder ) \
+ static wxAdder##pname _adder##pname ; \
+ wxCOLLECTION_GETTER( pname , class_t , colltype , getter ) \
+ static wxCollectionGetter##pname _collectionGetter##pname ; \
+ static wxPropertyAccessor _accessor##pname( NULL , NULL ,&_adder##pname , &_collectionGetter##pname ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first , class_t::GetClassInfoStatic() , wxT(#pname) , typeid(colltype).name() ,typeid(addelemtype).name() ,&_accessor##pname , flags , help , group ) ;
+
+#define wxREADONLY_PROPERTY_COLLECTION( pname , colltype , addelemtype , getter , flags , help , group) \
+ wxCOLLECTION_GETTER( pname , class_t , colltype , getter ) \
+ static wxCollectionGetter##pname _collectionGetter##pname ; \
+ static wxPropertyAccessor _accessor##pname( NULL , NULL , NULL , &_collectionGetter##pname ) ; \
+ static wxPropertyInfo _propertyInfo##pname( first ,class_t::GetClassInfoStatic() , wxT(#pname) , typeid(colltype).name() ,typeid(addelemtype).name() ,&_accessor##pname , flags , help , group ) ;
+
+
+#define wxEVENT_PROPERTY( name , eventType , eventClass ) \
+ static wxDelegateTypeInfo _typeInfo##name( eventType , CLASSINFO( eventClass ) ) ; \
+ static wxPropertyInfo _propertyInfo##name( first ,class_t::GetClassInfoStatic() , wxT(#name) , &_typeInfo##name , NULL , wxxVariant() ) ; \