]> git.saurik.com Git - wxWidgets.git/commitdiff
Moved wxCFStringHolder and some other string functions to their own files.
authorDavid Elliott <dfe@tgwbd.org>
Fri, 29 Oct 2004 18:29:35 +0000 (18:29 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Fri, 29 Oct 2004 18:29:35 +0000 (18:29 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/private.h
include/wx/mac/corefoundation/cfstring.h [new file with mode: 0644]
src/mac/carbon/utils.cpp
src/mac/corefoundation/cfstring.cpp [new file with mode: 0644]

index 8e8badb6ac9937b52d070d350fb1be1b3d01bcec..eb3350a72bc2cea0757cc6c8fd150fb6c742dbdd 100644 (file)
     #define MAC_OS_X_VERSION_10_3 1030
 #endif
 
+#ifdef __WXMAC_CARBON__
+#include "wx/mac/corefoundation/cfstring.h"
+#endif
+
 #if wxUSE_GUI
 
 #include "wx/window.h"
@@ -479,79 +483,6 @@ void wxMacCleanupConverters() ;
 void wxMacStringToPascal( const wxString&from , StringPtr to ) ;
 wxString wxMacMakeStringFromPascal( ConstStringPtr from ) ;
 
-void wxMacConvertNewlines13To10( char * data ) ;
-void wxMacConvertNewlines10To13( char * data ) ;
-void wxMacConvertNewlines13To10( wxString *data ) ;
-void wxMacConvertNewlines10To13( wxString *data ) ;
-
-#if wxUSE_UNICODE
-void wxMacConvertNewlines13To10( wxChar * data ) ;
-void wxMacConvertNewlines10To13( wxChar * data ) ;
-#endif
-
-#if TARGET_CARBON
-
-class wxMacCFStringHolder                                                             
-{                                                                           
-public:      
-       wxMacCFStringHolder()
-       {
-       m_cfs = NULL ;
-       m_release = false ;                                                                 
-       }
-                                                                      
-    wxMacCFStringHolder(const wxString &str , wxFontEncoding encoding )                                          
-    {      
-       m_cfs = NULL ;
-       m_release = false ;  
-       Assign( str , encoding ) ;
-    }                                                                       
-                                                                            
-    wxMacCFStringHolder(CFStringRef ref , bool release = true )                                                   
-    {                                                                       
-        m_cfs = ref ;
-        m_release = release ;                                           
-    }                                                                       
-                                                                            
-    ~wxMacCFStringHolder() 
-    { 
-       Release() ;
-    }                                           
-
-    CFStringRef Detach()
-    {
-       CFStringRef retval = m_cfs ;
-       m_release = false ;
-       m_cfs = NULL ;
-       return retval ;
-    }         
-                                                                   
-    void Release()
-    {
-       if ( m_release && m_cfs)
-               CFRelease( m_cfs ) ;
-       m_cfs = NULL ;
-    }         
-
-       void Assign( const wxString &str , wxFontEncoding encoding ) ;
-
-    operator CFStringRef () { return m_cfs; }   
-    wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
-             
-private:             
-                                                              
-    CFStringRef m_cfs;
-    bool m_release ;                                                        
-} ;
-
-#endif
-
-// utils.cpp
-
-wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
-wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
-void wxMacWakeUp() ;
-
 // toplevel.cpp
 
 ControlRef wxMacFindControlUnderMouse( Point location , WindowRef window , ControlPartCode *outPart ) ;
diff --git a/include/wx/mac/corefoundation/cfstring.h b/include/wx/mac/corefoundation/cfstring.h
new file mode 100644 (file)
index 0000000..23e2f8d
--- /dev/null
@@ -0,0 +1,84 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/mac/corefoundation/cfstring.h
+// Purpose:     wxMacCFStringHolder and other string functions
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     2004-10-29 (from code in wx/mac/carbon/private.h)
+// RCS-ID:      $Id$
+// Copyright:   (c) Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __DARWIN__
+    #include <CoreFoundation/CFString.h>
+#else
+    #include <CFString.h>
+#endif
+
+void wxMacConvertNewlines13To10( char * data ) ;
+void wxMacConvertNewlines10To13( char * data ) ;
+void wxMacConvertNewlines13To10( wxString *data ) ;
+void wxMacConvertNewlines10To13( wxString *data ) ;
+
+#if wxUSE_UNICODE
+void wxMacConvertNewlines13To10( wxChar * data ) ;
+void wxMacConvertNewlines10To13( wxChar * data ) ;
+#endif
+
+wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ;
+wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ;
+void wxMacWakeUp() ;
+
+class wxMacCFStringHolder
+{
+public:
+    wxMacCFStringHolder()
+    {
+        m_cfs = NULL ;
+        m_release = false ;
+    }
+
+    wxMacCFStringHolder(const wxString &str , wxFontEncoding encoding )
+    {
+        m_cfs = NULL ;
+        m_release = false ;
+        Assign( str , encoding ) ;
+    }
+
+    wxMacCFStringHolder(CFStringRef ref , bool release = true )
+    {
+        m_cfs = ref ;
+        m_release = release ;
+    }
+
+    ~wxMacCFStringHolder()
+    {
+        Release() ;
+    }
+
+    CFStringRef Detach()
+    {
+        CFStringRef retval = m_cfs ;
+        m_release = false ;
+        m_cfs = NULL ;
+        return retval ;
+    }
+
+    void Release()
+    {
+        if ( m_release && m_cfs)
+            CFRelease( m_cfs ) ;
+        m_cfs = NULL ;
+    }
+
+    void Assign( const wxString &str , wxFontEncoding encoding ) ;
+
+    operator CFStringRef () { return m_cfs; }
+    wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ;
+
+private:
+
+    CFStringRef m_cfs;
+    bool m_release ;
+} ;
+
index 3e999b65e710783333b69f1a4d9dbf876285f91d..179bd584e854de77abcbb0a596882bc43d9d41e8 100644 (file)
@@ -705,676 +705,6 @@ wxString wxMacMakeStringFromPascal( ConstStringPtr from )
 }
 
 
-wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
-{      
-       TextEncodingBase enc = 0 ;
-       if ( encoding == wxFONTENCODING_DEFAULT )
-       {
-#if wxUSE_GUI
-               encoding = wxFont::GetDefaultEncoding() ;
-#else
-               encoding = wxLocale::GetSystemEncoding() ;
-#endif
-       }
-
-       switch( encoding)
-       {
-               case wxFONTENCODING_ISO8859_1 :
-               enc = kTextEncodingISOLatin1 ;
-               break ;
-               case wxFONTENCODING_ISO8859_2 :
-               enc = kTextEncodingISOLatin2;
-               break ;
-               case wxFONTENCODING_ISO8859_3 :
-               enc = kTextEncodingISOLatin3 ;
-               break ;
-               case wxFONTENCODING_ISO8859_4 :
-               enc = kTextEncodingISOLatin4;
-               break ;
-               case wxFONTENCODING_ISO8859_5 :
-               enc = kTextEncodingISOLatinCyrillic;
-               break ;
-               case wxFONTENCODING_ISO8859_6 :
-               enc = kTextEncodingISOLatinArabic;
-               break ;
-               case wxFONTENCODING_ISO8859_7 :
-               enc = kTextEncodingISOLatinGreek;
-               break ;
-               case wxFONTENCODING_ISO8859_8 :
-               enc = kTextEncodingISOLatinHebrew;
-               break ;
-               case wxFONTENCODING_ISO8859_9 :
-               enc = kTextEncodingISOLatin5;
-               break ;
-               case wxFONTENCODING_ISO8859_10 :
-               enc = kTextEncodingISOLatin6;
-               break ;
-               case wxFONTENCODING_ISO8859_13 :
-               enc = kTextEncodingISOLatin7;
-               break ;
-               case wxFONTENCODING_ISO8859_14 :
-               enc = kTextEncodingISOLatin8;
-               break ;
-               case wxFONTENCODING_ISO8859_15 :
-               enc = kTextEncodingISOLatin9;
-               break ;
-
-               case wxFONTENCODING_KOI8 :
-               enc = kTextEncodingKOI8_R;
-               break ;
-               case wxFONTENCODING_ALTERNATIVE : // MS-DOS CP866
-               enc = kTextEncodingDOSRussian;
-               break ;
-/*
-               case wxFONTENCODING_BULGARIAN : 
-               enc = ;
-               break ;
-*/                     
-               case wxFONTENCODING_CP437 : 
-               enc =kTextEncodingDOSLatinUS ;
-               break ;
-               case wxFONTENCODING_CP850 :
-               enc = kTextEncodingDOSLatin1;
-               break ;
-               case wxFONTENCODING_CP852 : 
-               enc = kTextEncodingDOSLatin2;
-               break ;
-               case wxFONTENCODING_CP855 :
-               enc = kTextEncodingDOSCyrillic;
-               break ;
-               case wxFONTENCODING_CP866 :
-               enc =kTextEncodingDOSRussian ;
-               break ;
-               case wxFONTENCODING_CP874 :
-               enc = kTextEncodingDOSThai;
-               break ;
-               case wxFONTENCODING_CP932 : 
-               enc = kTextEncodingDOSJapanese;
-               break ;
-               case wxFONTENCODING_CP936 : 
-               enc =kTextEncodingDOSChineseSimplif ;
-               break ;
-               case wxFONTENCODING_CP949 : 
-               enc = kTextEncodingDOSKorean;
-               break ;
-               case wxFONTENCODING_CP950 : 
-               enc = kTextEncodingDOSChineseTrad;
-               break ;
-               
-               case wxFONTENCODING_CP1250 : 
-               enc = kTextEncodingWindowsLatin2;
-               break ;
-               case wxFONTENCODING_CP1251 : 
-               enc =kTextEncodingWindowsCyrillic ;
-               break ;
-               case wxFONTENCODING_CP1252 : 
-               enc =kTextEncodingWindowsLatin1 ;
-               break ;
-               case wxFONTENCODING_CP1253 : 
-               enc = kTextEncodingWindowsGreek;
-               break ;
-               case wxFONTENCODING_CP1254 : 
-               enc = kTextEncodingWindowsLatin5;
-               break ;
-               case wxFONTENCODING_CP1255 : 
-               enc =kTextEncodingWindowsHebrew ;
-               break ;
-               case wxFONTENCODING_CP1256 : 
-               enc =kTextEncodingWindowsArabic ;
-               break ;
-               case wxFONTENCODING_CP1257 : 
-               enc = kTextEncodingWindowsBalticRim;
-               break ;
-               
-               case wxFONTENCODING_UTF7 : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
-               break ;
-               case wxFONTENCODING_UTF8 : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
-               break ;
-               case wxFONTENCODING_EUC_JP : 
-               enc = kTextEncodingEUC_JP;
-               break ;
-               case wxFONTENCODING_UTF16BE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF16LE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF32BE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF32LE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
-               break ;
-
-        case wxFONTENCODING_MACROMAN :
-            enc = kTextEncodingMacRoman ;
-            break ;
-        case wxFONTENCODING_MACJAPANESE :
-            enc = kTextEncodingMacJapanese ;
-            break ;
-        case wxFONTENCODING_MACCHINESETRAD :
-            enc = kTextEncodingMacChineseTrad ;
-            break ;
-        case wxFONTENCODING_MACKOREAN :
-            enc = kTextEncodingMacKorean ;
-            break ;
-        case wxFONTENCODING_MACARABIC :
-            enc = kTextEncodingMacArabic ;
-            break ;
-        case wxFONTENCODING_MACHEBREW :
-            enc = kTextEncodingMacHebrew ;
-            break ;
-        case wxFONTENCODING_MACGREEK :
-            enc = kTextEncodingMacGreek ;
-            break ;
-        case wxFONTENCODING_MACCYRILLIC :
-            enc = kTextEncodingMacCyrillic ;
-            break ;
-        case wxFONTENCODING_MACDEVANAGARI :
-            enc = kTextEncodingMacDevanagari ;
-            break ;
-        case wxFONTENCODING_MACGURMUKHI :
-            enc = kTextEncodingMacGurmukhi ;
-            break ;
-        case wxFONTENCODING_MACGUJARATI :
-            enc = kTextEncodingMacGujarati ;
-            break ;
-        case wxFONTENCODING_MACORIYA :
-            enc = kTextEncodingMacOriya ;
-            break ;
-        case wxFONTENCODING_MACBENGALI :
-            enc = kTextEncodingMacBengali ;
-            break ;
-        case wxFONTENCODING_MACTAMIL :
-            enc = kTextEncodingMacTamil ;
-            break ;
-        case wxFONTENCODING_MACTELUGU :
-            enc = kTextEncodingMacTelugu ;
-            break ;
-        case wxFONTENCODING_MACKANNADA :
-            enc = kTextEncodingMacKannada ;
-            break ;
-        case wxFONTENCODING_MACMALAJALAM :
-            enc = kTextEncodingMacMalayalam ;
-            break ;
-        case wxFONTENCODING_MACSINHALESE :
-            enc = kTextEncodingMacSinhalese ;
-            break ;
-        case wxFONTENCODING_MACBURMESE :
-            enc = kTextEncodingMacBurmese ;
-            break ;
-        case wxFONTENCODING_MACKHMER :
-            enc = kTextEncodingMacKhmer ;
-            break ;
-        case wxFONTENCODING_MACTHAI :
-            enc = kTextEncodingMacThai ;
-            break ;
-        case wxFONTENCODING_MACLAOTIAN :
-            enc = kTextEncodingMacLaotian ;
-            break ;
-        case wxFONTENCODING_MACGEORGIAN :
-            enc = kTextEncodingMacGeorgian ;
-            break ;
-        case wxFONTENCODING_MACARMENIAN :
-            enc = kTextEncodingMacArmenian ;
-            break ;
-        case wxFONTENCODING_MACCHINESESIMP :
-            enc = kTextEncodingMacChineseSimp ;
-            break ;
-        case wxFONTENCODING_MACTIBETAN :
-            enc = kTextEncodingMacTibetan ;
-            break ;
-        case wxFONTENCODING_MACMONGOLIAN :
-            enc = kTextEncodingMacMongolian ;
-            break ;
-        case wxFONTENCODING_MACETHIOPIC :
-            enc = kTextEncodingMacEthiopic ;
-            break ;
-        case wxFONTENCODING_MACCENTRALEUR :
-            enc = kTextEncodingMacCentralEurRoman ;
-            break ;
-        case wxFONTENCODING_MACVIATNAMESE :
-            enc = kTextEncodingMacVietnamese ;
-            break ;
-        case wxFONTENCODING_MACARABICEXT :
-            enc = kTextEncodingMacExtArabic ;
-            break ;
-        case wxFONTENCODING_MACSYMBOL :
-            enc = kTextEncodingMacSymbol ;
-            break ;
-        case wxFONTENCODING_MACDINGBATS :
-            enc = kTextEncodingMacDingbats ;
-            break ;
-        case wxFONTENCODING_MACTURKISH :
-            enc = kTextEncodingMacTurkish ;
-            break ;
-        case wxFONTENCODING_MACCROATIAN :
-            enc = kTextEncodingMacCroatian ;
-            break ;
-        case wxFONTENCODING_MACICELANDIC :
-            enc = kTextEncodingMacIcelandic ;
-            break ;
-        case wxFONTENCODING_MACROMANIAN :
-            enc = kTextEncodingMacRomanian ;
-            break ;
-        case wxFONTENCODING_MACCELTIC :
-            enc = kTextEncodingMacCeltic ;
-            break ;
-        case wxFONTENCODING_MACGAELIC :
-            enc = kTextEncodingMacGaelic ;
-            break ;
-        case wxFONTENCODING_MACKEYBOARD :
-            enc = kTextEncodingMacKeyboardGlyphs ;
-            break ;    
-               default :
-                       // to make gcc happy
-                       break ;
-       } ;
-       return enc ;
-}
-
-wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding)
-{      
-       wxFontEncoding enc = wxFONTENCODING_DEFAULT ;
-
-       switch( encoding)
-       {
-               case kTextEncodingISOLatin1  :
-               enc = wxFONTENCODING_ISO8859_1 ;
-               break ;
-               case kTextEncodingISOLatin2 :
-               enc = wxFONTENCODING_ISO8859_2;
-               break ;
-               case kTextEncodingISOLatin3 :
-               enc = wxFONTENCODING_ISO8859_3 ;
-               break ;
-               case kTextEncodingISOLatin4 :
-               enc = wxFONTENCODING_ISO8859_4;
-               break ;
-               case kTextEncodingISOLatinCyrillic :
-               enc = wxFONTENCODING_ISO8859_5;
-               break ;
-               case kTextEncodingISOLatinArabic :
-               enc = wxFONTENCODING_ISO8859_6;
-               break ;
-               case kTextEncodingISOLatinGreek :
-               enc = wxFONTENCODING_ISO8859_7;
-               break ;
-               case kTextEncodingISOLatinHebrew :
-               enc = wxFONTENCODING_ISO8859_8;
-               break ;
-               case kTextEncodingISOLatin5 :
-               enc = wxFONTENCODING_ISO8859_9;
-               break ;
-               case kTextEncodingISOLatin6 :
-               enc = wxFONTENCODING_ISO8859_10;
-               break ;
-               case kTextEncodingISOLatin7 :
-               enc = wxFONTENCODING_ISO8859_13;
-               break ;
-               case kTextEncodingISOLatin8 :
-               enc = wxFONTENCODING_ISO8859_14;
-               break ;
-               case kTextEncodingISOLatin9 :
-               enc =wxFONTENCODING_ISO8859_15 ;
-               break ;
-
-               case kTextEncodingKOI8_R :
-               enc = wxFONTENCODING_KOI8;
-               break ;
-/*
-               case  : 
-               enc = wxFONTENCODING_BULGARIAN;
-               break ;
-*/                     
-               case kTextEncodingDOSLatinUS : 
-               enc = wxFONTENCODING_CP437;
-               break ;
-               case kTextEncodingDOSLatin1 :
-               enc = wxFONTENCODING_CP850;
-               break ;
-               case kTextEncodingDOSLatin2 : 
-               enc =wxFONTENCODING_CP852 ;
-               break ;
-               case kTextEncodingDOSCyrillic :
-               enc = wxFONTENCODING_CP855;
-               break ;
-               case kTextEncodingDOSRussian :
-               enc = wxFONTENCODING_CP866;
-               break ;
-               case kTextEncodingDOSThai :
-               enc =wxFONTENCODING_CP874 ;
-               break ;
-               case kTextEncodingDOSJapanese : 
-               enc = wxFONTENCODING_CP932;
-               break ;
-               case kTextEncodingDOSChineseSimplif : 
-               enc = wxFONTENCODING_CP936;
-               break ;
-               case kTextEncodingDOSKorean : 
-               enc = wxFONTENCODING_CP949;
-               break ;
-               case kTextEncodingDOSChineseTrad : 
-               enc = wxFONTENCODING_CP950;
-               break ;
-               
-               case kTextEncodingWindowsLatin2 : 
-               enc = wxFONTENCODING_CP1250;
-               break ;
-               case kTextEncodingWindowsCyrillic : 
-               enc = wxFONTENCODING_CP1251;
-               break ;
-               case kTextEncodingWindowsLatin1 : 
-               enc = wxFONTENCODING_CP1252;
-               break ;
-               case kTextEncodingWindowsGreek : 
-               enc = wxFONTENCODING_CP1253;
-               break ;
-               case kTextEncodingWindowsLatin5 : 
-               enc = wxFONTENCODING_CP1254;
-               break ;
-               case kTextEncodingWindowsHebrew : 
-               enc = wxFONTENCODING_CP1255;
-               break ;
-               case kTextEncodingWindowsArabic : 
-               enc = wxFONTENCODING_CP1256;
-               break ;
-               case kTextEncodingWindowsBalticRim : 
-               enc =wxFONTENCODING_CP1257 ;
-               break ;
-               case kTextEncodingEUC_JP : 
-               enc = wxFONTENCODING_EUC_JP;
-               break ;
-               /*
-               case wxFONTENCODING_UTF7 : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
-               break ;
-               case wxFONTENCODING_UTF8 : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
-               break ;
-               case wxFONTENCODING_UTF16BE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF16LE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF32BE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
-               break ;
-               case wxFONTENCODING_UTF32LE : 
-               enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
-               break ;
-        */
-        case kTextEncodingMacRoman :
-            enc = wxFONTENCODING_MACROMAN ;
-            break ;
-        case kTextEncodingMacJapanese :
-            enc = wxFONTENCODING_MACJAPANESE ;
-            break ;
-        case kTextEncodingMacChineseTrad :
-            enc = wxFONTENCODING_MACCHINESETRAD ;
-            break ;
-        case kTextEncodingMacKorean :
-            enc = wxFONTENCODING_MACKOREAN ;
-            break ;
-        case kTextEncodingMacArabic :
-            enc =wxFONTENCODING_MACARABIC ;
-            break ;
-        case kTextEncodingMacHebrew :
-            enc = wxFONTENCODING_MACHEBREW ;
-            break ;
-        case kTextEncodingMacGreek :
-            enc = wxFONTENCODING_MACGREEK ;
-            break ;
-        case kTextEncodingMacCyrillic :
-            enc = wxFONTENCODING_MACCYRILLIC ;
-            break ;
-        case kTextEncodingMacDevanagari :
-            enc = wxFONTENCODING_MACDEVANAGARI ;
-            break ;
-        case kTextEncodingMacGurmukhi :
-            enc = wxFONTENCODING_MACGURMUKHI ;
-            break ;
-        case kTextEncodingMacGujarati :
-            enc = wxFONTENCODING_MACGUJARATI ;
-            break ;
-        case kTextEncodingMacOriya :
-            enc =wxFONTENCODING_MACORIYA ;
-            break ;
-        case kTextEncodingMacBengali :
-            enc =wxFONTENCODING_MACBENGALI ;
-            break ;
-        case kTextEncodingMacTamil :
-            enc = wxFONTENCODING_MACTAMIL ;
-            break ;
-        case kTextEncodingMacTelugu :
-            enc = wxFONTENCODING_MACTELUGU ;
-            break ;
-        case kTextEncodingMacKannada :
-            enc = wxFONTENCODING_MACKANNADA ;
-            break ;
-        case kTextEncodingMacMalayalam :
-            enc = wxFONTENCODING_MACMALAJALAM ;
-            break ;
-        case kTextEncodingMacSinhalese :
-            enc = wxFONTENCODING_MACSINHALESE ;
-            break ;
-        case kTextEncodingMacBurmese :
-            enc = wxFONTENCODING_MACBURMESE ;
-            break ;
-        case kTextEncodingMacKhmer :
-            enc = wxFONTENCODING_MACKHMER ;
-            break ;
-        case kTextEncodingMacThai :
-            enc = wxFONTENCODING_MACTHAI ;
-            break ;
-        case kTextEncodingMacLaotian :
-            enc = wxFONTENCODING_MACLAOTIAN ;
-            break ;
-        case kTextEncodingMacGeorgian :
-            enc = wxFONTENCODING_MACGEORGIAN ;
-            break ;
-        case kTextEncodingMacArmenian :
-            enc = wxFONTENCODING_MACARMENIAN ;
-            break ;
-        case kTextEncodingMacChineseSimp :
-            enc = wxFONTENCODING_MACCHINESESIMP ;
-            break ;
-        case kTextEncodingMacTibetan :
-            enc = wxFONTENCODING_MACTIBETAN ;
-            break ;
-        case kTextEncodingMacMongolian :
-            enc = wxFONTENCODING_MACMONGOLIAN ;
-            break ;
-        case kTextEncodingMacEthiopic :
-            enc = wxFONTENCODING_MACETHIOPIC ;
-            break ;
-        case kTextEncodingMacCentralEurRoman:
-            enc = wxFONTENCODING_MACCENTRALEUR  ;
-            break ;
-        case kTextEncodingMacVietnamese:
-            enc = wxFONTENCODING_MACVIATNAMESE  ;
-            break ;
-        case kTextEncodingMacExtArabic :
-            enc = wxFONTENCODING_MACARABICEXT ;
-            break ;
-        case kTextEncodingMacSymbol :
-            enc = wxFONTENCODING_MACSYMBOL ;
-            break ;
-        case kTextEncodingMacDingbats :
-            enc = wxFONTENCODING_MACDINGBATS ;
-            break ;
-        case kTextEncodingMacTurkish :
-            enc = wxFONTENCODING_MACTURKISH ;
-            break ;
-        case kTextEncodingMacCroatian :
-            enc = wxFONTENCODING_MACCROATIAN ;
-            break ;
-        case kTextEncodingMacIcelandic :
-            enc = wxFONTENCODING_MACICELANDIC ;
-            break ;
-        case kTextEncodingMacRomanian :
-            enc = wxFONTENCODING_MACROMANIAN ;
-            break ;
-        case kTextEncodingMacCeltic :
-            enc = wxFONTENCODING_MACCELTIC ;
-            break ;
-        case kTextEncodingMacGaelic :
-            enc = wxFONTENCODING_MACGAELIC ;
-            break ;
-        case kTextEncodingMacKeyboardGlyphs :
-            enc = wxFONTENCODING_MACKEYBOARD ;
-            break ;       
-       } ;
-       return enc ;
-}
-
-
-//
-// CFStringRefs (Carbon only)
-//
-
-#if TARGET_CARBON
-
-// converts this string into a carbon foundation string with optional pc 2 mac encoding
-void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
-{
-       Release() ;
-
-       wxString str = st ;
-    wxMacConvertNewlines13To10( &str ) ;
-#if wxUSE_UNICODE
-#if SIZEOF_WCHAR_T == 2
-       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 ;
-#endif
-#else // not wxUSE_UNICODE
-    m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
-        wxMacGetSystemEncFromFontEnc( encoding ) ) ;
-#endif
-    m_release = true ;
-}
-
-wxString wxMacCFStringHolder::AsString(wxFontEncoding encoding)
-{
-    Size cflen = CFStringGetLength( m_cfs )  ;
-    size_t noChars ;
-    wxChar* buf = NULL ;
-    
-#if wxUSE_UNICODE
-#if SIZEOF_WCHAR_T == 2
-    buf = new wxChar[ cflen + 1 ] ; 
-    CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ;
-    noChars = cflen ;
-#else
-    UniChar* unibuf = new UniChar[ cflen + 1 ] ;
-    CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
-    unibuf[cflen] = 0 ;
-       wxMBConvUTF16BE converter ;
-       noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
-    buf = new wxChar[ noChars + 1 ] ;
-    converter.MB2WC( buf , (const char*)unibuf , noChars ) ;
-    delete[] unibuf ;
-#endif
-#else
-    CFIndex cStrLen ;
-    CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
-        '?' , false , NULL , 0 , &cStrLen ) ;
-    buf = new wxChar[ cStrLen + 1 ] ; 
-    CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
-        '?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
-    noChars = cStrLen ;
-#endif
-
-    buf[noChars] = 0 ;
-    wxMacConvertNewlines10To13( buf ) ;
-    wxString result(buf) ;
-    delete[] buf ;
-    return result ;
-}
-
-#endif //TARGET_CARBON
-
-void wxMacConvertNewlines13To10( char * data ) 
-{        
-       char * buf = data ;
-    while( (buf=strchr(buf,0x0d)) != NULL )
-    {
-        *buf = 0x0a ;
-        buf++ ;
-    }
-}
-
-void wxMacConvertNewlines10To13( char * data )
-{        
-       char * buf = data ;
-    while( (buf=strchr(buf,0x0a)) != NULL )
-    {
-        *buf = 0x0d ;
-        buf++ ;
-    }
-}
-
-void wxMacConvertNewlines13To10( wxString * data ) 
-{        
-    size_t len = data->Length() ;
-
-    if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL)
-        return ;
-        
-    wxString temp(*data) ;
-    wxStringBuffer buf(*data,len ) ;
-    memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; 
-
-       wxMacConvertNewlines13To10( buf ) ;
-}
-
-void wxMacConvertNewlines10To13( wxString * data )
-{        
-    size_t len = data->Length() ;
-
-    if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL)
-        return ;
-
-    wxString temp(*data) ;
-    wxStringBuffer buf(*data,len ) ;
-    memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ; 
-       wxMacConvertNewlines10To13( buf ) ;
-}
-
-
-#if wxUSE_UNICODE
-void wxMacConvertNewlines13To10( wxChar * data ) 
-{        
-       wxChar * buf = data ;
-    while( (buf=wxStrchr(buf,0x0d)) != NULL )
-    {
-        *buf = 0x0a ;
-        buf++ ;
-    }
-}
-
-void wxMacConvertNewlines10To13( wxChar * data )
-{        
-       wxChar * buf =  data ;
-    while( (buf=wxStrchr(buf,0x0a)) != NULL )
-    {
-        *buf = 0x0d ;
-        buf++ ;
-    }
-}
-#endif
-
 // ----------------------------------------------------------------------------
 // Common Event Support
 // ----------------------------------------------------------------------------
diff --git a/src/mac/corefoundation/cfstring.cpp b/src/mac/corefoundation/cfstring.cpp
new file mode 100644 (file)
index 0000000..0bb09db
--- /dev/null
@@ -0,0 +1,693 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/mac/corefoundation/cfstring.cpp
+// Purpose:     wxCFStringHolder and other string functions
+// Author:      Stefan Csomor
+// Modified by:
+// Created:     2004-10-29 (from code in src/mac/carbon/utils.cpp)
+// RCS-ID:      $Id$
+// Copyright:   (c) Stefan Csomor
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#include "wx/wxprec.h"
+#ifndef WX_PRECOMP
+    #include "wx/string.h"
+    #include "wx/intl.h"
+#endif
+#include "wx/mac/corefoundation/cfstring.h"
+
+#if wxUSE_GUI
+    #include "wx/font.h"
+#endif
+
+#ifdef __DARWIN__
+    #include <CoreServices/CoreServices.h>
+#else
+    #include <TextCommon.h>
+#endif
+
+void wxMacConvertNewlines13To10( char * data )
+{
+    char * buf = data ;
+    while( (buf=strchr(buf,0x0d)) != NULL )
+    {
+        *buf = 0x0a ;
+        buf++ ;
+    }
+}
+
+void wxMacConvertNewlines10To13( char * data )
+{
+    char * buf = data ;
+    while( (buf=strchr(buf,0x0a)) != NULL )
+    {
+        *buf = 0x0d ;
+        buf++ ;
+    }
+}
+
+void wxMacConvertNewlines13To10( wxString * data )
+{
+    size_t len = data->Length() ;
+
+    if ( len == 0 || wxStrchr(data->c_str(),0x0d)==NULL)
+        return ;
+
+    wxString temp(*data) ;
+    wxStringBuffer buf(*data,len ) ;
+    memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
+
+    wxMacConvertNewlines13To10( buf ) ;
+}
+
+void wxMacConvertNewlines10To13( wxString * data )
+{
+    size_t len = data->Length() ;
+
+    if ( data->Length() == 0 || wxStrchr(data->c_str(),0x0a)==NULL)
+        return ;
+
+    wxString temp(*data) ;
+    wxStringBuffer buf(*data,len ) ;
+    memcpy( buf , temp.c_str() , (len+1)*sizeof(wxChar) ) ;
+    wxMacConvertNewlines10To13( buf ) ;
+}
+
+
+#if wxUSE_UNICODE
+void wxMacConvertNewlines13To10( wxChar * data )
+{
+    wxChar * buf = data ;
+    while( (buf=wxStrchr(buf,0x0d)) != NULL )
+    {
+        *buf = 0x0a ;
+        buf++ ;
+    }
+}
+
+void wxMacConvertNewlines10To13( wxChar * data )
+{
+    wxChar * buf =  data ;
+    while( (buf=wxStrchr(buf,0x0a)) != NULL )
+    {
+        *buf = 0x0d ;
+        buf++ ;
+    }
+}
+#endif
+
+wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding)
+{
+    TextEncodingBase enc = 0 ;
+    if ( encoding == wxFONTENCODING_DEFAULT )
+    {
+#if wxUSE_GUI
+        encoding = wxFont::GetDefaultEncoding() ;
+#else
+        encoding = wxLocale::GetSystemEncoding() ;
+#endif
+    }
+
+    switch( encoding)
+    {
+    case wxFONTENCODING_ISO8859_1 :
+        enc = kTextEncodingISOLatin1 ;
+        break ;
+    case wxFONTENCODING_ISO8859_2 :
+        enc = kTextEncodingISOLatin2;
+        break ;
+    case wxFONTENCODING_ISO8859_3 :
+        enc = kTextEncodingISOLatin3 ;
+        break ;
+    case wxFONTENCODING_ISO8859_4 :
+        enc = kTextEncodingISOLatin4;
+        break ;
+    case wxFONTENCODING_ISO8859_5 :
+        enc = kTextEncodingISOLatinCyrillic;
+        break ;
+    case wxFONTENCODING_ISO8859_6 :
+        enc = kTextEncodingISOLatinArabic;
+        break ;
+    case wxFONTENCODING_ISO8859_7 :
+        enc = kTextEncodingISOLatinGreek;
+        break ;
+    case wxFONTENCODING_ISO8859_8 :
+        enc = kTextEncodingISOLatinHebrew;
+        break ;
+    case wxFONTENCODING_ISO8859_9 :
+        enc = kTextEncodingISOLatin5;
+        break ;
+    case wxFONTENCODING_ISO8859_10 :
+        enc = kTextEncodingISOLatin6;
+        break ;
+    case wxFONTENCODING_ISO8859_13 :
+        enc = kTextEncodingISOLatin7;
+        break ;
+    case wxFONTENCODING_ISO8859_14 :
+        enc = kTextEncodingISOLatin8;
+        break ;
+    case wxFONTENCODING_ISO8859_15 :
+        enc = kTextEncodingISOLatin9;
+        break ;
+
+    case wxFONTENCODING_KOI8 :
+        enc = kTextEncodingKOI8_R;
+        break ;
+    case wxFONTENCODING_ALTERNATIVE : // MS-DOS CP866
+        enc = kTextEncodingDOSRussian;
+        break ;
+/*
+    case wxFONTENCODING_BULGARIAN :
+        enc = ;
+        break ;
+*/
+    case wxFONTENCODING_CP437 :
+        enc =kTextEncodingDOSLatinUS ;
+        break ;
+    case wxFONTENCODING_CP850 :
+        enc = kTextEncodingDOSLatin1;
+        break ;
+    case wxFONTENCODING_CP852 :
+        enc = kTextEncodingDOSLatin2;
+        break ;
+    case wxFONTENCODING_CP855 :
+        enc = kTextEncodingDOSCyrillic;
+        break ;
+    case wxFONTENCODING_CP866 :
+        enc =kTextEncodingDOSRussian ;
+        break ;
+    case wxFONTENCODING_CP874 :
+        enc = kTextEncodingDOSThai;
+        break ;
+    case wxFONTENCODING_CP932 :
+        enc = kTextEncodingDOSJapanese;
+        break ;
+    case wxFONTENCODING_CP936 :
+        enc = kTextEncodingDOSChineseSimplif ;
+        break ;
+    case wxFONTENCODING_CP949 :
+        enc = kTextEncodingDOSKorean;
+        break ;
+    case wxFONTENCODING_CP950 :
+        enc = kTextEncodingDOSChineseTrad;
+        break ;
+
+    case wxFONTENCODING_CP1250 :
+        enc = kTextEncodingWindowsLatin2;
+        break ;
+    case wxFONTENCODING_CP1251 :
+        enc =kTextEncodingWindowsCyrillic ;
+        break ;
+    case wxFONTENCODING_CP1252 :
+        enc =kTextEncodingWindowsLatin1 ;
+        break ;
+    case wxFONTENCODING_CP1253 :
+        enc = kTextEncodingWindowsGreek;
+        break ;
+    case wxFONTENCODING_CP1254 :
+        enc = kTextEncodingWindowsLatin5;
+        break ;
+    case wxFONTENCODING_CP1255 :
+        enc =kTextEncodingWindowsHebrew ;
+        break ;
+    case wxFONTENCODING_CP1256 :
+        enc =kTextEncodingWindowsArabic ;
+        break ;
+    case wxFONTENCODING_CP1257 :
+        enc = kTextEncodingWindowsBalticRim;
+        break ;
+
+    case wxFONTENCODING_UTF7 :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
+        break ;
+    case wxFONTENCODING_UTF8 :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
+        break ;
+    case wxFONTENCODING_EUC_JP :
+        enc = kTextEncodingEUC_JP;
+        break ;
+    case wxFONTENCODING_UTF16BE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF16LE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF32BE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF32LE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
+        break ;
+
+    case wxFONTENCODING_MACROMAN :
+        enc = kTextEncodingMacRoman ;
+        break ;
+    case wxFONTENCODING_MACJAPANESE :
+        enc = kTextEncodingMacJapanese ;
+        break ;
+    case wxFONTENCODING_MACCHINESETRAD :
+        enc = kTextEncodingMacChineseTrad ;
+        break ;
+    case wxFONTENCODING_MACKOREAN :
+        enc = kTextEncodingMacKorean ;
+        break ;
+    case wxFONTENCODING_MACARABIC :
+        enc = kTextEncodingMacArabic ;
+        break ;
+    case wxFONTENCODING_MACHEBREW :
+        enc = kTextEncodingMacHebrew ;
+        break ;
+    case wxFONTENCODING_MACGREEK :
+        enc = kTextEncodingMacGreek ;
+        break ;
+    case wxFONTENCODING_MACCYRILLIC :
+        enc = kTextEncodingMacCyrillic ;
+        break ;
+    case wxFONTENCODING_MACDEVANAGARI :
+        enc = kTextEncodingMacDevanagari ;
+        break ;
+    case wxFONTENCODING_MACGURMUKHI :
+        enc = kTextEncodingMacGurmukhi ;
+        break ;
+    case wxFONTENCODING_MACGUJARATI :
+        enc = kTextEncodingMacGujarati ;
+        break ;
+    case wxFONTENCODING_MACORIYA :
+        enc = kTextEncodingMacOriya ;
+        break ;
+    case wxFONTENCODING_MACBENGALI :
+        enc = kTextEncodingMacBengali ;
+        break ;
+    case wxFONTENCODING_MACTAMIL :
+        enc = kTextEncodingMacTamil ;
+        break ;
+    case wxFONTENCODING_MACTELUGU :
+        enc = kTextEncodingMacTelugu ;
+        break ;
+    case wxFONTENCODING_MACKANNADA :
+        enc = kTextEncodingMacKannada ;
+        break ;
+    case wxFONTENCODING_MACMALAJALAM :
+        enc = kTextEncodingMacMalayalam ;
+        break ;
+    case wxFONTENCODING_MACSINHALESE :
+        enc = kTextEncodingMacSinhalese ;
+        break ;
+    case wxFONTENCODING_MACBURMESE :
+        enc = kTextEncodingMacBurmese ;
+        break ;
+    case wxFONTENCODING_MACKHMER :
+        enc = kTextEncodingMacKhmer ;
+        break ;
+    case wxFONTENCODING_MACTHAI :
+        enc = kTextEncodingMacThai ;
+        break ;
+    case wxFONTENCODING_MACLAOTIAN :
+        enc = kTextEncodingMacLaotian ;
+        break ;
+    case wxFONTENCODING_MACGEORGIAN :
+        enc = kTextEncodingMacGeorgian ;
+        break ;
+    case wxFONTENCODING_MACARMENIAN :
+        enc = kTextEncodingMacArmenian ;
+        break ;
+    case wxFONTENCODING_MACCHINESESIMP :
+        enc = kTextEncodingMacChineseSimp ;
+        break ;
+    case wxFONTENCODING_MACTIBETAN :
+        enc = kTextEncodingMacTibetan ;
+        break ;
+    case wxFONTENCODING_MACMONGOLIAN :
+        enc = kTextEncodingMacMongolian ;
+        break ;
+    case wxFONTENCODING_MACETHIOPIC :
+        enc = kTextEncodingMacEthiopic ;
+        break ;
+    case wxFONTENCODING_MACCENTRALEUR :
+        enc = kTextEncodingMacCentralEurRoman ;
+        break ;
+    case wxFONTENCODING_MACVIATNAMESE :
+        enc = kTextEncodingMacVietnamese ;
+        break ;
+    case wxFONTENCODING_MACARABICEXT :
+        enc = kTextEncodingMacExtArabic ;
+        break ;
+    case wxFONTENCODING_MACSYMBOL :
+        enc = kTextEncodingMacSymbol ;
+        break ;
+    case wxFONTENCODING_MACDINGBATS :
+        enc = kTextEncodingMacDingbats ;
+        break ;
+    case wxFONTENCODING_MACTURKISH :
+        enc = kTextEncodingMacTurkish ;
+        break ;
+    case wxFONTENCODING_MACCROATIAN :
+        enc = kTextEncodingMacCroatian ;
+        break ;
+    case wxFONTENCODING_MACICELANDIC :
+        enc = kTextEncodingMacIcelandic ;
+        break ;
+    case wxFONTENCODING_MACROMANIAN :
+        enc = kTextEncodingMacRomanian ;
+        break ;
+    case wxFONTENCODING_MACCELTIC :
+        enc = kTextEncodingMacCeltic ;
+        break ;
+    case wxFONTENCODING_MACGAELIC :
+        enc = kTextEncodingMacGaelic ;
+        break ;
+    case wxFONTENCODING_MACKEYBOARD :
+        enc = kTextEncodingMacKeyboardGlyphs ;
+        break ;
+    default : // to make gcc happy
+        break ;
+    };
+    return enc ;
+}
+
+wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding)
+{
+    wxFontEncoding enc = wxFONTENCODING_DEFAULT ;
+
+    switch( encoding)
+    {
+    case kTextEncodingISOLatin1  :
+        enc = wxFONTENCODING_ISO8859_1 ;
+        break ;
+    case kTextEncodingISOLatin2 :
+        enc = wxFONTENCODING_ISO8859_2;
+        break ;
+    case kTextEncodingISOLatin3 :
+        enc = wxFONTENCODING_ISO8859_3 ;
+        break ;
+    case kTextEncodingISOLatin4 :
+        enc = wxFONTENCODING_ISO8859_4;
+        break ;
+    case kTextEncodingISOLatinCyrillic :
+        enc = wxFONTENCODING_ISO8859_5;
+        break ;
+    case kTextEncodingISOLatinArabic :
+        enc = wxFONTENCODING_ISO8859_6;
+        break ;
+    case kTextEncodingISOLatinGreek :
+        enc = wxFONTENCODING_ISO8859_7;
+        break ;
+    case kTextEncodingISOLatinHebrew :
+        enc = wxFONTENCODING_ISO8859_8;
+        break ;
+    case kTextEncodingISOLatin5 :
+        enc = wxFONTENCODING_ISO8859_9;
+        break ;
+    case kTextEncodingISOLatin6 :
+        enc = wxFONTENCODING_ISO8859_10;
+        break ;
+    case kTextEncodingISOLatin7 :
+        enc = wxFONTENCODING_ISO8859_13;
+        break ;
+    case kTextEncodingISOLatin8 :
+        enc = wxFONTENCODING_ISO8859_14;
+        break ;
+    case kTextEncodingISOLatin9 :
+        enc =wxFONTENCODING_ISO8859_15 ;
+        break ;
+
+    case kTextEncodingKOI8_R :
+        enc = wxFONTENCODING_KOI8;
+        break ;
+/*
+    case  :
+        enc = wxFONTENCODING_BULGARIAN;
+        break ;
+*/
+    case kTextEncodingDOSLatinUS :
+        enc = wxFONTENCODING_CP437;
+        break ;
+    case kTextEncodingDOSLatin1 :
+        enc = wxFONTENCODING_CP850;
+        break ;
+    case kTextEncodingDOSLatin2 :
+        enc =wxFONTENCODING_CP852 ;
+        break ;
+    case kTextEncodingDOSCyrillic :
+        enc = wxFONTENCODING_CP855;
+        break ;
+    case kTextEncodingDOSRussian :
+        enc = wxFONTENCODING_CP866;
+        break ;
+    case kTextEncodingDOSThai :
+        enc =wxFONTENCODING_CP874 ;
+        break ;
+    case kTextEncodingDOSJapanese :
+        enc = wxFONTENCODING_CP932;
+        break ;
+    case kTextEncodingDOSChineseSimplif :
+        enc = wxFONTENCODING_CP936;
+        break ;
+    case kTextEncodingDOSKorean :
+        enc = wxFONTENCODING_CP949;
+        break ;
+    case kTextEncodingDOSChineseTrad :
+        enc = wxFONTENCODING_CP950;
+        break ;
+
+    case kTextEncodingWindowsLatin2 :
+        enc = wxFONTENCODING_CP1250;
+        break ;
+    case kTextEncodingWindowsCyrillic :
+        enc = wxFONTENCODING_CP1251;
+        break ;
+    case kTextEncodingWindowsLatin1 :
+        enc = wxFONTENCODING_CP1252;
+        break ;
+    case kTextEncodingWindowsGreek :
+        enc = wxFONTENCODING_CP1253;
+        break ;
+    case kTextEncodingWindowsLatin5 :
+        enc = wxFONTENCODING_CP1254;
+        break ;
+    case kTextEncodingWindowsHebrew :
+        enc = wxFONTENCODING_CP1255;
+        break ;
+    case kTextEncodingWindowsArabic :
+        enc = wxFONTENCODING_CP1256;
+        break ;
+    case kTextEncodingWindowsBalticRim :
+        enc =wxFONTENCODING_CP1257 ;
+        break ;
+    case kTextEncodingEUC_JP :
+        enc = wxFONTENCODING_EUC_JP;
+        break ;
+#if 0
+    case wxFONTENCODING_UTF7 :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF7Format) ;
+        break ;
+    case wxFONTENCODING_UTF8 :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicodeUTF8Format) ;
+        break ;
+    case wxFONTENCODING_UTF16BE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF16LE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF32BE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
+        break ;
+    case wxFONTENCODING_UTF32LE :
+        enc = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode32BitFormat) ;
+        break ;
+#endif
+    case kTextEncodingMacRoman :
+        enc = wxFONTENCODING_MACROMAN ;
+        break ;
+    case kTextEncodingMacJapanese :
+        enc = wxFONTENCODING_MACJAPANESE ;
+        break ;
+    case kTextEncodingMacChineseTrad :
+        enc = wxFONTENCODING_MACCHINESETRAD ;
+        break ;
+    case kTextEncodingMacKorean :
+        enc = wxFONTENCODING_MACKOREAN ;
+        break ;
+    case kTextEncodingMacArabic :
+        enc =wxFONTENCODING_MACARABIC ;
+        break ;
+    case kTextEncodingMacHebrew :
+        enc = wxFONTENCODING_MACHEBREW ;
+        break ;
+    case kTextEncodingMacGreek :
+        enc = wxFONTENCODING_MACGREEK ;
+        break ;
+    case kTextEncodingMacCyrillic :
+        enc = wxFONTENCODING_MACCYRILLIC ;
+        break ;
+    case kTextEncodingMacDevanagari :
+        enc = wxFONTENCODING_MACDEVANAGARI ;
+        break ;
+    case kTextEncodingMacGurmukhi :
+        enc = wxFONTENCODING_MACGURMUKHI ;
+        break ;
+    case kTextEncodingMacGujarati :
+        enc = wxFONTENCODING_MACGUJARATI ;
+        break ;
+    case kTextEncodingMacOriya :
+        enc =wxFONTENCODING_MACORIYA ;
+        break ;
+    case kTextEncodingMacBengali :
+        enc =wxFONTENCODING_MACBENGALI ;
+        break ;
+    case kTextEncodingMacTamil :
+        enc = wxFONTENCODING_MACTAMIL ;
+        break ;
+    case kTextEncodingMacTelugu :
+        enc = wxFONTENCODING_MACTELUGU ;
+        break ;
+    case kTextEncodingMacKannada :
+        enc = wxFONTENCODING_MACKANNADA ;
+        break ;
+    case kTextEncodingMacMalayalam :
+        enc = wxFONTENCODING_MACMALAJALAM ;
+        break ;
+    case kTextEncodingMacSinhalese :
+        enc = wxFONTENCODING_MACSINHALESE ;
+        break ;
+    case kTextEncodingMacBurmese :
+        enc = wxFONTENCODING_MACBURMESE ;
+        break ;
+    case kTextEncodingMacKhmer :
+        enc = wxFONTENCODING_MACKHMER ;
+        break ;
+    case kTextEncodingMacThai :
+        enc = wxFONTENCODING_MACTHAI ;
+        break ;
+    case kTextEncodingMacLaotian :
+        enc = wxFONTENCODING_MACLAOTIAN ;
+        break ;
+    case kTextEncodingMacGeorgian :
+        enc = wxFONTENCODING_MACGEORGIAN ;
+        break ;
+    case kTextEncodingMacArmenian :
+        enc = wxFONTENCODING_MACARMENIAN ;
+        break ;
+    case kTextEncodingMacChineseSimp :
+        enc = wxFONTENCODING_MACCHINESESIMP ;
+        break ;
+    case kTextEncodingMacTibetan :
+        enc = wxFONTENCODING_MACTIBETAN ;
+        break ;
+    case kTextEncodingMacMongolian :
+        enc = wxFONTENCODING_MACMONGOLIAN ;
+        break ;
+    case kTextEncodingMacEthiopic :
+        enc = wxFONTENCODING_MACETHIOPIC ;
+        break ;
+    case kTextEncodingMacCentralEurRoman:
+        enc = wxFONTENCODING_MACCENTRALEUR  ;
+        break ;
+    case kTextEncodingMacVietnamese:
+        enc = wxFONTENCODING_MACVIATNAMESE  ;
+        break ;
+    case kTextEncodingMacExtArabic :
+        enc = wxFONTENCODING_MACARABICEXT ;
+        break ;
+    case kTextEncodingMacSymbol :
+        enc = wxFONTENCODING_MACSYMBOL ;
+        break ;
+    case kTextEncodingMacDingbats :
+        enc = wxFONTENCODING_MACDINGBATS ;
+        break ;
+    case kTextEncodingMacTurkish :
+        enc = wxFONTENCODING_MACTURKISH ;
+        break ;
+    case kTextEncodingMacCroatian :
+        enc = wxFONTENCODING_MACCROATIAN ;
+        break ;
+    case kTextEncodingMacIcelandic :
+        enc = wxFONTENCODING_MACICELANDIC ;
+        break ;
+    case kTextEncodingMacRomanian :
+        enc = wxFONTENCODING_MACROMANIAN ;
+        break ;
+    case kTextEncodingMacCeltic :
+        enc = wxFONTENCODING_MACCELTIC ;
+        break ;
+    case kTextEncodingMacGaelic :
+        enc = wxFONTENCODING_MACGAELIC ;
+        break ;
+    case kTextEncodingMacKeyboardGlyphs :
+        enc = wxFONTENCODING_MACKEYBOARD ;
+        break ;
+    } ;
+    return enc ;
+}
+
+
+//
+// CFStringRefs (Carbon only)
+//
+
+// converts this string into a carbon foundation string with optional pc 2 mac encoding
+void wxMacCFStringHolder::Assign( const wxString &st , wxFontEncoding encoding )
+{
+    Release() ;
+
+    wxString str = st ;
+    wxMacConvertNewlines13To10( &str ) ;
+#if wxUSE_UNICODE
+#if SIZEOF_WCHAR_T == 2
+    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 ;
+#endif
+#else // not wxUSE_UNICODE
+    m_cfs = CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
+        wxMacGetSystemEncFromFontEnc( encoding ) ) ;
+#endif
+    m_release = true ;
+}
+
+wxString wxMacCFStringHolder::AsString(wxFontEncoding encoding)
+{
+    Size cflen = CFStringGetLength( m_cfs )  ;
+    size_t noChars ;
+    wxChar* buf = NULL ;
+
+#if wxUSE_UNICODE
+#if SIZEOF_WCHAR_T == 2
+    buf = new wxChar[ cflen + 1 ] ;
+    CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) buf ) ;
+    noChars = cflen ;
+#else
+    UniChar* unibuf = new UniChar[ cflen + 1 ] ;
+    CFStringGetCharacters( m_cfs , CFRangeMake( 0 , cflen ) , (UniChar*) unibuf ) ;
+    unibuf[cflen] = 0 ;
+    wxMBConvUTF16BE converter ;
+    noChars = converter.MB2WC( NULL , (const char*)unibuf , 0 ) ;
+    buf = new wxChar[ noChars + 1 ] ;
+    converter.MB2WC( buf , (const char*)unibuf , noChars ) ;
+    delete[] unibuf ;
+#endif
+#else
+    CFIndex cStrLen ;
+    CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
+        '?' , false , NULL , 0 , &cStrLen ) ;
+    buf = new wxChar[ cStrLen + 1 ] ;
+    CFStringGetBytes( m_cfs , CFRangeMake(0, cflen) , wxMacGetSystemEncFromFontEnc( encoding ) ,
+        '?' , false , (unsigned char*) buf , cStrLen , &cStrLen) ;
+    noChars = cStrLen ;
+#endif
+
+    buf[noChars] = 0 ;
+    wxMacConvertNewlines10To13( buf ) ;
+    wxString result(buf) ;
+    delete[] buf ;
+    return result ;
+}
+