X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7e7022c2c800a01e0b95d371fb213b0d25e3214..6af638ed35e8f1c414cc209cda8e5059552883c8:/wxPython/demo/wxStyledTextCtrl_1.py?ds=sidebyside diff --git a/wxPython/demo/wxStyledTextCtrl_1.py b/wxPython/demo/wxStyledTextCtrl_1.py index eb55ea356c..c641f2d9fa 100644 --- a/wxPython/demo/wxStyledTextCtrl_1.py +++ b/wxPython/demo/wxStyledTextCtrl_1.py @@ -4,6 +4,9 @@ from wxPython.stc import * #---------------------------------------------------------------------- +debug = 1 + + demoText = """\ This editor is provided by a class named wxStyledTextCtrl. As @@ -36,7 +39,7 @@ if wxPlatform == '__WXMSW__': face1 = 'Arial' face2 = 'Times New Roman' face3 = 'Courier New' - pb = 6 + pb = 10 else: face1 = 'Helvetica' face2 = 'Times' @@ -52,9 +55,48 @@ class MySTC(wxStyledTextCtrl): wxStyledTextCtrl.__init__(self, parent, ID) self.log = log + EVT_STC_DO_DROP(self, ID, self.OnDoDrop) + EVT_STC_DRAG_OVER(self, ID, self.OnDragOver) + EVT_STC_START_DRAG(self, ID, self.OnStartDrag) EVT_STC_MODIFIED(self, ID, self.OnModified) + def OnStartDrag(self, evt): + self.log.write("OnStartDrag: %d, %s\n" + % (evt.GetDragAllowMove(), evt.GetDragText())) + + if debug and evt.GetPosition() < 250: + evt.SetDragAllowMove(false) # you can prevent moving of text (only copy) + evt.SetDragText("DRAGGED TEXT") # you can change what is dragged + #evt.SetDragText("") # or prevent the drag with empty text + + + def OnDragOver(self, evt): + self.log.write("OnDragOver: x,y=(%d, %d) pos: %d DragResult: %d\n" + % (evt.GetX(), evt.GetY(), evt.GetPosition(), evt.GetDragResult())) + + if debug and evt.GetPosition() < 250: + evt.SetDragResult(wxDragNone) # prevent dropping at the begining of the buffer + + + def OnDoDrop(self, evt): + self.log.write("OnDoDrop: x,y=(%d, %d) pos: %d DragResult: %d\n" + "\ttext: %s\n" + % (evt.GetX(), evt.GetY(), evt.GetPosition(), evt.GetDragResult(), + evt.GetDragText())) + + if debug and evt.GetPosition() < 500: + evt.SetDragText("DROPPED TEXT") # Can change text if needed + ##evt.SetDragResult(wxDragNone) # Can also change the drag operation, but it + # is probably better to do it in OnDragOver so + # there is visual feedback + + ##evt.SetPosition(25) # Can also change position, but I'm not sure why + # you would want to... + + + + def OnModified(self, evt): self.log.write("""OnModified Mod type: %s @@ -67,6 +109,7 @@ class MySTC(wxStyledTextCtrl): evt.GetLength(), evt.GetText() )) + def transModType(self, modType): st = "" table = [(wxSTC_MOD_INSERTTEXT, "InsertText"), @@ -93,6 +136,7 @@ class MySTC(wxStyledTextCtrl): + #---------------------------------------------------------------------- _USE_PANEL = 1 @@ -113,11 +157,11 @@ def runTest(frame, nb, log): ed.EmptyUndoBuffer() # make some styles - ed.StyleSetSpec(wxSTC_STYLE_DEFAULT, "size:%d,face:%s" % (pb+2, face3)) - ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb+3, face1)) - ed.StyleSetSpec(2, "face:%s,italic,fore:#FF0000,size:%d" % (face2, pb+2)) - ed.StyleSetSpec(3, "face:%s,bold,size:%d" % (face2, pb+3)) - ed.StyleSetSpec(4, "face:%s,size:%d" % (face1, pb)) + ed.StyleSetSpec(wxSTC_STYLE_DEFAULT, "size:%d,face:%s" % (pb, face3)) + ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb+2, 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(4, "face:%s,size:%d" % (face1, pb-1)) # now set some text to those styles... Normally this would be @@ -168,13 +212,15 @@ def runTest(frame, nb, log): ed.SetStyling(10, wxSTC_INDIC2_MASK | wxSTC_INDIC1_MASK) # some test stuff... - if 1: + if debug: print "GetTextLength(): ", ed.GetTextLength(), len(ed.GetText()) print "GetText(): ", repr(ed.GetText()) print print "GetStyledText(98, 104): ", repr(ed.GetStyledText(98, 104)), len(ed.GetStyledText(98, 104)) print print "GetCurLine(): ", repr(ed.GetCurLine()) + ed.GotoPos(5) + print "GetCurLine(): ", repr(ed.GetCurLine()) print print "GetLine(1): ", repr(ed.GetLine(1)) print @@ -182,6 +228,7 @@ def runTest(frame, nb, log): print "GetSelectedText(): ", repr(ed.GetSelectedText()) print "GetTextRange(25, 35): ", repr(ed.GetTextRange(25, 35)) + ed.GotoPos(0) return p @@ -193,7 +240,7 @@ def runTest(frame, nb, log): overview = """\
-Once again, no docs yet. Sorry. But this +Once again, no docs yet. Sorry. But this and this should be helpful.