]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/core/cfstring.cpp
using statically allocated font objects for speedup
[wxWidgets.git] / src / osx / core / cfstring.cpp
index d067feaa1eb4c562893cb271fdfc3e87269f8904..96bc244d381ca567aef84654fc46312a36f766aa 100644 (file)
@@ -186,8 +186,8 @@ wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
 #if 0
     case wxFONTENCODING_UTF7 :
         enc = CreateTextEncoding(kCFStringEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
-#endif
         break ;
+#endif
     case wxFONTENCODING_UTF8 :
         enc = kCFStringEncodingUTF8;
         break ;
@@ -632,16 +632,15 @@ wxCFStringRef::wxCFStringRef( const wxString &st , wxFontEncoding WXUNUSED_IN_UN
     }
 }
 
-wxString wxCFStringRef::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encoding))
+wxString wxCFStringRef::AsString( CFStringRef ref, wxFontEncoding WXUNUSED_IN_UNICODE(encoding) )
 {
-    if ( !get() )
+    if ( !ref )
         return wxEmptyString ;
 
-    Size cflen = CFStringGetLength( get() )  ;
-    char* buf = NULL ;
+    Size cflen = CFStringGetLength( ref )  ;
 
-    CFStringEncoding cfencoding = 0;
-    wxString result;    
+    CFStringEncoding cfencoding;
+    wxString result;
 #if wxUSE_UNICODE
   #if wxUSE_UNICODE_WCHAR
     cfencoding = kCFStringEncodingUTF32Native;
@@ -655,12 +654,12 @@ wxString wxCFStringRef::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encoding))
 #endif
 
     CFIndex cStrLen ;
-    CFStringGetBytes( get() , CFRangeMake(0, cflen) , cfencoding ,
+    CFStringGetBytes( ref , CFRangeMake(0, cflen) , cfencoding ,
         '?' , false , NULL , 0 , &cStrLen ) ;
-    buf = new char[ cStrLen ] ;
-    CFStringGetBytes( get() , CFRangeMake(0, cflen) , cfencoding,
+    char* buf = new char[cStrLen];
+    CFStringGetBytes( ref , CFRangeMake(0, cflen) , cfencoding,
         '?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
-    
+
 #if wxUSE_UNICODE
   #if wxUSE_UNICODE_WCHAR
     result = wxString( (const wchar_t*) buf , cStrLen/4);
@@ -670,14 +669,27 @@ wxString wxCFStringRef::AsString(wxFontEncoding WXUNUSED_IN_UNICODE(encoding))
     #error "unsupported unicode representation"
   #endif
 #else
-    wxString result(buf, cStrLen) ;
+    result = wxString(buf, cStrLen) ;
 #endif
-    
+
     delete[] buf ;
     wxMacConvertNewlines10To13( &result);
     return result ;
 }
 
+wxString wxCFStringRef::AsString(wxFontEncoding encoding) const
+{
+    return AsString( get(), encoding );
+}
+
+#if wxOSX_USE_COCOA_OR_IPHONE
+wxString wxCFStringRef::AsString( NSString* ref, wxFontEncoding encoding )
+{
+    return AsString( (CFStringRef) ref, encoding );
+}
+#endif
+
+
 //
 // wxMacUniCharBuffer
 //
@@ -718,11 +730,11 @@ wxMacUniCharBuffer::~wxMacUniCharBuffer()
     free( m_ubuf ) ;
 }
 
-UniCharPtr wxMacUniCharBuffer::GetBuffer() 
+UniCharPtr wxMacUniCharBuffer::GetBuffer()
 {
     return m_ubuf ;
 }
-   
+
 UniCharCount wxMacUniCharBuffer::GetChars()
 {
     return m_chars ;