rearranging xti code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
4608b3f837
commit
f06d69376d
@ -1440,7 +1440,7 @@ typedef double wxDouble;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
/* XTI workarounds for dummy compilers */
|
/* template workarounds for buggy compilers */
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#if defined(__GNUC__) && !wxCHECK_GCC_VERSION( 3, 4 )
|
#if defined(__GNUC__) && !wxCHECK_GCC_VERSION( 3, 4 )
|
||||||
@ -1478,56 +1478,6 @@ typedef double wxDouble;
|
|||||||
# define wxINFUNC_CLASS_TYPE_FIX( type )
|
# define wxINFUNC_CLASS_TYPE_FIX( type )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_FUNC_TEMPLATE_POINTER
|
|
||||||
# define wxTO_STRING(type) wxToStringConverter<type>
|
|
||||||
# define wxTO_STRING_IMP(type)
|
|
||||||
# define wxFROM_STRING(type) wxFromStringConverter<type>
|
|
||||||
# define wxFROM_STRING_IMP(type)
|
|
||||||
#else
|
|
||||||
# define wxTO_STRING(type) ToString##type
|
|
||||||
# define wxTO_STRING_IMP(type) \
|
|
||||||
inline void ToString##type( const wxAny& data, wxString &result ) \
|
|
||||||
{ wxToStringConverter<type>(data, result); }
|
|
||||||
|
|
||||||
# define wxFROM_STRING(type) FromString##type
|
|
||||||
# define wxFROM_STRING_IMP(type) \
|
|
||||||
inline void FromString##type( const wxString& data, wxAny &result ) \
|
|
||||||
{ wxFromStringConverter<type>(data, result); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// XTI helper macro. This one is used both by xti.h and rtti.h and
|
|
||||||
// thus needs to go in a common header to avoid redundancy.
|
|
||||||
#define wxDECLARE_CLASS_INFO_ITERATORS() \
|
|
||||||
class WXDLLIMPEXP_BASE const_iterator \
|
|
||||||
{ \
|
|
||||||
typedef wxHashTable_Node Node; \
|
|
||||||
public: \
|
|
||||||
typedef const wxClassInfo* value_type; \
|
|
||||||
typedef const value_type& const_reference; \
|
|
||||||
typedef const_iterator itor; \
|
|
||||||
typedef value_type* ptr_type; \
|
|
||||||
\
|
|
||||||
Node* m_node; \
|
|
||||||
wxHashTable* m_table; \
|
|
||||||
public: \
|
|
||||||
typedef const_reference reference_type; \
|
|
||||||
typedef ptr_type pointer_type; \
|
|
||||||
\
|
|
||||||
const_iterator(Node* node, wxHashTable* table) \
|
|
||||||
: m_node(node), m_table(table) { } \
|
|
||||||
const_iterator() : m_node(NULL), m_table(NULL) { } \
|
|
||||||
value_type operator*() const; \
|
|
||||||
itor& operator++(); \
|
|
||||||
const itor operator++(int); \
|
|
||||||
bool operator!=(const itor& it) const \
|
|
||||||
{ return it.m_node != m_node; } \
|
|
||||||
bool operator==(const itor& it) const \
|
|
||||||
{ return it.m_node == m_node; } \
|
|
||||||
}; \
|
|
||||||
\
|
|
||||||
static const_iterator begin_classinfo(); \
|
|
||||||
static const_iterator end_classinfo()
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
/* Geometric flags */
|
/* Geometric flags */
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
|
@ -19,6 +19,37 @@
|
|||||||
|
|
||||||
#include "wx/memory.h"
|
#include "wx/memory.h"
|
||||||
|
|
||||||
|
#define wxDECLARE_CLASS_INFO_ITERATORS() \
|
||||||
|
class WXDLLIMPEXP_BASE const_iterator \
|
||||||
|
{ \
|
||||||
|
typedef wxHashTable_Node Node; \
|
||||||
|
public: \
|
||||||
|
typedef const wxClassInfo* value_type; \
|
||||||
|
typedef const value_type& const_reference; \
|
||||||
|
typedef const_iterator itor; \
|
||||||
|
typedef value_type* ptr_type; \
|
||||||
|
\
|
||||||
|
Node* m_node; \
|
||||||
|
wxHashTable* m_table; \
|
||||||
|
public: \
|
||||||
|
typedef const_reference reference_type; \
|
||||||
|
typedef ptr_type pointer_type; \
|
||||||
|
\
|
||||||
|
const_iterator(Node* node, wxHashTable* table) \
|
||||||
|
: m_node(node), m_table(table) { } \
|
||||||
|
const_iterator() : m_node(NULL), m_table(NULL) { } \
|
||||||
|
value_type operator*() const; \
|
||||||
|
itor& operator++(); \
|
||||||
|
const itor operator++(int); \
|
||||||
|
bool operator!=(const itor& it) const \
|
||||||
|
{ return it.m_node != m_node; } \
|
||||||
|
bool operator==(const itor& it) const \
|
||||||
|
{ return it.m_node == m_node; } \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
static const_iterator begin_classinfo(); \
|
||||||
|
static const_iterator end_classinfo()
|
||||||
|
|
||||||
// based on the value of wxUSE_EXTENDED_RTTI symbol,
|
// based on the value of wxUSE_EXTENDED_RTTI symbol,
|
||||||
// only one of the RTTI system will be compiled:
|
// only one of the RTTI system will be compiled:
|
||||||
// - the "old" one (defined by rtti.h) or
|
// - the "old" one (defined by rtti.h) or
|
||||||
|
@ -18,6 +18,10 @@
|
|||||||
|
|
||||||
#if wxUSE_EXTENDED_RTTI
|
#if wxUSE_EXTENDED_RTTI
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxDynamicObject class, its instances connect to a 'super class instance'
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxDynamicObject : public wxObject
|
class WXDLLIMPEXP_BASE wxDynamicObject : public wxObject
|
||||||
{
|
{
|
||||||
friend class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo ;
|
friend class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo ;
|
||||||
@ -57,6 +61,27 @@ private :
|
|||||||
wxDynamicObjectInternal *m_data;
|
wxDynamicObjectInternal *m_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// String conversion templates supporting older compilers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_FUNC_TEMPLATE_POINTER
|
||||||
|
# define wxTO_STRING(type) wxToStringConverter<type>
|
||||||
|
# define wxTO_STRING_IMP(type)
|
||||||
|
# define wxFROM_STRING(type) wxFromStringConverter<type>
|
||||||
|
# define wxFROM_STRING_IMP(type)
|
||||||
|
#else
|
||||||
|
# define wxTO_STRING(type) ToString##type
|
||||||
|
# define wxTO_STRING_IMP(type) \
|
||||||
|
inline void ToString##type( const wxAny& data, wxString &result ) \
|
||||||
|
{ wxToStringConverter<type>(data, result); }
|
||||||
|
|
||||||
|
# define wxFROM_STRING(type) FromString##type
|
||||||
|
# define wxFROM_STRING_IMP(type) \
|
||||||
|
inline void FromString##type( const wxString& data, wxAny &result ) \
|
||||||
|
{ wxFromStringConverter<type>(data, result); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "wx/xtiprop.h"
|
#include "wx/xtiprop.h"
|
||||||
#include "wx/xtictor.h"
|
#include "wx/xtictor.h"
|
||||||
|
|
||||||
|
@ -83,11 +83,6 @@ private:
|
|||||||
|
|
||||||
#define wxENUM_MEMBER( v ) { wxT(#v), v },
|
#define wxENUM_MEMBER( v ) { wxT(#v), v },
|
||||||
|
|
||||||
/*
|
|
||||||
WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<e>) \
|
|
||||||
WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<e*>) \
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define wxEND_ENUM( e ) \
|
#define wxEND_ENUM( e ) \
|
||||||
{ NULL, 0 } }; \
|
{ NULL, 0 } }; \
|
||||||
wxEnumData s_enumData##e( s_enumDataMembers##e ); \
|
wxEnumData s_enumData##e( s_enumDataMembers##e ); \
|
||||||
@ -137,7 +132,6 @@ WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<e*>) \
|
|||||||
//
|
//
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
// in order to remove dependancy on string tokenizer
|
|
||||||
void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array );
|
void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array );
|
||||||
|
|
||||||
template<typename e>
|
template<typename e>
|
||||||
@ -244,11 +238,6 @@ void wxFlagsToString( wxString &s, const e& data )
|
|||||||
|
|
||||||
#define wxFLAGS_MEMBER( v ) { wxT(#v), v },
|
#define wxFLAGS_MEMBER( v ) { wxT(#v), v },
|
||||||
|
|
||||||
/*
|
|
||||||
WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<e>) \
|
|
||||||
WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<e*>) \
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define wxEND_FLAGS( e ) \
|
#define wxEND_FLAGS( e ) \
|
||||||
{ NULL, 0 } }; \
|
{ NULL, 0 } }; \
|
||||||
wxEnumData s_enumData##e( s_enumDataMembers##e ); \
|
wxEnumData s_enumData##e( s_enumDataMembers##e ); \
|
||||||
@ -326,7 +315,7 @@ public:
|
|||||||
{
|
{
|
||||||
Register();
|
Register();
|
||||||
}
|
}
|
||||||
#if wxUSE_UNICODE
|
#if 0 // wxUSE_UNICODE
|
||||||
wxTypeInfo(wxTypeKind kind,
|
wxTypeInfo(wxTypeKind kind,
|
||||||
wxVariant2StringFnc to, wxString2VariantFnc from,
|
wxVariant2StringFnc to, wxString2VariantFnc from,
|
||||||
const char *name):
|
const char *name):
|
||||||
@ -381,21 +370,6 @@ public:
|
|||||||
// statics:
|
// statics:
|
||||||
|
|
||||||
static wxTypeInfo *FindType( const wxString& typeName );
|
static wxTypeInfo *FindType( const wxString& typeName );
|
||||||
#if 0 // TODO
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
static wxTypeInfo *FindType(const char *typeName)
|
|
||||||
{ return FindType( wxString::FromAscii(typeName) ); }
|
|
||||||
#endif
|
|
||||||
static wxTypeInfo *FindType(const wxChar *typeName);
|
|
||||||
static wxTypeInfo *FindType(const wxString& typeName)
|
|
||||||
{
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
return FindType( typeName.wchar_str() );
|
|
||||||
#else
|
|
||||||
return FindType( typeName.char_str() );
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
private:
|
private:
|
||||||
void Register();
|
void Register();
|
||||||
void Unregister();
|
void Unregister();
|
||||||
@ -419,7 +393,7 @@ public:
|
|||||||
wxTypeInfo( kind, to, from, name )
|
wxTypeInfo( kind, to, from, name )
|
||||||
{ wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }
|
{ wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); }
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if 0 // wxUSE_UNICODE
|
||||||
wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to,
|
wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to,
|
||||||
wxString2VariantFnc from , const char *name ) :
|
wxString2VariantFnc from , const char *name ) :
|
||||||
wxTypeInfo( kind, to, from, name )
|
wxTypeInfo( kind, to, from, name )
|
||||||
@ -435,7 +409,7 @@ public:
|
|||||||
wxTypeInfo( wxT_CUSTOM, to, from, name )
|
wxTypeInfo( wxT_CUSTOM, to, from, name )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if 0 // wxUSE_UNICODE
|
||||||
wxCustomTypeInfo( const char *name , wxVariant2StringFnc to,
|
wxCustomTypeInfo( const char *name , wxVariant2StringFnc to,
|
||||||
wxString2VariantFnc from ) :
|
wxString2VariantFnc from ) :
|
||||||
wxTypeInfo( wxT_CUSTOM, to, from, name )
|
wxTypeInfo( wxT_CUSTOM, to, from, name )
|
||||||
@ -459,7 +433,7 @@ public:
|
|||||||
m_enumInfo = enumInfo;
|
m_enumInfo = enumInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if 0 //wxUSE_UNICODE
|
||||||
wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,
|
wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to,
|
||||||
wxString2VariantFnc from, converterToLong_t toLong,
|
wxString2VariantFnc from, converterToLong_t toLong,
|
||||||
converterFromLong_t fromLong, const char * name ) :
|
converterFromLong_t fromLong, const char * name ) :
|
||||||
@ -504,7 +478,7 @@ public:
|
|||||||
wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL,
|
wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL,
|
||||||
const wxString &name = wxEmptyString);
|
const wxString &name = wxEmptyString);
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if 0 // wxUSE_UNICODE
|
||||||
wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, wxVariant2StringFnc to,
|
wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, wxVariant2StringFnc to,
|
||||||
wxString2VariantFnc from , const char *name );
|
wxString2VariantFnc from , const char *name );
|
||||||
#endif
|
#endif
|
||||||
@ -523,7 +497,7 @@ public:
|
|||||||
wxTypeInfo( wxT_COLLECTION, to, from, name )
|
wxTypeInfo( wxT_COLLECTION, to, from, name )
|
||||||
{ m_elementTypeName = elementName; m_elementType = NULL; }
|
{ m_elementTypeName = elementName; m_elementType = NULL; }
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if 0 // wxUSE_UNICODE
|
||||||
wxCollectionTypeInfo( const char *elementName, wxVariant2StringFnc to,
|
wxCollectionTypeInfo( const char *elementName, wxVariant2StringFnc to,
|
||||||
wxString2VariantFnc from , const char *name ) :
|
wxString2VariantFnc from , const char *name ) :
|
||||||
wxTypeInfo( wxT_COLLECTION, to, from, name )
|
wxTypeInfo( wxT_COLLECTION, to, from, name )
|
||||||
|
Loading…
Reference in New Issue
Block a user