Added Python methods to wxStyledTextCtrl that allow to get/set text in
UTF8 in either unicode or ansi builds git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
117
wxPython/contrib/stc/_stc_utf8_methods.py
Normal file
117
wxPython/contrib/stc/_stc_utf8_methods.py
Normal file
@@ -0,0 +1,117 @@
|
||||
|
||||
def AddTextUTF8(self, text):
|
||||
"""
|
||||
Add UTF8 encoded text to the document at the current position.
|
||||
Works 'natively' in a unicode build of wxPython, and will also work
|
||||
in an ansi build if the UTF8 text is compatible with the current
|
||||
encoding.
|
||||
"""
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode('utf-8')
|
||||
text = u.encode(wx.GetDefaultPyEncoding())
|
||||
self.AddTextRaw(text)
|
||||
|
||||
|
||||
def InsertTextUTF8(self, pos, text):
|
||||
"""
|
||||
Insert UTF8 encoded text at a position. Works 'natively' in a
|
||||
unicode build of wxPython, and will also work in an ansi build if
|
||||
the UTF8 text is compatible with the current encoding.
|
||||
"""
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode('utf-8')
|
||||
text = u.encode(wx.GetDefaultPyEncoding())
|
||||
self.InsertTextRaw(pos, text)
|
||||
|
||||
|
||||
def GetCurLineUTF8(self):
|
||||
"""
|
||||
Retrieve the UTF8 text of the line containing the caret, and also
|
||||
the index of the caret on the line. In an ansi build of wxPython
|
||||
the text retrieved from the document is assumed to be in the
|
||||
current default encoding.
|
||||
"""
|
||||
text, pos = self.GetCurLineRaw()
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode(wx.GetDefaultPyEncoding())
|
||||
text = u.encode('utf-8')
|
||||
return text, pos
|
||||
|
||||
|
||||
def GetLineUTF8(self, line):
|
||||
"""
|
||||
Retrieve the contents of a line as UTF8. In an ansi build of wxPython
|
||||
the text retrieved from the document is assumed to be in the
|
||||
current default encoding.
|
||||
"""
|
||||
text = self.GetLineRaw(line)
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode(wx.GetDefaultPyEncoding())
|
||||
text = u.encode('utf-8')
|
||||
return text
|
||||
|
||||
|
||||
def GetSelectedTextUTF8(self):
|
||||
"""
|
||||
Retrieve the selected text as UTF8. In an ansi build of wxPython
|
||||
the text retrieved from the document is assumed to be in the
|
||||
current default encoding.
|
||||
"""
|
||||
text = self.GetSelectedTextRaw()
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode(wx.GetDefaultPyEncoding())
|
||||
text = u.encode('utf-8')
|
||||
return text
|
||||
|
||||
|
||||
def GetTextRangeUTF8(self, startPos, endPos):
|
||||
"""
|
||||
Retrieve a range of text as UTF8. In an ansi build of wxPython
|
||||
the text retrieved from the document is assumed to be in the
|
||||
current default encoding.
|
||||
"""
|
||||
text = self.GetTextRangeRaw(startPos, endPos)
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode(wx.GetDefaultPyEncoding())
|
||||
text = u.encode('utf-8')
|
||||
return text
|
||||
|
||||
|
||||
def SetTextUTF8(self, text):
|
||||
"""
|
||||
Replace the contents of the document with the UTF8 text given.
|
||||
Works 'natively' in a unicode build of wxPython, and will also
|
||||
work in an ansi build if the UTF8 text is compatible with the
|
||||
current encoding.
|
||||
"""
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode('utf-8')
|
||||
text = u.encode(wx.GetDefaultPyEncoding())
|
||||
self.SetTextRaw(text)
|
||||
|
||||
|
||||
def GetTextUTF8(self):
|
||||
"""
|
||||
Retrieve all the text in the document as UTF8. In an ansi build
|
||||
of wxPython the text retrieved from the document is assumed to be
|
||||
in the current default encoding.
|
||||
"""
|
||||
text = self.GetTextRaw()
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode(wx.GetDefaultPyEncoding())
|
||||
text = u.encode('utf-8')
|
||||
return text
|
||||
|
||||
|
||||
def AppendTextUTF8(self, text):
|
||||
"""
|
||||
Append a UTF8 string to the end of the document without changing
|
||||
the selection. Works 'natively' in a unicode build of wxPython,
|
||||
and will also work in an ansi build if the UTF8 text is compatible
|
||||
with the current encoding.
|
||||
"""
|
||||
if not wx.USE_UNICODE:
|
||||
u = text.decode('utf-8')
|
||||
text = u.encode(wx.GetDefaultPyEncoding())
|
||||
self.AppendTextRaw(text)
|
||||
|
Reference in New Issue
Block a user