Allow to set a style's wxFontEncoding
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
108
src/stc/stc.cpp
108
src/stc/stc.cpp
@@ -622,11 +622,6 @@ void wxStyledTextCtrl::StyleSetCase(int style, int caseForce) {
|
||||
SendMsg(2060, style, caseForce);
|
||||
}
|
||||
|
||||
// Set the character set of the font in a style.
|
||||
void wxStyledTextCtrl::StyleSetCharacterSet(int style, int characterSet) {
|
||||
SendMsg(2066, style, characterSet);
|
||||
}
|
||||
|
||||
// Set a style to be a hotspot or not.
|
||||
void wxStyledTextCtrl::StyleSetHotSpot(int style, bool hotspot) {
|
||||
SendMsg(2409, style, hotspot);
|
||||
@@ -2543,14 +2538,113 @@ void wxStyledTextCtrl::StyleSetFont(int styleNum, wxFont& font) {
|
||||
void wxStyledTextCtrl::StyleSetFontAttr(int styleNum, int size,
|
||||
const wxString& faceName,
|
||||
bool bold, bool italic,
|
||||
bool underline) {
|
||||
bool underline,
|
||||
wxFontEncoding encoding) {
|
||||
StyleSetSize(styleNum, size);
|
||||
StyleSetFaceName(styleNum, faceName);
|
||||
StyleSetBold(styleNum, bold);
|
||||
StyleSetItalic(styleNum, italic);
|
||||
StyleSetUnderline(styleNum, underline);
|
||||
StyleSetFontEncoding(styleNum, encoding);
|
||||
}
|
||||
|
||||
// TODO: add encoding/charset mapping
|
||||
|
||||
// Set the character set of the font in a style. Converts the Scintilla
|
||||
// character set values to a wxFontEncoding.
|
||||
void wxStyledTextCtrl::StyleSetCharacterSet(int style, int characterSet)
|
||||
{
|
||||
wxFontEncoding encoding;
|
||||
|
||||
// Translate the Scintilla characterSet to a wxFontEncoding
|
||||
switch (characterSet) {
|
||||
default:
|
||||
case wxSTC_CHARSET_ANSI:
|
||||
case wxSTC_CHARSET_DEFAULT:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_BALTIC:
|
||||
encoding = wxFONTENCODING_ISO8859_13;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_CHINESEBIG5:
|
||||
encoding = wxFONTENCODING_CP950;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_EASTEUROPE:
|
||||
encoding = wxFONTENCODING_ISO8859_2;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_GB2312:
|
||||
encoding = wxFONTENCODING_CP936;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_GREEK:
|
||||
encoding = wxFONTENCODING_ISO8859_7;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_HANGUL:
|
||||
encoding = wxFONTENCODING_CP949;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_MAC:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_OEM:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_RUSSIAN:
|
||||
encoding = wxFONTENCODING_KOI8;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_SHIFTJIS:
|
||||
encoding = wxFONTENCODING_CP932;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_SYMBOL:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_TURKISH:
|
||||
encoding = wxFONTENCODING_ISO8859_9;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_JOHAB:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_HEBREW:
|
||||
encoding = wxFONTENCODING_ISO8859_8;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_ARABIC:
|
||||
encoding = wxFONTENCODING_ISO8859_6;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_VIETNAMESE:
|
||||
encoding = wxFONTENCODING_DEFAULT;
|
||||
break;
|
||||
|
||||
case wxSTC_CHARSET_THAI:
|
||||
encoding = wxFONTENCODING_ISO8859_11;
|
||||
break;
|
||||
}
|
||||
|
||||
// We just have Scintilla track the wxFontEncoding for us. It gets used
|
||||
// in Font::Create in PlatWX.cpp. We add one to the value so that the
|
||||
// effective wxFONENCODING_DEFAULT == SC_SHARSET_DEFAULT and so when
|
||||
// Scintilla internally uses SC_CHARSET_DEFAULT we will translate it back
|
||||
// to wxFONENCODING_DEFAULT in Font::Create.
|
||||
SendMsg(SCI_STYLESETCHARACTERSET, style, encoding+1);
|
||||
}
|
||||
|
||||
|
||||
// Set the font encoding to be used by a style.
|
||||
void wxStyledTextCtrl::StyleSetFontEncoding(int style, wxFontEncoding encoding)
|
||||
{
|
||||
SendMsg(SCI_STYLESETCHARACTERSET, style, encoding+1);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user