|
|
@@ -191,7 +191,7 @@ void wxSetToString( wxString &s , const wxSet<e> &data )
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// if the wxSet specialization above does not work for all compilers, add this to the WX_IMPLEMENT_SET_STREAMING macro
|
|
|
|
// if the wxSet specialization above does not work for all compilers, add this to the WX_IMPLEMENT_SET_STREAMING macro
|
|
|
|
// template<> const wxTypeInfo* wxGetTypeInfo( SetName * ){ static wxEnumTypeInfo s_typeInfo(wxT_SET , &s_enumData##e) ; return &s_typeInfo ; }\
|
|
|
|
// template<> const wxTypeInfo* wxGetTypeInfo( SetName * ){ static wxEnumTypeInfo s_typeInfo(wxT_SET , &s_enumData##e) ; return &s_typeInfo ; }
|
|
|
|
|
|
|
|
|
|
|
|
#define WX_IMPLEMENT_SET_STREAMING(SetName,e) \
|
|
|
|
#define WX_IMPLEMENT_SET_STREAMING(SetName,e) \
|
|
|
|
template<> void wxStringReadValue(const wxString &s , wxSet<e> &data ) \
|
|
|
|
template<> void wxStringReadValue(const wxString &s , wxSet<e> &data ) \
|
|
|
@@ -421,7 +421,7 @@ public :
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// stores the data
|
|
|
|
// stores the data
|
|
|
|
template<typename T> Set(T data) const
|
|
|
|
template<typename T> void Set(T data) const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
delete m_data ;
|
|
|
|
delete m_data ;
|
|
|
|
m_data = new wxxVariantDataT<T>(data) ;
|
|
|
|
m_data = new wxxVariantDataT<T>(data) ;
|
|
|
@@ -477,6 +477,9 @@ private :
|
|
|
|
class WXDLLIMPEXP_BASE wxPropertyAccessor
|
|
|
|
class WXDLLIMPEXP_BASE wxPropertyAccessor
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public :
|
|
|
|
public :
|
|
|
|
|
|
|
|
class SetByRef ;
|
|
|
|
|
|
|
|
class SetAndGetByRef ;
|
|
|
|
|
|
|
|
class GetByRef ;
|
|
|
|
virtual void SetProperty(wxObject *object, const wxxVariant &value) const = 0 ;
|
|
|
|
virtual void SetProperty(wxObject *object, const wxxVariant &value) const = 0 ;
|
|
|
|
virtual wxxVariant GetProperty(wxObject *object) const = 0 ;
|
|
|
|
virtual wxxVariant GetProperty(wxObject *object) const = 0 ;
|
|
|
|
virtual bool HasSetter() const = 0 ;
|
|
|
|
virtual bool HasSetter() const = 0 ;
|
|
|
@@ -502,6 +505,7 @@ template<class Klass, typename T>
|
|
|
|
class WXDLLIMPEXP_BASE wxPropertyAccessorT : public wxPropertyAccessor
|
|
|
|
class WXDLLIMPEXP_BASE wxPropertyAccessorT : public wxPropertyAccessor
|
|
|
|
{
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
typedef void (Klass::*setter_t)(T value);
|
|
|
|
typedef void (Klass::*setter_t)(T value);
|
|
|
|
typedef void (Klass::*setter_ref_t)(const T& value);
|
|
|
|
typedef void (Klass::*setter_ref_t)(const T& value);
|
|
|
|
typedef T (Klass::*getter_t)() const;
|
|
|
|
typedef T (Klass::*getter_t)() const;
|
|
|
@@ -509,16 +513,30 @@ public:
|
|
|
|
|
|
|
|
|
|
|
|
wxPropertyAccessorT(setter_t setter, getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
wxPropertyAccessorT(setter_t setter, getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
: m_setter(setter), m_setter_ref(NULL), m_getter(getter) ,m_getter_ref(NULL) {m_setterName = s;m_getterName=g ;}
|
|
|
|
: m_setter(setter), m_setter_ref(NULL), m_getter(getter) ,m_getter_ref(NULL) {m_setterName = s;m_getterName=g ;}
|
|
|
|
wxPropertyAccessorT(int WXUNUSED(zero), getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
: m_setter(NULL), m_setter_ref(NULL), m_getter(getter) ,m_getter_ref(NULL) {m_setterName = s;m_getterName=g ;}
|
|
|
|
wxPropertyAccessorT( getter_t getter, const wxChar *g)
|
|
|
|
wxPropertyAccessorT(setter_ref_t setter, getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
: m_setter(NULL), m_setter_ref(NULL), m_getter(getter) ,m_getter_ref(NULL) {m_setterName = "";m_getterName=g ;}
|
|
|
|
: m_setter(NULL), m_setter_ref(setter), m_getter(getter) , m_getter_ref(NULL){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
wxPropertyAccessorT(setter_ref_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
wxPropertyAccessorT(SetByRef*, setter_ref_t setter, getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
: m_setter(NULL), m_setter_ref(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
: m_setter(NULL), m_setter_ref(setter), m_getter(getter) , m_getter_ref(NULL){m_setterName = s;m_getterName=g ;}
|
|
|
|
wxPropertyAccessorT(setter_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
: m_setter(NULL), m_setter(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
// wxPropertyAccessorT(setter_ref_t setter, getter_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
wxPropertyAccessorT(int WXUNUSED(zero), getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
// : m_setter(NULL), m_setter_ref(setter), m_getter(getter) , m_getter_ref(NULL){m_setterName = s;m_getterName=g ;}
|
|
|
|
: m_setter(NULL), m_setter(NULL), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
wxPropertyAccessorT(SetAndGetByRef*, setter_ref_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
: m_setter(NULL), m_setter_ref(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// wxPropertyAccessorT(setter_ref_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
// : m_setter(NULL), m_setter_ref(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// wxPropertyAccessorT(setter_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
// : m_setter(NULL), m_setter(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wxPropertyAccessorT(GetByRef*, setter_t setter, getter_ref_t getter, const wxChar *g, const wxChar *s)
|
|
|
|
|
|
|
|
: m_setter(NULL), m_setter(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// wxPropertyAccessorT( getter_ref_t getter, const wxChar *g)
|
|
|
|
|
|
|
|
// : m_setter(NULL), m_setter(NULL), m_getter(NULL) , m_getter_ref(getter){m_setterName = "";m_getterName=g ;}
|
|
|
|
|
|
|
|
|
|
|
|
// returns true if this accessor has a setter
|
|
|
|
// returns true if this accessor has a setter
|
|
|
|
bool HasSetter() const { return m_setter != NULL || m_setter_ref != NULL ; }
|
|
|
|
bool HasSetter() const { return m_setter != NULL || m_setter_ref != NULL ; }
|
|
|
@@ -648,7 +666,15 @@ private :
|
|
|
|
return first ; }
|
|
|
|
return first ; }
|
|
|
|
|
|
|
|
|
|
|
|
#define WX_PROPERTY( name , type , setter , getter ,defaultValue ) \
|
|
|
|
#define WX_PROPERTY( name , type , setter , getter ,defaultValue ) \
|
|
|
|
static wxPropertyAccessorT<class_t , type> _accessor##name( setter , getter , #setter , #getter ) ; \
|
|
|
|
static wxPropertyAccessorT<class_t , type> _accessor##name( &setter , &getter , #setter , #getter ) ; \
|
|
|
|
|
|
|
|
static wxPropertyInfo _propertyInfo##name( first , #name , #type , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue) ) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define WX_PROPERTY_SET_BY_REF( name , type , setter , getter ,defaultValue ) \
|
|
|
|
|
|
|
|
static wxPropertyAccessorT<class_t , type> _accessor##name( (wxPropertyAccessor::SetByRef*)NULL, &setter , &getter , #setter , #getter ) ; \
|
|
|
|
|
|
|
|
static wxPropertyInfo _propertyInfo##name( first , #name , #type , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue) ) ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define WX_READONLY_PROPERTY( name , type , getter ,defaultValue ) \
|
|
|
|
|
|
|
|
static wxPropertyAccessorT<class_t , type> _accessor##name( &getter , #getter ) ; \
|
|
|
|
static wxPropertyInfo _propertyInfo##name( first , #name , #type , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue) ) ;
|
|
|
|
static wxPropertyInfo _propertyInfo##name( first , #name , #type , wxGetTypeInfo( (type*) NULL ) ,&_accessor##name , wxxVariant(defaultValue) ) ;
|
|
|
|
|
|
|
|
|
|
|
|
#define WX_DELEGATE( name , eventType , eventClass ) \
|
|
|
|
#define WX_DELEGATE( name , eventType , eventClass ) \
|
|
|
|