X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9a6d14383a57771a334f6d0b6376dd47bf24049d..e143fb636d50d5802dcc8c7c2e9e8e2944afa467:/include/wx/ustring.h diff --git a/include/wx/ustring.h b/include/wx/ustring.h index 1158af5a98..cf42a1024c 100644 --- a/include/wx/ustring.h +++ b/include/wx/ustring.h @@ -1,71 +1,42 @@ -///////////////////////////////////////////////////////////////////////////// + // Name: wx/ustring.h // Purpose: 32-bit string (UCS-4) // Author: Robert Roebling // Copyright: (c) Robert Roebling -// RCS-ID: $Id: tab.h 37400 2006-02-09 00:28:34Z VZ $ +// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_USTRING_H_BASE_ -#define _WX_USTRING_H_BASE_ +#ifndef _WX_USTRING_H_ +#define _WX_USTRING_H_ #include "wx/defs.h" #include "wx/string.h" -WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxCharTypeBuffer ) +#include #if SIZEOF_WCHAR_T == 2 - typedef wxWCharBuffer wxU16CharBuffer; - #else - -class WXDLLIMPEXP_BASE wxU16CharBuffer : public wxCharTypeBuffer -{ -public: - typedef wxCharTypeBuffer wxCharTypeBufferBase; - - wxU16CharBuffer(const wxCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - - wxU16CharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {} - wxU16CharBuffer(size_t len) : wxCharTypeBufferBase(len) {} -}; - +typedef wxCharTypeBuffer wxU16CharBuffer; #endif - - -#if SIZEOF_WCHAR_T == 2 - -class WXDLLIMPEXP_BASE wxU32CharBuffer : public wxCharTypeBuffer -{ -public: - typedef wxCharTypeBuffer wxCharTypeBufferBase; - - wxU32CharBuffer(const wxCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - - wxU32CharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {} - wxU32CharBuffer(size_t len) : wxCharTypeBufferBase(len) {} -}; - -#else - +#if SIZEOF_WCHAR_T == 4 typedef wxWCharBuffer wxU32CharBuffer; - +#else +typedef wxCharTypeBuffer wxU32CharBuffer; #endif + class WXDLLIMPEXP_BASE wxUString: public std::basic_string { -public: +public: wxUString() { } - + wxUString( const wxChar32 *str ) { assign(str); } wxUString( const wxUString &str ) { assign(str); } wxUString( const wxU32CharBuffer &buf ) { assign(buf); } - + wxUString( const char *str ) { assign(str); } wxUString( const wxCharBuffer &buf ) { assign(buf); } wxUString( const char *str, const wxMBConv &conv ) { assign(str,conv); } @@ -73,10 +44,10 @@ public: wxUString( const wxChar16 *str ) { assign(str); } wxUString( const wxU16CharBuffer &buf ) { assign(buf); } - + wxUString( const wxCStrData *cstr ) { assign(cstr); } wxUString( const wxString &str ) { assign(str); } - + wxUString( char ch ) { assign(ch); } wxUString( wxChar16 ch ) { assign(ch); } wxUString( wxChar32 ch ) { assign(ch); } @@ -87,53 +58,53 @@ public: wxUString( size_type n, wxChar32 ch ) { assign(n,ch); } wxUString( size_type n, wxUniChar ch ) { assign(n,ch); } wxUString( size_type n, wxUniCharRef ch ) { assign(n,ch); } - + // static construction - + static wxUString FromAscii( const char *str, size_type n ) { wxUString ret; ret.assignFromAscii( str, n ); return ret; } - + static wxUString FromAscii( const char *str ) { wxUString ret; ret.assignFromAscii( str ); return ret; } - + static wxUString FromUTF8( const char *str, size_type n ) { wxUString ret; ret.assignFromUTF8( str, n ); return ret; } - + static wxUString FromUTF8( const char *str ) { wxUString ret; ret.assignFromUTF8( str ); return ret; } - + static wxUString FromUTF16( const wxChar16 *str, size_type n ) { wxUString ret; ret.assignFromUTF16( str, n ); return ret; } - + static wxUString FromUTF16( const wxChar16 *str ) { wxUString ret; ret.assignFromUTF16( str ); return ret; } - + // assign from encoding - + wxUString &assignFromAscii( const char *str ); wxUString &assignFromAscii( const char *str, size_type n ); wxUString &assignFromUTF8( const char *str ); @@ -142,12 +113,12 @@ public: wxUString &assignFromUTF16( const wxChar16* str, size_type n ); wxUString &assignFromCString( const char* str ); wxUString &assignFromCString( const char* str, const wxMBConv &conv ); - + // conversions - + wxCharBuffer utf8_str() const; wxU16CharBuffer utf16_str() const; - + #if SIZEOF_WCHAR_T == 2 wxWCharBuffer wc_str() const { @@ -185,7 +156,7 @@ public: return utf16_str(); } #else - wchar_t* wx_str() + const wchar_t* wx_str() { return c_str(); } @@ -193,78 +164,78 @@ public: #endif // assign - - inline wxUString &assign( const wxChar32* str ) + + wxUString &assign( const wxChar32* str ) { std::basic_string *base = this; return (wxUString &) base->assign( str ); } - - inline wxUString &assign( const wxChar32* str, size_type n ) + + wxUString &assign( const wxChar32* str, size_type n ) { std::basic_string *base = this; return (wxUString &) base->assign( str, n ); } - - inline wxUString &assign( const wxUString &str ) + + wxUString &assign( const wxUString &str ) { std::basic_string *base = this; return (wxUString &) base->assign( str ); } - - inline wxUString &assign( const wxUString &str, size_type pos, size_type n ) + + wxUString &assign( const wxUString &str, size_type pos, size_type n ) { std::basic_string *base = this; return (wxUString &) base->assign( str, pos, n ); } - - inline wxUString &assign( wxChar32 ch ) + + wxUString &assign( wxChar32 ch ) { std::basic_string *base = this; return (wxUString &) base->assign( (size_type) 1, ch ); } - - inline wxUString &assign( size_type n, wxChar32 ch ) + + wxUString &assign( size_type n, wxChar32 ch ) { std::basic_string *base = this; return (wxUString &) base->assign( n, ch ); } - + wxUString &assign( const wxU32CharBuffer &buf ) { return assign( buf.data() ); } - + wxUString &assign( const char *str ) { return assignFromCString( str ); } - + wxUString &assign( const wxCharBuffer &buf ) - { + { return assignFromCString( buf.data() ); } - + wxUString &assign( const char *str, const wxMBConv &conv ) - { + { return assignFromCString( str, conv ); } - + wxUString &assign( const wxCharBuffer &buf, const wxMBConv &conv ) - { + { return assignFromCString( buf.data(), conv ); } - + wxUString &assign( const wxChar16 *str ) { return assignFromUTF16( str ); } - + wxUString &assign( const wxU16CharBuffer &buf ) { return assignFromUTF16( buf.data() ); } - + wxUString &assign( const wxCStrData *cstr ) { #if SIZEOF_WCHAR_T == 2 @@ -273,7 +244,7 @@ public: return assign( cstr->AsWChar() ); #endif } - + wxUString &assign( const wxString &str ) { #if wxUSE_UNICODE_UTF8 @@ -282,11 +253,11 @@ public: #if SIZEOF_WCHAR_T == 2 return assignFromUTF16( str.wc_str() ); #else - return assign( wc_str() ); + return assign( str.wc_str() ); #endif #endif } - + wxUString &assign( char ch ) { char buf[2]; @@ -294,9 +265,9 @@ public: buf[1] = 0; return assignFromCString( buf ); } - + wxUString &assign( size_type n, char ch ) - { + { wxCharBuffer buffer(n); char *p = buffer.data(); size_type i; @@ -307,7 +278,7 @@ public: } return assignFromCString( buffer.data() ); } - + wxUString &assign( wxChar16 ch ) { wxChar16 buf[2]; @@ -315,7 +286,7 @@ public: buf[1] = 0; return assignFromUTF16( buf ); } - + wxUString &assign( size_type n, wxChar16 ch ) { wxU16CharBuffer buffer(n); @@ -328,60 +299,60 @@ public: } return assignFromUTF16( buffer.data() ); } - + wxUString &assign( wxUniChar ch ) { - return assign( (const wxChar32) ch.GetValue() ); + return assign( (wxChar32) ch.GetValue() ); } - + wxUString &assign( size_type n, wxUniChar ch ) { - return assign( n, (const wxChar32) ch.GetValue() ); + return assign( n, (wxChar32) ch.GetValue() ); } - + wxUString &assign( wxUniCharRef ch ) { - return assign( (const wxChar32) ch.GetValue() ); + return assign( (wxChar32) ch.GetValue() ); } - + wxUString &assign( size_type n, wxUniCharRef ch ) { - return assign( n, (const wxChar32) ch.GetValue() ); + return assign( n, (wxChar32) ch.GetValue() ); } - + // append [STL overload] - - inline wxUString &append( const wxUString &s ) + + wxUString &append( const wxUString &s ) { std::basic_string *base = this; return (wxUString &) base->append( s ); } - - inline wxUString &append( const wxUString &s, size_type pos, size_type n ) + + wxUString &append( const wxUString &s, size_type pos, size_type n ) { std::basic_string *base = this; return (wxUString &) base->append( s, pos, n ); } - - inline wxUString &append( const wxChar32* s ) + + wxUString &append( const wxChar32* s ) { std::basic_string *base = this; return (wxUString &) base->append( s ); } - inline wxUString &append( const wxChar32* s, size_type n ) + wxUString &append( const wxChar32* s, size_type n ) { std::basic_string *base = this; return (wxUString &) base->append( s, n ); } - inline wxUString &append( size_type n, wxChar32 c ) + wxUString &append( size_type n, wxChar32 c ) { std::basic_string *base = this; return (wxUString &) base->append( n, c ); } - inline wxUString &append( wxChar32 c ) + wxUString &append( wxChar32 c ) { std::basic_string *base = this; return (wxUString &) base->append( 1, c ); @@ -413,17 +384,17 @@ public: { return append( wxUString( str ) ); } - + wxUString &append( const wxString &str ) { return append( wxUString( str ) ); } - + wxUString &append( const wxCStrData *cstr ) { return append( wxUString( cstr ) ); } - + wxUString &append( char ch ) { char buf[2]; @@ -431,7 +402,7 @@ public: buf[1] = 0; return append( buf ); } - + wxUString &append( wxChar16 ch ) { wxChar16 buf[2]; @@ -439,7 +410,7 @@ public: buf[1] = 0; return append( buf ); } - + wxUString &append( wxUniChar ch ) { return append( (size_type) 1, (wxChar32) ch.GetValue() ); @@ -450,34 +421,34 @@ public: return append( (size_type) 1, (wxChar32) ch.GetValue() ); } - + // insert [STL overloads] - - inline wxUString &insert( size_type pos, const wxUString &s ) + + wxUString &insert( size_type pos, const wxUString &s ) { std::basic_string *base = this; return (wxUString &) base->insert( pos, s ); } - inline wxUString &insert( size_type pos, const wxUString &s, size_type pos1, size_type n ) + wxUString &insert( size_type pos, const wxUString &s, size_type pos1, size_type n ) { std::basic_string *base = this; return (wxUString &) base->insert( pos, s, pos1, n ); } - inline wxUString &insert( size_type pos, const wxChar32 *s ) + wxUString &insert( size_type pos, const wxChar32 *s ) { std::basic_string *base = this; return (wxUString &) base->insert( pos, s ); } - inline wxUString &insert( size_type pos, const wxChar32 *s, size_type n ) + wxUString &insert( size_type pos, const wxChar32 *s, size_type n ) { std::basic_string *base = this; return (wxUString &) base->insert( pos, s, n ); } - inline wxUString &insert( size_type pos, size_type n, wxChar32 c ) + wxUString &insert( size_type pos, size_type n, wxChar32 c ) { std::basic_string *base = this; return (wxUString &) base->insert( pos, n, c ); @@ -515,12 +486,12 @@ public: { return insert( n, wxUString( s ) ); } - + wxUString &insert( size_type n, const wxCStrData *cstr ) { return insert( n, wxUString( cstr ) ); } - + wxUString &insert( size_type n, char ch ) { char buf[2]; @@ -528,7 +499,7 @@ public: buf[1] = 0; return insert( n, buf ); } - + wxUString &insert( size_type n, wchar_t ch ) { wchar_t buf[2]; @@ -536,15 +507,15 @@ public: buf[1] = 0; return insert( n, buf ); } - + // insert iterator - + iterator insert( iterator it, wxChar32 ch ) { std::basic_string *base = this; return base->insert( it, ch ); } - + void insert(iterator it, const_iterator first, const_iterator last) { std::basic_string *base = this; @@ -553,65 +524,65 @@ public: // operator = - inline wxUString& operator=(const wxUString& s) + wxUString& operator=(const wxUString& s) { return assign( s ); } - inline wxUString& operator=(const wxString& s) + wxUString& operator=(const wxString& s) { return assign( s ); } - inline wxUString& operator=(const wxCStrData* s) + wxUString& operator=(const wxCStrData* s) { return assign( s ); } - inline wxUString& operator=(const char *s) + wxUString& operator=(const char *s) { return assign( s ); } - inline wxUString& operator=(const wxChar16 *s) + wxUString& operator=(const wxChar16 *s) { return assign( s ); } - inline wxUString& operator=(const wxChar32 *s) + wxUString& operator=(const wxChar32 *s) { return assign( s ); } - inline wxUString& operator=(const wxCharBuffer &s) + wxUString& operator=(const wxCharBuffer &s) { return assign( s ); } - inline wxUString& operator=(const wxU16CharBuffer &s) + wxUString& operator=(const wxU16CharBuffer &s) { return assign( s ); } - inline wxUString& operator=(const wxU32CharBuffer &s) + wxUString& operator=(const wxU32CharBuffer &s) { return assign( s ); } - inline wxUString& operator=(const char ch) + wxUString& operator=(const char ch) { return assign( ch ); } - inline wxUString& operator=(const wxChar16 ch) + wxUString& operator=(const wxChar16 ch) { return assign( ch ); } - inline wxUString& operator=(const wxChar32 ch) + wxUString& operator=(const wxChar32 ch) { return assign( ch ); } - inline wxUString& operator=(const wxUniChar ch) + wxUString& operator=(const wxUniChar ch) { return assign( ch ); } - inline wxUString& operator=(const wxUniCharRef ch) + wxUString& operator=(const wxUniCharRef ch) { return assign( ch ); } - + // operator += - inline wxUString& operator+=(const wxUString& s) + wxUString& operator+=(const wxUString& s) { return append( s ); } - inline wxUString& operator+=(const wxString& s) + wxUString& operator+=(const wxString& s) { return append( s ); } - inline wxUString& operator+=(const wxCStrData* s) + wxUString& operator+=(const wxCStrData* s) { return append( s ); } - inline wxUString& operator+=(const char *s) + wxUString& operator+=(const char *s) { return append( s ); } - inline wxUString& operator+=(const wxChar16 *s) + wxUString& operator+=(const wxChar16 *s) { return append( s ); } - inline wxUString& operator+=(const wxChar32 *s) + wxUString& operator+=(const wxChar32 *s) { return append( s ); } - inline wxUString& operator+=(const wxCharBuffer &s) + wxUString& operator+=(const wxCharBuffer &s) { return append( s ); } - inline wxUString& operator+=(const wxU16CharBuffer &s) + wxUString& operator+=(const wxU16CharBuffer &s) { return append( s ); } - inline wxUString& operator+=(const wxU32CharBuffer &s) + wxUString& operator+=(const wxU32CharBuffer &s) { return append( s ); } - inline wxUString& operator+=(const char ch) + wxUString& operator+=(const char ch) { return append( ch ); } - inline wxUString& operator+=(const wxChar16 ch) + wxUString& operator+=(const wxChar16 ch) { return append( ch ); } - inline wxUString& operator+=(const wxChar32 ch) + wxUString& operator+=(const wxChar32 ch) { return append( ch ); } - inline wxUString& operator+=(const wxUniChar ch) + wxUString& operator+=(const wxUniChar ch) { return append( ch ); } - inline wxUString& operator+=(const wxUniCharRef ch) + wxUString& operator+=(const wxUniCharRef ch) { return append( ch ); } - + }; inline wxUString operator+(const wxUString &s1, const wxUString &s2) @@ -676,7 +647,7 @@ inline bool operator==(const wxUString& s1, const wxUString& s2) inline bool operator!=(const wxUString& s1, const wxUString& s2) { return s1.compare( s2 ) != 0; } inline bool operator< (const wxUString& s1, const wxUString& s2) - { wxPrintf( "test\n"); return s1.compare( s2 ) < 0; } + { return s1.compare( s2 ) < 0; } inline bool operator> (const wxUString& s1, const wxUString& s2) { return s1.compare( s2 ) > 0; } inline bool operator<=(const wxUString& s1, const wxUString& s2) @@ -720,5 +691,4 @@ wxUSTRING_COMP_OPERATORS( const wxU16CharBuffer & ) wxUSTRING_COMP_OPERATORS( const wxU32CharBuffer & ) wxUSTRING_COMP_OPERATORS( const wxCStrData * ) -#endif - // _WX_USTRING_H_BASE_ +#endif // _WX_USTRING_H_