]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/intl.cpp
cleanup mac
[wxWidgets.git] / src / common / intl.cpp
index a90f2526d0cad1597b22b4a43108b9c616c77d4f..7c8323ab1859ae5d70ef5eb39bc52e411ffd19c6 100644 (file)
 #include "wx/filesys.h"
 
 #if defined(__WXMAC__)
-    #include  "wx/mac/private.h"  // includes mac headers
+    #include "wx/mac/private.h"  // includes mac headers
+#endif
+
+#if defined(__DARWIN__)
+       #include "wx/mac/corefoundation/cfref.h"
+       #include <CoreFoundation/CFLocale.h>
+       #include "wx/mac/corefoundation/cfstring.h"
 #endif
 
 // ----------------------------------------------------------------------------
@@ -2472,11 +2478,7 @@ wxFontEncoding wxLocale::GetSystemEncoding()
     }
 #elif defined(__WXMAC__)
     TextEncoding encoding = 0 ;
-#if TARGET_CARBON
     encoding = CFStringGetSystemEncoding() ;
-#else
-    UpgradeScriptInfoToTextEncoding ( smSystemScript , kTextLanguageDontCare , kTextRegionDontCare , NULL , &encoding ) ;
-#endif
     return wxMacGetFontEncFromSystemEnc( encoding ) ;
 #elif defined(__UNIX_LIKE__) && wxUSE_FONTMAP
     const wxString encname = GetSystemEncodingName();
@@ -2860,7 +2862,7 @@ bool wxLocale::AddCatalog(const wxString& szDomain,
 // accessors for locale-dependent data
 // ----------------------------------------------------------------------------
 
-#ifdef __WXMSW__
+#if defined(__WXMSW__)
 
 /* static */
 wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
@@ -2900,7 +2902,33 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
     return str;
 }
 
-#else // !__WXMSW__
+#elif defined(__DARWIN__)
+
+/* static */
+wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
+{
+    wxCFRef<CFLocaleRef> userLocaleRef(CFLocaleCopyCurrent());
+    CFTypeRef cfstr;
+    switch ( index )
+    {
+        case wxLOCALE_THOUSANDS_SEP:
+            cfstr = CFLocaleGetValue(userLocaleRef, kCFLocaleGroupingSeparator);
+            break;
+
+        case wxLOCALE_DECIMAL_POINT:
+            cfstr = CFLocaleGetValue(userLocaleRef, kCFLocaleDecimalSeparator);
+            break;
+
+        default:
+            wxFAIL_MSG( "Unknown locale info" );
+    }
+
+    wxMacCFStringHolder
+        str(CFStringCreateCopy(NULL, static_cast<CFStringRef>(cfstr)));
+    return str.AsString();
+}
+
+#else // !__WXMSW__ && !__DARWIN__
 
 /* static */
 wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
@@ -2937,7 +2965,7 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
     }
 }
 
-#endif // __WXMSW__/!__WXMSW__
+#endif // platform
 
 // ----------------------------------------------------------------------------
 // global functions and variables