-# 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
-#
-# o Updated for wx namespace
#
# 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
-# o EVT_STC_DRAG_OVER event GetdragResult() is not an int
-# o wx.TheClipboard.Flush() generates an error on program exit.
+# o wx.TheClipboard.Flush() generates a warning on program exit.
#
import wx
demoText = """\
-
-This editor is provided by a class named wxStyledTextCtrl. As
+This editor is provided by a class named wx.StyledTextCtrl. As
the name suggests, you can define styles that can be applied to
sections of text. This will typically be used for things like
syntax highlighting code editors, but I'm sure that there are other
will let you know when the visible portion of the text needs
styling.
-wxStyledTextEditor also supports setting markers in the margin...
+wx.StyledTextEditor also supports setting markers in the margin...
face1 = 'Helvetica'
face2 = 'Times'
face3 = 'Courier'
- pb = 10
+ pb = 12
#----------------------------------------------------------------------
-# This shows how to catch the Modified event from the wxStyledTextCtrl
+# This shows how to catch the Modified event from the wx.StyledTextCtrl
class MySTC(stc.StyledTextCtrl):
def __init__(self, parent, ID, log):
def OnDragOver(self, evt):
- #Todo: evt.GetdragResult() response is not an int
-
self.log.write(
"OnDragOver: x,y=(%d, %d) pos: %d DragResult: %d\n"
% (evt.GetX(), evt.GetY(), evt.GetPosition(), evt.GetDragResult())
#ed.StyleClearAll()
#ed.SetScrollWidth(800)
#ed.SetWrapMode(True)
+ #ed.SetUseAntiAliasing(False)
+ #ed.SetViewEOL(True)
+
+ #ed.CmdKeyClear(stc.STC_KEY_BACK,
+ # stc.STC_SCMOD_CTRL)
+ #ed.CmdKeyAssign(stc.STC_KEY_BACK,
+ # stc.STC_SCMOD_CTRL,
+ # stc.STC_CMD_DELWORDLEFT)
ed.SetText(demoText)
decode = codecs.lookup("utf-8")[1]
ed.GotoPos(ed.GetLength())
- ed.AddText("\n\nwxStyledTextCtrl can also do Unicode:\n")
+ ed.AddText("\n\nwx.StyledTextCtrl can also do Unicode:\n")
+ uniline = ed.GetCurrentLine()
unitext, l = decode('\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd - '
'\xd0\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb8\xd0\xb9 '
'\xd1\x8f\xd0\xb7\xd1\x8b\xd0\xba \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f!\n\n')
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
ed.StyleSetSpec(stc.STC_STYLE_DEFAULT, "size:%d,face:%s" % (pb, face3))
- ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb+2, face1))
+ ed.StyleClearAll()
+ ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb, face1))
ed.StyleSetSpec(2, "face:%s,italic,fore:#FF0000,size:%d" % (face2, pb))
- ed.StyleSetSpec(3, "face:%s,bold,size:%d" % (face2, pb+2))
+ ed.StyleSetSpec(3, "face:%s,bold,size:%d" % (face2, pb))
ed.StyleSetSpec(4, "face:%s,size:%d" % (face1, pb-1))
# Now set some text to those styles... Normally this would be
# line numbers in the margin
ed.SetMarginType(0, stc.STC_MARGIN_NUMBER)
ed.SetMarginWidth(0, 22)
- ed.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "size:%d,face:%s" % (pb, face1))
+ ed.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "size:%d,face:%s" % (pb-2, face1))
# setup some markers
ed.SetMarginType(1, stc.STC_MARGIN_SYMBOL)
ed.MarkerDefine(0, stc.STC_MARK_ROUNDRECT, "#CCFF00", "RED")
- #ed.MarkerDefine(1, stc.STC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
- ed.MarkerDefineBitmap(1, images.getFolder1Bitmap())
+ ed.MarkerDefine(1, stc.STC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
ed.MarkerDefine(2, stc.STC_MARK_SHORTARROW, "blue", "blue")
ed.MarkerDefine(3, stc.STC_MARK_ARROW, "#00FF00", "#00FF00")
print "GetTextRange(25, 35): ", repr(ed.GetTextRange(25, 35))
print "FindText(0, max, 'indicators'): ",
print ed.FindText(0, ed.GetTextLength(), "indicators")
-
- ed.GotoPos(0)
+ if wx.USE_UNICODE:
+ end = ed.GetLength()
+ start = ed.PositionFromLine(uniline)
+ print "GetTextRange(%d, %d): " % (start, end),
+ print repr(ed.GetTextRange(start, end))
+ wx.CallAfter(ed.GotoPos, 0)
return p
if __name__ == '__main__':
import sys,os
import run
- run.main(['', os.path.basename(sys.argv[0])])
+ run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])