fixing xti problems

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2003-07-30 17:55:53 +00:00
parent b19f771f52
commit 4393b50ccd
4 changed files with 109 additions and 85 deletions

View File

@@ -33,9 +33,7 @@ class WXDLLIMPEXP_BASE wxObject;
#endif #endif
#if wxUSE_EXTENDED_RTTI #if wxUSE_EXTENDED_RTTI
#include "wx/xti.h" #include "wx/xti.h"
#else #else
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -152,7 +152,7 @@ protected:
wxObject *m_userData; wxObject *m_userData;
private: private:
DECLARE_CLASS(wxSizerItem); DECLARE_CLASS(wxSizerItem)
DECLARE_NO_COPY_CLASS(wxSizerItem) DECLARE_NO_COPY_CLASS(wxSizerItem)
}; };
@@ -325,7 +325,7 @@ protected:
virtual bool DoSetItemMinSize( size_t index, int width, int height ); virtual bool DoSetItemMinSize( size_t index, int width, int height );
private: private:
DECLARE_CLASS(wxSizer); DECLARE_CLASS(wxSizer)
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -362,7 +362,7 @@ protected:
void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h );
private: private:
DECLARE_CLASS(wxGridSizer); DECLARE_CLASS(wxGridSizer)
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -436,7 +436,7 @@ protected:
wxFlexSizerGrowMode m_growMode; wxFlexSizerGrowMode m_growMode;
private: private:
DECLARE_CLASS(wxFlexGridSizer); DECLARE_CLASS(wxFlexGridSizer)
DECLARE_NO_COPY_CLASS(wxFlexGridSizer) DECLARE_NO_COPY_CLASS(wxFlexGridSizer)
}; };
@@ -467,7 +467,7 @@ protected:
int m_fixedHeight; int m_fixedHeight;
private: private:
DECLARE_CLASS(wxBoxSizer); DECLARE_CLASS(wxBoxSizer)
}; };
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@@ -493,7 +493,7 @@ protected:
wxStaticBox *m_staticBox; wxStaticBox *m_staticBox;
private: private:
DECLARE_CLASS(wxStaticBoxSizer); DECLARE_CLASS(wxStaticBoxSizer)
DECLARE_NO_COPY_CLASS(wxStaticBoxSizer) DECLARE_NO_COPY_CLASS(wxStaticBoxSizer)
}; };
@@ -522,7 +522,7 @@ protected:
wxNotebook *m_notebook; wxNotebook *m_notebook;
private: private:
DECLARE_CLASS(wxNotebookSizer); DECLARE_CLASS(wxNotebookSizer)
DECLARE_NO_COPY_CLASS(wxNotebookSizer) DECLARE_NO_COPY_CLASS(wxNotebookSizer)
}; };

View File

@@ -291,7 +291,7 @@ private:
friend class WXDLLEXPORT wxTreeCtrl; friend class WXDLLEXPORT wxTreeCtrl;
friend class WXDLLEXPORT wxGenericTreeCtrl; friend class WXDLLEXPORT wxGenericTreeCtrl;
DECLARE_DYNAMIC_CLASS_NO_COPY(wxTreeEvent); DECLARE_DYNAMIC_CLASS_NO_COPY(wxTreeEvent)
}; };
typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&);

View File

@@ -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 ;}
wxPropertyAccessorT(SetByRef*, setter_ref_t setter, getter_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_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(setter_ref_t setter, getter_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 ;}
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 ;} : 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)
// 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 ;} : m_setter(NULL), m_setter(setter), m_getter(NULL) , m_getter_ref(getter){m_setterName = s;m_getterName=g ;}
wxPropertyAccessorT(int WXUNUSED(zero), getter_ref_t getter, const wxChar *g, const wxChar *s)
: m_setter(NULL), m_setter(NULL), 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 ) \