wxWidgets/wxPython/contrib/stc/_stc_utf8_methods.py
Robin Dunn 1ce1bd84ea 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
2005-04-16 19:41:33 +00:00

118 lines
3.5 KiB
Python

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)