From e0c3d1e0d5c5d52f4d22ab3f253dc3ae5224df02 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 10 Feb 2008 00:12:55 +0000 Subject: [PATCH] backported Mac version of GetInfo() from trunk git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@51626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/intl.cpp | 49 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/src/common/intl.cpp b/src/common/intl.cpp index f7d751ede9..b4583f8514 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -74,6 +74,12 @@ #include "wx/mac/private.h" // includes mac headers #endif +#if defined(__DARWIN__) + #include "wx/mac/corefoundation/cfref.h" + #include + #include "wx/mac/corefoundation/cfstring.h" +#endif + // ---------------------------------------------------------------------------- // simple types // ---------------------------------------------------------------------------- @@ -2871,7 +2877,48 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) return str; } -#else // !__WXMSW__ +#elif defined(__DARWIN__) + +/* static */ +wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) +{ + CFLocaleRef userLocaleRefRaw; + if ( wxGetLocale() ) + { + userLocaleRefRaw = CFLocaleCreate + ( + kCFAllocatorDefault, + wxCFStringRef(wxGetLocale()->GetCanonicalName()) + ); + } + else // no current locale, use the default one + { + userLocaleRefRaw = CFLocaleCopyCurrent(); + } + + wxCFRef userLocaleRef(userLocaleRefRaw); + + 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" ); + } + + wxCFStringRef + str(CFStringCreateCopy(NULL, static_cast(cfstr))); + return str.AsString(); +} + +#else // !__WXMSW__ && !__DARWIN__ /* static */ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)