fixed to make wxVariant compatible with both ANSI and Unicode modes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2007-07-06 23:02:16 +00:00
parent 6ff49cbcd4
commit af717fa87a
2 changed files with 129 additions and 53 deletions

View File

@@ -215,28 +215,60 @@ public:
// wxString
wxVariant(const wxString& val, const wxString& name = wxEmptyString);
wxVariant(const wxChar* val, const wxString& name = wxEmptyString); // Necessary or VC++ assumes bool!
// these overloads are necessary to prevent the compiler from using bool
// version instead of wxString one:
wxVariant(const char* val, const wxString& name = wxEmptyString);
wxVariant(const wchar_t* val, const wxString& name = wxEmptyString);
wxVariant(const wxCStrData& val, const wxString& name = wxEmptyString);
wxVariant(const wxCharBuffer& val, const wxString& name = wxEmptyString);
wxVariant(const wxWCharBuffer& val, const wxString& name = wxEmptyString);
bool operator== (const wxString& value) const;
bool operator!= (const wxString& value) const;
void operator= (const wxString& value) ;
void operator= (const wxChar* value) ; // Necessary or VC++ assumes bool!
wxVariant& operator=(const wxString& value);
// these overloads are necessary to prevent the compiler from using bool
// version instead of wxString one:
wxVariant& operator=(const char* value)
{ return *this = wxString(value); }
wxVariant& operator=(const wchar_t* value)
{ return *this = wxString(value); }
wxVariant& operator=(const wxCStrData& value)
{ return *this = value.AsString(); }
template<typename T>
wxVariant& operator=(const wxCharTypeBuffer<T>& value)
{ return *this = value.data(); }
inline operator wxString () const { return MakeString(); }
wxString GetString() const;
// wxChar
wxVariant(wxChar val, const wxString& name = wxEmptyString);
bool operator== (wxChar value) const;
bool operator!= (wxChar value) const;
void operator= (wxChar value) ;
inline operator wxChar () const { return GetChar(); }
wxChar GetChar() const ;
// wxUniChar
wxVariant(const wxUniChar& val, const wxString& name = wxEmptyString);
wxVariant(const wxUniCharRef& val, const wxString& name = wxEmptyString);
wxVariant(char val, const wxString& name = wxEmptyString);
wxVariant(wchar_t val, const wxString& name = wxEmptyString);
bool operator==(const wxUniChar& value) const;
bool operator==(const wxUniCharRef& value) const { return *this == wxUniChar(value); }
bool operator==(char value) const { return *this == wxUniChar(value); }
bool operator==(wchar_t value) const { return *this == wxUniChar(value); }
bool operator!=(const wxUniChar& value) const { return !(*this == value); }
bool operator!=(const wxUniCharRef& value) const { return !(*this == value); }
bool operator!=(char value) const { return !(*this == value); }
bool operator!=(wchar_t value) const { return !(*this == value); }
wxVariant& operator=(const wxUniChar& value);
wxVariant& operator=(const wxUniCharRef& value) { return *this = wxUniChar(value); }
wxVariant& operator=(char value) { return *this = wxUniChar(value); }
wxVariant& operator=(wchar_t value) { return *this = wxUniChar(value); }
operator wxUniChar() const { return GetChar(); }
operator char() const { return GetChar(); }
operator wchar_t() const { return GetChar(); }
wxUniChar GetChar() const;
// wxArrayString
wxVariant(const wxArrayString& val, const wxString& name = wxEmptyString);
bool operator== (const wxArrayString& value) const;
bool operator!= (const wxArrayString& value) const;
void operator= (const wxArrayString& value);
inline operator wxArrayString () const { return GetArrayString(); }
operator wxArrayString () const { return GetArrayString(); }
wxArrayString GetArrayString() const;
// void*
@@ -244,7 +276,7 @@ public:
bool operator== (void* value) const;
bool operator!= (void* value) const;
void operator= (void* value);
inline operator void* () const { return GetVoidPtr(); }
operator void* () const { return GetVoidPtr(); }
void* GetVoidPtr() const;
// wxObject*
@@ -295,7 +327,9 @@ public:
bool Convert(bool* value) const;
bool Convert(double* value) const;
bool Convert(wxString* value) const;
bool Convert(wxChar* value) const;
bool Convert(wxUniChar* value) const;
bool Convert(char* value) const;
bool Convert(wchar_t* value) const;
#if wxUSE_DATETIME
bool Convert(wxDateTime* value) const;
#endif // wxUSE_DATETIME