- klass::sm_constructor##klass = &constructor##klass ; \
- klass::sm_constructorProperties##klass[] = { #v0 , #v1 , #v2 , #v3 } ; \
- klass::sm_constructorPropertiesCount##klass = 4 ;
+ wxConstructorBridge* klass::sm_constructor##klass = &constructor##klass ; \
+ const wxChar *klass::sm_constructorProperties##klass[] = { #v0 , #v1 , #v2 , #v3 } ; \
+ const int klass::sm_constructorPropertiesCount##klass = 4 ;
+
+// 5 params
+
+template<typename Class,
+ typename T0, typename T1, typename T2, typename T3, typename T4>
+struct wxConstructorBridge_5 : public wxConstructorBridge
+{
+ void Create(wxObject *o, wxxVariant *args)
+ {
+ Class *obj = dynamic_cast<Class*>(o);
+ obj->Create(
+ args[0].Get<T0>() ,
+ args[1].Get<T1>() ,
+ args[2].Get<T2>() ,
+ args[3].Get<T3>() ,
+ args[4].Get<T4>()
+ );
+ }
+};
+
+#define WX_CONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \
+ wxConstructorBridge_5<klass,t0,t1,t2,t3,t4> constructor##klass ; \
+ wxConstructorBridge* klass::sm_constructor##klass = &constructor##klass ; \
+ const wxChar *klass::sm_constructorProperties##klass[] = { #v0 , #v1 , #v2 , #v3 , #v4 } ; \
+ const int klass::sm_constructorPropertiesCount##klass = 5;