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
This commit is contained in:
Vadim Zeitlin
2012-06-01 11:01:46 +00:00
parent 0980e7b323
commit 2253f18176
6 changed files with 37 additions and 2 deletions

View File

@@ -560,6 +560,7 @@ All (GUI):
- Fully implement wxStyledTextCtrl::PositionToXY() (troelsk). - Fully implement wxStyledTextCtrl::PositionToXY() (troelsk).
- Added wxDataViewListCtrl::{Set,Get}ItemData(). - Added wxDataViewListCtrl::{Set,Get}ItemData().
- Added wxDataViewListCtrl::GetItemCount() (Kry). - Added wxDataViewListCtrl::GetItemCount() (Kry).
- Added support for Korean Johab and Vietnamese encodings (jank9201).
GTK: GTK:

View File

@@ -65,6 +65,8 @@ enum wxFontEncoding
wxFONTENCODING_CP1255, // WinHebrew wxFONTENCODING_CP1255, // WinHebrew
wxFONTENCODING_CP1256, // WinArabic wxFONTENCODING_CP1256, // WinArabic
wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7) wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
wxFONTENCODING_CP1258, // WinVietnamese
wxFONTENCODING_CP1361, // Johab Korean character set.
wxFONTENCODING_CP12_MAX, wxFONTENCODING_CP12_MAX,
wxFONTENCODING_UTF7, // UTF-7 Unicode encoding wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
@@ -151,7 +153,11 @@ enum wxFontEncoding
wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, // Shift JIS wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, // Shift JIS
// Korean (CP 949 not actually the same but close enough) // 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_ #endif // _WX_FONTENC_H_

View File

@@ -191,6 +191,8 @@ enum wxFontEncoding
wxFONTENCODING_CP1255, //!< WinHebrew wxFONTENCODING_CP1255, //!< WinHebrew
wxFONTENCODING_CP1256, //!< WinArabic wxFONTENCODING_CP1256, //!< WinArabic
wxFONTENCODING_CP1257, //!< WinBaltic (same as Latin 7) 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_CP12_MAX,
wxFONTENCODING_UTF7, //!< UTF-7 Unicode encoding wxFONTENCODING_UTF7, //!< UTF-7 Unicode encoding
@@ -262,7 +264,9 @@ enum wxFontEncoding
wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, //!< Simplified Chinese wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, //!< Simplified Chinese
wxFONTENCODING_BIG5 = wxFONTENCODING_CP950, //!< Traditional Chinese wxFONTENCODING_BIG5 = wxFONTENCODING_CP950, //!< Traditional Chinese
wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, //!< Shift JIS 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)
}; };

View File

@@ -88,6 +88,8 @@ static const wxFontEncoding gs_encodings[] =
wxFONTENCODING_CP1255, wxFONTENCODING_CP1255,
wxFONTENCODING_CP1256, wxFONTENCODING_CP1256,
wxFONTENCODING_CP1257, wxFONTENCODING_CP1257,
wxFONTENCODING_CP1258,
wxFONTENCODING_CP1361,
wxFONTENCODING_CP437, wxFONTENCODING_CP437,
wxFONTENCODING_UTF7, wxFONTENCODING_UTF7,
wxFONTENCODING_UTF8, wxFONTENCODING_UTF8,
@@ -175,6 +177,8 @@ static const char* const gs_encodingDescs[] =
wxTRANSLATE( "Windows Hebrew (CP 1255)" ), wxTRANSLATE( "Windows Hebrew (CP 1255)" ),
wxTRANSLATE( "Windows Arabic (CP 1256)" ), wxTRANSLATE( "Windows Arabic (CP 1256)" ),
wxTRANSLATE( "Windows Baltic (CP 1257)" ), wxTRANSLATE( "Windows Baltic (CP 1257)" ),
wxTRANSLATE( "Windows Vietnamese (CP 1258)" ),
wxTRANSLATE( "Windows Johab (CP 1361)" ),
wxTRANSLATE( "Windows/DOS OEM (CP 437)" ), wxTRANSLATE( "Windows/DOS OEM (CP 437)" ),
wxTRANSLATE( "Unicode 7 bit (UTF-7)" ), wxTRANSLATE( "Unicode 7 bit (UTF-7)" ),
wxTRANSLATE( "Unicode 8 bit (UTF-8)" ), 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-1255" ),wxT( "CP1255" ),wxT( "MS1255" ),wxT( "IBM-1255" ),NULL },
{ wxT( "WINDOWS-1256" ),wxT( "CP1256" ),wxT( "MS1256" ),wxT( "IBM-1256" ),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-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( "WINDOWS-437" ), wxT( "CP437" ), wxT( "MS437" ), wxT( "IBM-437" ), NULL },
{ wxT( "UTF-7" ), wxT("UTF7"), NULL }, { wxT( "UTF-7" ), wxT("UTF7"), NULL },
@@ -750,6 +756,14 @@ wxFontMapperBase::NonInteractiveCharsetToEncoding(const wxString& charset)
case 950: case 950:
encoding = wxFONTENCODING_CP950; encoding = wxFONTENCODING_CP950;
break; break;
case 1258:
encoding = wxFONTENCODING_CP1258;
break;
case 1361:
encoding = wxFONTENCODING_CP1361;
break;
} }
} }
} }

View File

@@ -99,6 +99,8 @@ wxENUM_MEMBER( wxFONTENCODING_CP1254 )
wxENUM_MEMBER( wxFONTENCODING_CP1255 ) wxENUM_MEMBER( wxFONTENCODING_CP1255 )
wxENUM_MEMBER( wxFONTENCODING_CP1256 ) wxENUM_MEMBER( wxFONTENCODING_CP1256 )
wxENUM_MEMBER( wxFONTENCODING_CP1257 ) wxENUM_MEMBER( wxFONTENCODING_CP1257 )
wxENUM_MEMBER( wxFONTENCODING_CP1258 )
wxENUM_MEMBER( wxFONTENCODING_CP1361 )
wxENUM_MEMBER( wxFONTENCODING_CP12_MAX ) wxENUM_MEMBER( wxFONTENCODING_CP12_MAX )
wxENUM_MEMBER( wxFONTENCODING_UTF7 ) wxENUM_MEMBER( wxFONTENCODING_UTF7 )
wxENUM_MEMBER( wxFONTENCODING_UTF8 ) wxENUM_MEMBER( wxFONTENCODING_UTF8 )

View File

@@ -251,6 +251,14 @@ wxFontEncoding wxGetFontEncFromCharSet(int cs)
fontEncoding = wxFONTENCODING_CP950; fontEncoding = wxFONTENCODING_CP950;
break; break;
case VIETNAMESE_CHARSET:
fontEncoding = wxFONTENCODING_CP1258;
break;
case JOHAB_CHARSET:
fontEncoding = wxFONTENCODING_CP1361;
break;
#endif // Win32 #endif // Win32
case OEM_CHARSET: case OEM_CHARSET: