118 lines
3.5 KiB
Python
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)
|
||
|
|