From 2253f18176217efc2393213562483d5dbe11b704 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 1 Jun 2012 11:01:46 +0000 Subject: [PATCH] Add support for CP1258 (Vietnamese) and CP1361 (Korean Johab) encodings. Recognize these encodings names and translate them to/from the corresponding charset constants in wxMSW. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + include/wx/fontenc.h | 8 +++++++- interface/wx/font.h | 6 +++++- src/common/fmapbase.cpp | 14 ++++++++++++++ src/common/fontmap.cpp | 2 ++ src/msw/fontutil.cpp | 8 ++++++++ 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 0b66531330..01526ba6a9 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -560,6 +560,7 @@ All (GUI): - Fully implement wxStyledTextCtrl::PositionToXY() (troelsk). - Added wxDataViewListCtrl::{Set,Get}ItemData(). - Added wxDataViewListCtrl::GetItemCount() (Kry). +- Added support for Korean Johab and Vietnamese encodings (jank9201). GTK: diff --git a/include/wx/fontenc.h b/include/wx/fontenc.h index 0a649c423b..65dc4cd78f 100644 --- a/include/wx/fontenc.h +++ b/include/wx/fontenc.h @@ -65,6 +65,8 @@ enum wxFontEncoding wxFONTENCODING_CP1255, // WinHebrew wxFONTENCODING_CP1256, // WinArabic wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7) + wxFONTENCODING_CP1258, // WinVietnamese + wxFONTENCODING_CP1361, // Johab Korean character set. wxFONTENCODING_CP12_MAX, wxFONTENCODING_UTF7, // UTF-7 Unicode encoding @@ -151,7 +153,11 @@ enum wxFontEncoding wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, // Shift JIS // Korean (CP 949 not actually the same but close enough) - wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949 + wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949, + wxFONTENCODING_JOHAB = wxFONTENCODING_CP1361, + + // Vietnamese + wxFONTENCODING_VIETNAMESE = wxFONTENCODING_CP1258 }; #endif // _WX_FONTENC_H_ diff --git a/interface/wx/font.h b/interface/wx/font.h index dab6d19b2a..38238a2216 100644 --- a/interface/wx/font.h +++ b/interface/wx/font.h @@ -191,6 +191,8 @@ enum wxFontEncoding wxFONTENCODING_CP1255, //!< WinHebrew wxFONTENCODING_CP1256, //!< WinArabic wxFONTENCODING_CP1257, //!< WinBaltic (same as Latin 7) + wxFONTENCODING_CP1258, //!< WinVietnamese (since 2.9.4) + wxFONTENCODING_CP1361, //!< Johab Korean character set (since 2.9.4) wxFONTENCODING_CP12_MAX, wxFONTENCODING_UTF7, //!< UTF-7 Unicode encoding @@ -262,7 +264,9 @@ enum wxFontEncoding wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, //!< Simplified Chinese wxFONTENCODING_BIG5 = wxFONTENCODING_CP950, //!< Traditional Chinese wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, //!< Shift JIS - wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949 //!< Korean + wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949, //!< Korean + wxFONTENCODING_JOHAB = wxFONTENCODING_CP1361, //!< Korean Johab (since 2.9.4) + wxFONTENCODING_VIETNAMESE = wxFONTENCODING_CP1258 //!< Vietnamese (since 2.9.4) }; diff --git a/src/common/fmapbase.cpp b/src/common/fmapbase.cpp index c9a529a63a..5693f8c0ad 100644 --- a/src/common/fmapbase.cpp +++ b/src/common/fmapbase.cpp @@ -88,6 +88,8 @@ static const wxFontEncoding gs_encodings[] = wxFONTENCODING_CP1255, wxFONTENCODING_CP1256, wxFONTENCODING_CP1257, + wxFONTENCODING_CP1258, + wxFONTENCODING_CP1361, wxFONTENCODING_CP437, wxFONTENCODING_UTF7, wxFONTENCODING_UTF8, @@ -175,6 +177,8 @@ static const char* const gs_encodingDescs[] = wxTRANSLATE( "Windows Hebrew (CP 1255)" ), wxTRANSLATE( "Windows Arabic (CP 1256)" ), wxTRANSLATE( "Windows Baltic (CP 1257)" ), + wxTRANSLATE( "Windows Vietnamese (CP 1258)" ), + wxTRANSLATE( "Windows Johab (CP 1361)" ), wxTRANSLATE( "Windows/DOS OEM (CP 437)" ), wxTRANSLATE( "Unicode 7 bit (UTF-7)" ), wxTRANSLATE( "Unicode 8 bit (UTF-8)" ), @@ -277,6 +281,8 @@ static const wxChar* const gs_encodingNames[][9] = { wxT( "WINDOWS-1255" ),wxT( "CP1255" ),wxT( "MS1255" ),wxT( "IBM-1255" ),NULL }, { wxT( "WINDOWS-1256" ),wxT( "CP1256" ),wxT( "MS1256" ),wxT( "IBM-1256" ),NULL }, { wxT( "WINDOWS-1257" ),wxT( "CP1257" ),wxT( "MS1257" ),wxT( "IBM-1257" ),NULL }, + { wxT( "WINDOWS-1258" ),wxT( "CP1258" ),wxT( "MS1258" ),wxT( "IBM-1258" ),NULL }, + { wxT( "WINDOWS-1361" ),wxT( "CP1361" ),wxT( "MS1361" ),wxT( "IBM-1361" ), wxT( "JOHAB" ), NULL }, { wxT( "WINDOWS-437" ), wxT( "CP437" ), wxT( "MS437" ), wxT( "IBM-437" ), NULL }, { wxT( "UTF-7" ), wxT("UTF7"), NULL }, @@ -750,6 +756,14 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset) case 950: encoding = wxFONTENCODING_CP950; break; + + case 1258: + encoding = wxFONTENCODING_CP1258; + break; + + case 1361: + encoding = wxFONTENCODING_CP1361; + break; } } } diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp index 4f969fa5d4..ee567ab31d 100644 --- a/src/common/fontmap.cpp +++ b/src/common/fontmap.cpp @@ -99,6 +99,8 @@ wxENUM_MEMBER( wxFONTENCODING_CP1254 ) wxENUM_MEMBER( wxFONTENCODING_CP1255 ) wxENUM_MEMBER( wxFONTENCODING_CP1256 ) wxENUM_MEMBER( wxFONTENCODING_CP1257 ) +wxENUM_MEMBER( wxFONTENCODING_CP1258 ) +wxENUM_MEMBER( wxFONTENCODING_CP1361 ) wxENUM_MEMBER( wxFONTENCODING_CP12_MAX ) wxENUM_MEMBER( wxFONTENCODING_UTF7 ) wxENUM_MEMBER( wxFONTENCODING_UTF8 ) diff --git a/src/msw/fontutil.cpp b/src/msw/fontutil.cpp index 03367c7bc3..f7c3952b15 100644 --- a/src/msw/fontutil.cpp +++ b/src/msw/fontutil.cpp @@ -251,6 +251,14 @@ wxFontEncoding wxGetFontEncFromCharSet(int cs) fontEncoding = wxFONTENCODING_CP950; break; + case VIETNAMESE_CHARSET: + fontEncoding = wxFONTENCODING_CP1258; + break; + + case JOHAB_CHARSET: + fontEncoding = wxFONTENCODING_CP1361; + break; + #endif // Win32 case OEM_CHARSET: -- 2.45.2