00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef PTLIB_WXSTRING_H
00032 #define PTLIB_WXSTRING_H
00033
00034 #ifdef P_USE_PRAGMA
00035 #pragma interface
00036 #endif
00037
00040 class PwxString : public wxString
00041 {
00042 public:
00043 PwxString() { }
00044 PwxString(const wxString & str) : wxString(str) { }
00045 PwxString(const PString & str) : wxString((const char *)str, wxConvUTF8 ) { }
00046 PwxString(const PFilePath & fn) : wxString((const char *)fn, wxConvUTF8 ) { }
00047 PwxString(const char * str) : wxString(str, wxConvUTF8) { }
00048 #ifdef OPAL_OPAL_MEDIAFMT_H
00049 PwxString(const OpalMediaFormat & fmt) : wxString((const char *)fmt.GetName(), wxConvUTF8) { }
00050 #endif
00051 #if wxUSE_UNICODE
00052 PwxString(const wchar_t * wstr) : wxString(wstr) { }
00053 #endif
00054
00055 inline PwxString & operator=(const char * str) { *this = wxString(str, wxConvUTF8); return *this; }
00056 #if wxUSE_UNICODE
00057 inline PwxString & operator=(const wchar_t * wstr) { wxString::operator=(wstr); return *this; }
00058 #endif
00059 inline PwxString & operator=(const wxString & str) { wxString::operator=(str); return *this; }
00060 inline PwxString & operator=(const PString & str) { *this = wxString((const char *)str, wxConvUTF8); return *this; }
00061
00062 inline bool operator==(const char * other) const { return IsSameAs(wxString(other, wxConvUTF8)); }
00063 #if wxUSE_UNICODE
00064 inline bool operator==(const wchar_t * other) const { return IsSameAs(other); }
00065 #endif
00066 inline bool operator==(const wxString & other) const { return IsSameAs(other); }
00067 inline bool operator==(const PString & other) const { return IsSameAs(wxString((const char *)other, wxConvUTF8)); }
00068 inline bool operator==(const PwxString & other) const { return IsSameAs(other); }
00069 #ifdef OPAL_OPAL_MEDIAFMT_H
00070 inline bool operator==(const OpalMediaFormat & other) const { return IsSameAs(wxString((const char *)other.GetName(), wxConvUTF8)); }
00071 #endif
00072
00073 inline bool operator!=(const char * other) const { return !IsSameAs(wxString(other, wxConvUTF8)); }
00074 #if wxUSE_UNICODE
00075 inline bool operator!=(const wchar_t * other) const { return !IsSameAs(other); }
00076 #endif
00077 inline bool operator!=(const wxString & other) const { return !IsSameAs(other); }
00078 inline bool operator!=(const PString & other) const { return !IsSameAs(wxString((const char *)other, wxConvUTF8)); }
00079 inline bool operator!=(const PwxString & other) const { return !IsSameAs(other); }
00080 #ifdef OPAL_OPAL_MEDIAFMT_H
00081 inline bool operator!=(const OpalMediaFormat & other) const { return !IsSameAs(wxString((const char *)other.GetName(), wxConvUTF8)); }
00082 #endif
00083
00084 #if wxUSE_UNICODE
00085 inline PString p_str() const { return ToUTF8().data(); }
00086 inline operator PString() const { return ToUTF8().data(); }
00087 inline operator PFilePath() const { return ToUTF8().data(); }
00088 #if defined(PTLIB_PURL_H) && defined(P_URL)
00089 inline operator PURL() const { return ToUTF8().data(); }
00090 #endif
00091 #if defined(PTLIB_IPSOCKET_H)
00092 inline operator PIPSocket::Address() const { return PString(ToUTF8().data()); }
00093 #endif
00094 inline friend ostream & operator<<(ostream & stream, const PwxString & string) { return stream << string.ToUTF8(); }
00095 inline friend wostream & operator<<(wostream & stream, const PwxString & string) { return stream << string.c_str(); }
00096 #else
00097 inline PString p_str() const { return c_str(); }
00098 inline operator PString() const { return c_str(); }
00099 inline operator PFilePath() const { return c_str(); }
00100 #if defined(PTLIB_PURL_H) && defined(P_URL)
00101 inline operator PURL() const { return c_str(); }
00102 #endif
00103 #if defined(PTLIB_IPSOCKET_H)
00104 inline operator PIPSocket::Address() const { return c_str(); }
00105 #endif
00106 inline friend ostream & operator<<(ostream & stream, const PwxString & string) { return stream << string.c_str(); }
00107 inline friend wostream & operator<<(wostream & stream, const PwxString & string) { return stream << string.c_str(); }
00108 #endif
00109 };
00110
00111 __inline bool wxFromString(wxString & s1, PwxString * & s2) { *s2 = s1; return true; }
00112 __inline wxString wxToString(const PwxString & str) { return str; }
00113
00114 #endif // PTLIB_WXSTRING_H
00115
00116
00117