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:
parent
6421f57a54
commit
3727c043a8
@ -1736,9 +1736,6 @@ public:
|
||||
// Set a style to be mixed case, or to force upper or lower case.
|
||||
void StyleSetCase(int style, int caseForce);
|
||||
|
||||
// Set the character set of the font in a style.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set a style to be a hotspot or not.
|
||||
void StyleSetHotSpot(int style, bool hotspot);
|
||||
|
||||
@ -2838,15 +2835,22 @@ public:
|
||||
void StyleSetFontAttr(int styleNum, int size,
|
||||
const wxString& faceName,
|
||||
bool bold, bool italic,
|
||||
bool underline);
|
||||
bool underline,
|
||||
wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
|
||||
|
||||
|
||||
// Set the character set of the font in a style. Converts the Scintilla
|
||||
// character set values to a wxFontEncoding.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set the font encoding to be used by a style.
|
||||
void StyleSetFontEncoding(int style, wxFontEncoding encoding);
|
||||
|
||||
|
||||
// Perform one of the operations defined by the wxSTC_CMD_* constants.
|
||||
void CmdKeyExecute(int cmd);
|
||||
|
||||
|
||||
|
||||
// Set the left and right margin in the edit area, measured in pixels.
|
||||
void SetMargins(int left, int right);
|
||||
|
||||
|
@ -99,86 +99,15 @@ Font::~Font() {
|
||||
}
|
||||
|
||||
void Font::Create(const char *faceName, int characterSet, int size, bool bold, bool italic, bool extraFontFlag) {
|
||||
wxFontEncoding encoding;
|
||||
|
||||
Release();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
// The minus one is done because since Scintilla uses SC_SHARSET_DEFAULT
|
||||
// internally and we need to have wxFONENCODING_DEFAULT == SC_SHARSET_DEFAULT
|
||||
// so we adjust the encoding before passing it to Scintilla. See also
|
||||
// wxStyledTextCtrl::StyleSetCharacterSet
|
||||
wxFontEncoding encoding = (wxFontEncoding)(characterSet-1);
|
||||
|
||||
wxFontEncodingArray ea = wxEncodingConverter::GetPlatformEquivalents(encoding);
|
||||
if (ea.GetCount())
|
||||
encoding = ea[0];
|
||||
|
@ -229,7 +229,8 @@ methodOverrideMap = {
|
||||
'SetSelBack' : ('SetSelBackground', 0, 0, 0),
|
||||
'SetCaretFore' : ('SetCaretForeground', 0, 0, 0),
|
||||
'StyleSetFont' : ('StyleSetFaceName', 0, 0, 0),
|
||||
|
||||
'StyleSetCharacterSet' : (None, 0, 0, 0),
|
||||
|
||||
'AssignCmdKey' :
|
||||
('CmdKeyAssign',
|
||||
'void %s(int key, int modifiers, int cmd);',
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -310,14 +310,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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -149,15 +149,22 @@ public:
|
||||
void StyleSetFontAttr(int styleNum, int size,
|
||||
const wxString& faceName,
|
||||
bool bold, bool italic,
|
||||
bool underline);
|
||||
bool underline,
|
||||
wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
|
||||
|
||||
|
||||
// Set the character set of the font in a style. Converts the Scintilla
|
||||
// character set values to a wxFontEncoding.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set the font encoding to be used by a style.
|
||||
void StyleSetFontEncoding(int style, wxFontEncoding encoding);
|
||||
|
||||
|
||||
// Perform one of the operations defined by the wxSTC_CMD_* constants.
|
||||
void CmdKeyExecute(int cmd);
|
||||
|
||||
|
||||
|
||||
// Set the left and right margin in the edit area, measured in pixels.
|
||||
void SetMargins(int left, int right);
|
||||
|
||||
|
@ -1736,9 +1736,6 @@ public:
|
||||
// Set a style to be mixed case, or to force upper or lower case.
|
||||
void StyleSetCase(int style, int caseForce);
|
||||
|
||||
// Set the character set of the font in a style.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set a style to be a hotspot or not.
|
||||
void StyleSetHotSpot(int style, bool hotspot);
|
||||
|
||||
@ -2838,15 +2835,22 @@ public:
|
||||
void StyleSetFontAttr(int styleNum, int size,
|
||||
const wxString& faceName,
|
||||
bool bold, bool italic,
|
||||
bool underline);
|
||||
bool underline,
|
||||
wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
|
||||
|
||||
|
||||
// Set the character set of the font in a style. Converts the Scintilla
|
||||
// character set values to a wxFontEncoding.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set the font encoding to be used by a style.
|
||||
void StyleSetFontEncoding(int style, wxFontEncoding encoding);
|
||||
|
||||
|
||||
// Perform one of the operations defined by the wxSTC_CMD_* constants.
|
||||
void CmdKeyExecute(int cmd);
|
||||
|
||||
|
||||
|
||||
// Set the left and right margin in the edit area, measured in pixels.
|
||||
void SetMargins(int left, int right);
|
||||
|
||||
|
@ -99,86 +99,15 @@ Font::~Font() {
|
||||
}
|
||||
|
||||
void Font::Create(const char *faceName, int characterSet, int size, bool bold, bool italic, bool extraFontFlag) {
|
||||
wxFontEncoding encoding;
|
||||
|
||||
Release();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
// The minus one is done because since Scintilla uses SC_SHARSET_DEFAULT
|
||||
// internally and we need to have wxFONENCODING_DEFAULT == SC_SHARSET_DEFAULT
|
||||
// so we adjust the encoding before passing it to Scintilla. See also
|
||||
// wxStyledTextCtrl::StyleSetCharacterSet
|
||||
wxFontEncoding encoding = (wxFontEncoding)(characterSet-1);
|
||||
|
||||
wxFontEncodingArray ea = wxEncodingConverter::GetPlatformEquivalents(encoding);
|
||||
if (ea.GetCount())
|
||||
encoding = ea[0];
|
||||
|
@ -229,7 +229,8 @@ methodOverrideMap = {
|
||||
'SetSelBack' : ('SetSelBackground', 0, 0, 0),
|
||||
'SetCaretFore' : ('SetCaretForeground', 0, 0, 0),
|
||||
'StyleSetFont' : ('StyleSetFaceName', 0, 0, 0),
|
||||
|
||||
'StyleSetCharacterSet' : (None, 0, 0, 0),
|
||||
|
||||
'AssignCmdKey' :
|
||||
('CmdKeyAssign',
|
||||
'void %s(int key, int modifiers, int cmd);',
|
||||
|
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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -310,14 +310,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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -149,15 +149,22 @@ public:
|
||||
void StyleSetFontAttr(int styleNum, int size,
|
||||
const wxString& faceName,
|
||||
bool bold, bool italic,
|
||||
bool underline);
|
||||
bool underline,
|
||||
wxFontEncoding encoding=wxFONTENCODING_DEFAULT);
|
||||
|
||||
|
||||
// Set the character set of the font in a style. Converts the Scintilla
|
||||
// character set values to a wxFontEncoding.
|
||||
void StyleSetCharacterSet(int style, int characterSet);
|
||||
|
||||
// Set the font encoding to be used by a style.
|
||||
void StyleSetFontEncoding(int style, wxFontEncoding encoding);
|
||||
|
||||
|
||||
// Perform one of the operations defined by the wxSTC_CMD_* constants.
|
||||
void CmdKeyExecute(int cmd);
|
||||
|
||||
|
||||
|
||||
// Set the left and right margin in the edit area, measured in pixels.
|
||||
void SetMargins(int left, int right);
|
||||
|
||||
|
@ -56,6 +56,13 @@ attributes of a `wx.Font`.", "");
|
||||
DocStr(wxStyledTextCtrl::StyleSetFontAttr,
|
||||
"Set all font style attributes at once.", "");
|
||||
|
||||
DocStr(wxStyledTextCtrl::StyleSetCharacterSet,
|
||||
"Set the character set of the font in a style. Converts the Scintilla
|
||||
wx.stc.STC_CHARSET_* set values to a wxFontEncoding.", "");
|
||||
|
||||
DocStr(wxStyledTextCtrl::StyleSetFontEncoding,
|
||||
"Set the font encoding to be used by a style.", "");
|
||||
|
||||
DocStr(wxStyledTextCtrl::CmdKeyExecute,
|
||||
"Perform one of the operations defined by the wx.stc.STC_CMD_* constants.", "");
|
||||
|
||||
|
@ -209,9 +209,6 @@ DocStr(wxStyledTextCtrl::StyleSetUnderline,
|
||||
DocStr(wxStyledTextCtrl::StyleSetCase,
|
||||
"Set a style to be mixed case, or to force upper or lower case.", "");
|
||||
|
||||
DocStr(wxStyledTextCtrl::StyleSetCharacterSet,
|
||||
"Set the character set of the font in a style.", "");
|
||||
|
||||
DocStr(wxStyledTextCtrl::StyleSetHotSpot,
|
||||
"Set a style to be a hotspot or not.", "");
|
||||
|
||||
|
@ -30,6 +30,8 @@ languages are built-in."
|
||||
|
||||
%import core.i
|
||||
%import misc.i // for DnD
|
||||
//%import gdi.i // for wxFontEncoding
|
||||
|
||||
%pythoncode { wx = _core }
|
||||
%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
|
||||
|
||||
@ -39,6 +41,8 @@ MAKE_CONST_WXSTRING(STCNameStr);
|
||||
%include _stc_rename.i
|
||||
%include _stc_docstrings.i
|
||||
|
||||
enum wxFontEncoding; // forward declare
|
||||
|
||||
MustHaveApp(wxStyledTextCtrl);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
@ -192,7 +192,16 @@ def runTest(frame, nb, log):
|
||||
ed.AddText('\tRussian: ')
|
||||
ed.AddText(unitext)
|
||||
ed.GotoPos(0)
|
||||
|
||||
#else:
|
||||
# #ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT, wx.FONTENCODING_KOI8)
|
||||
# #text = u'\u041f\u0438\u0442\u043e\u043d - \u043b\u0443\u0447\u0448\u0438\u0439 \u044f\u0437\u044b\u043a \n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f!'
|
||||
# #text = text.encode('koi8-r')
|
||||
# #ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT, wx.FONTENCODING_BIG5)
|
||||
# #text = u'Python \u662f\u6700\u597d\u7684\u7de8\u7a0b\u8a9e\u8a00\uff01'
|
||||
# #text = text.encode('big5')
|
||||
# ed.GotoPos(ed.GetLength())
|
||||
# ed.AddText('\n\n' + text)
|
||||
|
||||
ed.EmptyUndoBuffer()
|
||||
|
||||
# make some styles
|
||||
|
Loading…
Reference in New Issue
Block a user