X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/95bfd958bda8955ac81277c78e5627c926154f39..b4eecebd423df0c6efe86d7658cd3df818d67ed8:/wxPython/demo/StyledTextCtrl_1.py?ds=sidebyside diff --git a/wxPython/demo/StyledTextCtrl_1.py b/wxPython/demo/StyledTextCtrl_1.py index 821d85c73e..04c001971b 100644 --- a/wxPython/demo/StyledTextCtrl_1.py +++ b/wxPython/demo/StyledTextCtrl_1.py @@ -1,7 +1,6 @@ # # 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. # @@ -16,7 +15,6 @@ debug = 1 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 @@ -52,7 +50,7 @@ else: face1 = 'Helvetica' face2 = 'Times' face3 = 'Courier' - pb = 10 + pb = 12 #---------------------------------------------------------------------- @@ -88,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()) @@ -178,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) @@ -187,20 +191,31 @@ def runTest(frame, nb, log): 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 @@ -220,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") @@ -270,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 @@ -293,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:])