From ea65760d5c9b3bd69cd6b2834abcb7c9dc514321 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 11 Feb 2008 23:23:10 +0000 Subject: [PATCH] avoid duplication in the code by refactoring LCID creation from wxLanguageInfo::WinLang and WinSublang in a member function git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/intl.h | 9 +++++++-- src/common/intl.cpp | 31 ++++++++++++++++++------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/include/wx/intl.h b/include/wx/intl.h index 6f297c89e9..57a3ec0638 100644 --- a/include/wx/intl.h +++ b/include/wx/intl.h @@ -321,12 +321,17 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo { int Language; // wxLanguage id wxString CanonicalName; // Canonical name, e.g. fr_FR -#ifdef __WIN32__ +#ifdef __WXMSW__ wxUint32 WinLang, // Win32 language identifiers WinSublang; -#endif // __WIN32__ +#endif // __WXMSW__ wxString Description; // human-readable name of the language wxLayoutDirection LayoutDirection; + +#ifdef __WXMSW__ + // return the LCID corresponding to this language + wxUint32 GetLCID() const; +#endif // __WXMSW__ }; // ---------------------------------------------------------------------------- diff --git a/src/common/intl.cpp b/src/common/intl.cpp index 402c20f26a..9294c25045 100644 --- a/src/common/intl.cpp +++ b/src/common/intl.cpp @@ -1012,6 +1012,19 @@ static wxArrayString gs_searchPrefixes; // implementation // ============================================================================ +// ---------------------------------------------------------------------------- +// wxLanguageInfo +// ---------------------------------------------------------------------------- + +#ifdef __WXMSW__ + +wxUint32 wxLanguageInfo::GetLCID() const +{ + return MAKELCID(MAKELANGID(WinLang, WinSublang), SORT_DEFAULT); +} + +#endif // __WXMSW__ + // ---------------------------------------------------------------------------- // wxMsgCatalogFile class // ---------------------------------------------------------------------------- @@ -1812,8 +1825,8 @@ bool wxLocale::Init(int language, int flags) = -1 #endif ; - wxUint32 lcid = MAKELCID(MAKELANGID(info->WinLang, info->WinSublang), - SORT_DEFAULT); + const wxUint32 lcid = info->GetLCID(); + // FIXME #ifndef __WXWINCE__ SetThreadLocale(lcid); @@ -2510,12 +2523,7 @@ bool wxLocale::IsAvailable(int lang) if ( !info->WinLang ) return false; - if ( !::IsValidLocale - ( - MAKELCID(MAKELANGID(info->WinLang, info->WinSublang), - SORT_DEFAULT), - LCID_INSTALLED - ) ) + if ( !::IsValidLocale(info->GetLCID(), LCID_INSTALLED) ) return false; #elif defined(__UNIX__) @@ -2603,11 +2611,8 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat)) if (wxGetLocale()) { const wxLanguageInfo *info = GetLanguageInfo(wxGetLocale()->GetLanguage()); - if (info) - { ; - lcid = MAKELCID(MAKELANGID(info->WinLang, info->WinSublang), - SORT_DEFAULT); - } + if ( info ) + lcid = info->GetLCID(); } wxString str; -- 2.47.2