#
# 11/21/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
-# o EVT_STC_DRAG_OVER event GetdragResult() is not an int
# o wx.TheClipboard.Flush() generates a warning on program exit.
#
demoText = """\
-
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
face1 = 'Helvetica'
face2 = 'Times'
face3 = 'Courier'
- pb = 10
+ pb = 12
#----------------------------------------------------------------------
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)
ed.GotoPos(ed.GetLength())
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:])