From dff6cf576a6c42b166c9909b29efa128a492f22d Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 4 Nov 2007 16:01:05 +0000 Subject: [PATCH] implement wxLocale::GetInfo() using CFLocale (modified patch 1760939) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/common/intl.cpp | 39 +++++++++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 79c2c314d5..45fcba561a 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -248,6 +248,7 @@ wxMac: - Fix duplicate (empty) help menu in non-English programs (Andreas Jacobs). - Allow accelerators to be used with buttons too (Ryan Wilcox). - Support resource forks in wxCopyFile() (Hank Schultz). +- Implement wxLocale::GetInfo() using CFLocale wxMSW: diff --git a/src/common/intl.cpp b/src/common/intl.cpp index a90f2526d0..58aaf5c018 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -73,7 +73,12 @@ #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(__WXOSX__) + #include "wx/mac/corefoundation/cfstring.h" + #include "wx/mac/corefoundation/cfref.h" #endif // ---------------------------------------------------------------------------- @@ -2860,7 +2865,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 +2905,33 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) return str; } -#else // !__WXMSW__ +#elif defined(__WXOSX__) + +/* static */ +wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) +{ + wxCFRef 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(cfstr))); + return str.AsString(); +} + +#else // !__WXMSW__ && !__WXMAC__ /* static */ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) @@ -2937,7 +2968,7 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) } } -#endif // __WXMSW__/!__WXMSW__ +#endif // platform // ---------------------------------------------------------------------------- // global functions and variables -- 2.47.2