X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/299647acac7960652aadb008775429c1f8ea9b8d..c1dda21b64f300d89cbc084802082d37c694e971:/wxPython/demo/StyledTextCtrl_1.py?ds=sidebyside diff --git a/wxPython/demo/StyledTextCtrl_1.py b/wxPython/demo/StyledTextCtrl_1.py index 5eff81c883..04c001971b 100644 --- a/wxPython/demo/StyledTextCtrl_1.py +++ b/wxPython/demo/StyledTextCtrl_1.py @@ -1,11 +1,7 @@ -# 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 @@ -19,8 +15,7 @@ debug = 1 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 @@ -35,7 +30,7 @@ If you do you can simply register an event handler and the editor 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... @@ -55,11 +50,11 @@ else: 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): @@ -91,8 +86,6 @@ class MySTC(stc.StyledTextCtrl): 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()) @@ -181,6 +174,14 @@ def runTest(frame, nb, log): #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) @@ -189,21 +190,32 @@ def runTest(frame, nb, log): 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 @@ -223,13 +235,12 @@ def runTest(frame, nb, log): # 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") @@ -273,10 +284,14 @@ def runTest(frame, nb, log): 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 @@ -296,5 +311,5 @@ be helpful. 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:])