X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1d3601acaecd1c69c453b60610ba98f619bd383..438959cca892a7651634cc3a7aad4819ac49b23c:/include/wx/xtitypes.h diff --git a/include/wx/xtitypes.h b/include/wx/xtitypes.h index 212fba1951..d3fd1432f8 100644 --- a/include/wx/xtitypes.h +++ b/include/wx/xtitypes.h @@ -88,13 +88,13 @@ private: wxEnumData s_enumData##e( s_enumDataMembers##e ); \ wxEnumData *wxGetEnumData(e) { return &s_enumData##e; } \ template<> void wxStringReadValue(const wxString& s, e &data ) \ - { data = (e) s_enumData##e.GetEnumMemberValue(s); } \ + { data = (e) s_enumData##e.GetEnumMemberValue(s.c_str()); } \ template<> void wxStringWriteValue(wxString &s, const e &data ) \ { s = s_enumData##e.GetEnumMemberName((int)data); } \ - void FromLong##e( long data, wxVariantBase& result ) \ - { result = wxVariantBase((e)data); } \ - void ToLong##e( const wxVariantBase& data, long &result ) \ - { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e); } \ + void FromLong##e( long data, wxAny& result ) \ + { result = wxAny((e)data); } \ + void ToLong##e( const wxAny& data, long &result ) \ + { result = (long) (data).As(static_cast(NULL)); } \ \ wxTO_STRING_IMP( e ) \ wxFROM_STRING_IMP( e ) \ @@ -132,7 +132,6 @@ private: // // ---------------------------------------------------------------------------- -// in order to remove dependancy on string tokenizer void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array ); template @@ -148,7 +147,7 @@ void wxSetFromString(const wxString &s, wxBitset &data ) { flag = array[i]; int ivalue; - if ( edata->HasEnumMemberValue( flag, &ivalue ) ) + if ( edata->HasEnumMemberValue( flag.c_str(), &ivalue ) ) { data.set( (e) ivalue ); } @@ -180,10 +179,10 @@ void wxSetToString( wxString &s, const wxBitset &data ) { wxSetFromString( s, data ); } \ template<> void wxStringWriteValue( wxString &s, const wxBitset &data ) \ { wxSetToString( s, data ); } \ - void FromLong##SetName( long data, wxVariantBase& result ) \ - { result = wxVariantBase(SetName((unsigned long)data)); } \ - void ToLong##SetName( const wxVariantBase& data, long &result ) \ - { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, SetName).to_ulong(); } \ + void FromLong##SetName( long data, wxAny& result ) \ + { result = wxAny(SetName((unsigned long)data)); } \ + void ToLong##SetName( const wxAny& data, long &result ) \ + { result = (long) (data).As(static_cast(NULL)).to_ulong(); } \ wxTO_STRING_IMP( SetName ) \ wxFROM_STRING_IMP( SetName ) \ wxEnumTypeInfo s_typeInfo##SetName(wxT_SET, &s_enumData##e, \ @@ -203,7 +202,7 @@ void wxFlagsFromString(const wxString &s, e &data ) { flag = array[i]; int ivalue; - if ( edata->HasEnumMemberValue( flag, &ivalue ) ) + if ( edata->HasEnumMemberValue( flag.c_str(), &ivalue ) ) { data.m_data |= ivalue; } @@ -237,7 +236,7 @@ void wxFlagsToString( wxString &s, const e& data ) #define wxBEGIN_FLAGS( e ) \ wxEnumMemberData s_enumDataMembers##e[] = { -#define wxFLAGS_MEMBER( v ) { wxT(#v), v }, +#define wxFLAGS_MEMBER( v ) { wxT(#v), static_cast(v) }, #define wxEND_FLAGS( e ) \ { NULL, 0 } }; \ @@ -247,10 +246,10 @@ void wxFlagsToString( wxString &s, const e& data ) { wxFlagsFromString( s, data ); } \ template<> void wxStringWriteValue( wxString &s, const e& data ) \ { wxFlagsToString( s, data ); } \ - void FromLong##e( long data, wxVariantBase& result ) \ - { result = wxVariantBase(e(data)); } \ - void ToLong##e( const wxVariantBase& data, long &result ) \ - { result = (long) data.wxTEMPLATED_MEMBER_CALL(Get, e).m_data; } \ + void FromLong##e( long data, wxAny& result ) \ + { result = wxAny(e(data)); } \ + void ToLong##e( const wxAny& data, long &result ) \ + { result = (long) (data).As(static_cast(NULL)).m_data; } \ wxTO_STRING_IMP( e ) \ wxFROM_STRING_IMP( e ) \ wxEnumTypeInfo s_typeInfo##e(wxT_SET, &s_enumData##e, \ @@ -278,6 +277,8 @@ enum wxTypeKind wxT_UINT, wxT_LONG, wxT_ULONG, + wxT_LONGLONG, + wxT_ULONGLONG, wxT_FLOAT, wxT_DOUBLE, wxT_STRING, // must be wxString @@ -296,7 +297,7 @@ enum wxTypeKind wxT_LAST_TYPE_KIND = wxT_DELEGATE // sentinel for bad data, asserts, debugging }; -class WXDLLIMPEXP_BASE wxVariantBase; +class WXDLLIMPEXP_BASE wxAny; class WXDLLIMPEXP_BASE wxTypeInfo; WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo*, wxTypeInfoMap, class WXDLLIMPEXP_BASE ); @@ -304,8 +305,8 @@ WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo*, wxTypeInfoMap, class WXDLLIMP class WXDLLIMPEXP_BASE wxTypeInfo { public: - typedef void (*wxVariant2StringFnc)( const wxVariantBase& data, wxString &result ); - typedef void (*wxString2VariantFnc)( const wxString& data, wxVariantBase &result ); + typedef void (*wxVariant2StringFnc)( const wxAny& data, wxString &result ); + typedef void (*wxString2VariantFnc)( const wxString& data, wxAny &result ); wxTypeInfo(wxTypeKind kind, wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, @@ -314,7 +315,7 @@ public: { Register(); } -#if wxUSE_UNICODE +#if 0 // wxUSE_UNICODE wxTypeInfo(wxTypeKind kind, wxVariant2StringFnc to, wxString2VariantFnc from, const char *name): @@ -348,40 +349,28 @@ public: // can the content of this type be converted to and from strings ? bool HasStringConverters() const { return m_toString != NULL && m_fromString != NULL; } - // convert a wxVariantBase holding data of this type into a string - void ConvertToString( const wxVariantBase& data, wxString &result ) const + // convert a wxAny holding data of this type into a string + void ConvertToString( const wxAny& data, wxString &result ) const { if ( m_toString ) (*m_toString)( data, result ); else - wxLogError( wxGetTranslation(_T("String conversions not supported")) ); + wxLogError( wxGetTranslation(wxT("String conversions not supported")) ); } - // convert a string into a wxVariantBase holding the corresponding data in this type - void ConvertFromString( const wxString& data, wxVariantBase &result ) const + // convert a string into a wxAny holding the corresponding data in this type + void ConvertFromString( const wxString& data, wxAny &result ) const { if( m_fromString ) (*m_fromString)( data, result ); else - wxLogError( wxGetTranslation(_T("String conversions not supported")) ); + wxLogError( wxGetTranslation(wxT("String conversions not supported")) ); } // statics: -#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 - } - + // looks for the corresponding type, will return NULL if not found + static wxTypeInfo *FindType( const wxString& typeName ); private: void Register(); void Unregister(); @@ -404,13 +393,6 @@ public: const wxString &name = wxEmptyString ) : wxTypeInfo( kind, to, from, name ) { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); } - -#if wxUSE_UNICODE - wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to, - wxString2VariantFnc from , const char *name ) : - wxTypeInfo( kind, to, from, name ) - { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); } -#endif }; class WXDLLIMPEXP_BASE wxCustomTypeInfo : public wxTypeInfo @@ -420,20 +402,13 @@ public: wxString2VariantFnc from ) : wxTypeInfo( wxT_CUSTOM, to, from, name ) {} - -#if wxUSE_UNICODE - wxCustomTypeInfo( const char *name , wxVariant2StringFnc to, - wxString2VariantFnc from ) : - wxTypeInfo( wxT_CUSTOM, to, from, name ) - {} -#endif }; class WXDLLIMPEXP_BASE wxEnumTypeInfo : public wxTypeInfo { public: - typedef void (*converterToLong_t)( const wxVariantBase& data, long &result ); - typedef void (*converterFromLong_t)( long data, wxVariantBase &result ); + typedef void (*converterToLong_t)( const wxAny& data, long &result ); + typedef void (*converterFromLong_t)( long data, wxAny &result ); wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to, wxString2VariantFnc from, converterToLong_t toLong, @@ -445,35 +420,24 @@ public: m_enumInfo = enumInfo; } -#if wxUSE_UNICODE - wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to, - wxString2VariantFnc from, converterToLong_t toLong, - converterFromLong_t fromLong, const char * name ) : - wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong ) - { - wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET, - wxT("Illegal Kind for Enum Type")); - m_enumInfo = enumInfo; - } -#endif const wxEnumData* GetEnumData() const { return m_enumInfo; } - // convert a wxVariantBase holding data of this type into a long - void ConvertToLong( const wxVariantBase& data, long &result ) const + // convert a wxAny holding data of this type into a long + void ConvertToLong( const wxAny& data, long &result ) const { if( m_toLong ) (*m_toLong)( data, result ); else - wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); + wxLogError( wxGetTranslation(wxT("Long Conversions not supported")) ); } - // convert a long into a wxVariantBase holding the corresponding data in this type - void ConvertFromLong( long data, wxVariantBase &result ) const + // convert a long into a wxAny holding the corresponding data in this type + void ConvertFromLong( long data, wxAny &result ) const { if( m_fromLong ) (*m_fromLong)( data, result ); else - wxLogError( wxGetTranslation(_T("Long Conversions not supported")) ); + wxLogError( wxGetTranslation(wxT("Long Conversions not supported")) ); } private: @@ -490,11 +454,6 @@ public: wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, const wxString &name = wxEmptyString); -#if wxUSE_UNICODE - wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, wxVariant2StringFnc to, - wxString2VariantFnc from , const char *name ); -#endif - const wxClassInfo *GetClassInfo() const { return m_classInfo; } private: @@ -509,13 +468,6 @@ public: wxTypeInfo( wxT_COLLECTION, to, from, name ) { m_elementTypeName = elementName; m_elementType = NULL; } -#if wxUSE_UNICODE - wxCollectionTypeInfo( const char *elementName, wxVariant2StringFnc to, - wxString2VariantFnc from , const char *name ) : - wxTypeInfo( wxT_COLLECTION, to, from, name ) - { m_elementTypeName = wxString::FromAscii( elementName ); m_elementType = NULL; } -#endif - const wxTypeInfo* GetElementType() const { if ( m_elementType == NULL ) @@ -547,7 +499,7 @@ private: int m_lastEventType; }; -template const wxTypeInfo* wxGetTypeInfo( T * ) \ +template const wxTypeInfo* wxGetTypeInfo( T * ) { return wxTypeInfo::FindType(typeid(T).name()); } // this macro is for usage with custom, non-object derived classes and structs, @@ -558,9 +510,9 @@ template const wxTypeInfo* wxGetTypeInfo( T * ) \ wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), &toString, &fromString); #else #define wxCUSTOM_TYPE_INFO( e, toString, fromString ) \ - void ToString##e( const wxVariantBase& data, wxString &result ) \ + void ToString##e( const wxAny& data, wxString &result ) \ { toString(data, result); } \ - void FromString##e( const wxString& data, wxVariantBase &result ) \ + void FromString##e( const wxString& data, wxAny &result ) \ { fromString(data, result); } \ wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), \ &ToString##e, &FromString##e);