]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/corefoundation/cfstring.cpp
centralized the handling of border styles; added borders support for wxListBox and...
[wxWidgets.git] / src / mac / corefoundation / cfstring.cpp
index 73430139db95a0c389722c893c326db762f9f811..11b0f6d4ffd5874751a057f1c72390187bd78d81 100644 (file)
@@ -635,27 +635,32 @@ void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
 {
     Release() ; 
     if (st.IsEmpty())
-        return ;
-
-    wxString str = st ;
-    wxMacConvertNewlines13To10( &str ) ;
+    {
+        m_cfs = CFSTR("") ;
+        CFRetain( m_cfs ) ;
+    }
+    else
+    {
+        wxString str = st ;
+        wxMacConvertNewlines13To10( &str ) ;
 #if wxUSE_UNICODE
 #if SIZEOF_WCHAR_T == 2
-    m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
-        (UniChar*)str.wc_str() , str.Len() );
+        m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault,
+            (UniChar*)str.wc_str() , str.Len() );
 #else
-    wxMBConvUTF16BE converter ;
-    size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
-    UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
-    converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
-    m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
-        unibuf , unicharlen / sizeof(UniChar) ) ;
-    delete[] unibuf ;
+        wxMBConvUTF16 converter ;
+        size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
+        UniChar *unibuf = new UniChar[ unicharlen / sizeof(UniChar) + 1 ] ;
+        converter.WC2MB( (char*)unibuf , str.wc_str() , unicharlen ) ;
+        m_cfs = CFStringCreateWithCharacters( kCFAllocatorDefault ,
+            unibuf , unicharlen / sizeof(UniChar) ) ;
+        delete[] unibuf ;
 #endif
 #else // not wxUSE_UNICODE
-    m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
-        wxMacGetSystemEncFromFontEnc( encoding ) ) ;
+        m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
+            wxMacGetSystemEncFromFontEnc( encoding ) ) ;
 #endif
+    }
     m_release = true ;
 }
 
@@ -674,7 +679,7 @@ wxString wxMacCFStringHolder::AsString(wxFontEncoding encoding)
     UniChar* unibuf = new UniChar[ cflen + 1 ] ;
     CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
     unibuf[cflen] = 0 ;
-    wxMBConvUTF16BE converter ;
+    wxMBConvUTF16 converter ;
     noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
     buf = new wxChar[ noChars + 1 ] ;
     converter.MB2WC( buf , (const char*)unibuf , noChars ) ;