]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxStyledTextCtrl_1.py
fix text scrolling in GTK2 (patch 703988)
[wxWidgets.git] / wxPython / demo / wxStyledTextCtrl_1.py
index c641f2d9fa9c37835b23a3452e20565dec33e5be..fa0d742ebf90259d004480db95cfd1d3edd5b1a9 100644 (file)
@@ -2,6 +2,8 @@
 from wxPython.wx import *
 from wxPython.stc import *
 
+import images
+
 #----------------------------------------------------------------------
 
 debug = 1
@@ -60,13 +62,21 @@ class MySTC(wxStyledTextCtrl):
         EVT_STC_START_DRAG(self, ID, self.OnStartDrag)
         EVT_STC_MODIFIED(self, ID, self.OnModified)
 
+        EVT_WINDOW_DESTROY(self, self.OnDestroy)
+
+    def OnDestroy(self, evt):
+        # This is how the clipboard contents can be preserved after
+        # the app has exited.
+        wxTheClipboard.Flush()
+        evt.Skip()
+
 
     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.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
 
@@ -107,7 +117,7 @@ class MySTC(wxStyledTextCtrl):
                                   evt.GetPosition(),
                                   evt.GetLinesAdded(),
                                   evt.GetLength(),
-                                  evt.GetText() ))
+                                  repr(evt.GetText()) ))
 
 
     def transModType(self, modType):
@@ -146,14 +156,33 @@ def runTest(frame, nb, log):
         ed = p = MySTC(nb, -1, log)
 
     else:
-        p = wxPanel(nb, -1)
+        p = wxPanel(nb, -1, style=wxNO_FULL_REPAINT_ON_RESIZE)
         ed = MySTC(p, -1, log)
         s = wxBoxSizer(wxHORIZONTAL)
         s.Add(ed, 1, wxEXPAND)
         p.SetSizer(s)
-        p.SetAutoLayout(true)
+        p.SetAutoLayout(True)
+
+
+    #ed.SetBufferedDraw(False)
+    #ed.StyleClearAll()
+    #ed.SetScrollWidth(800)
+    #ed.SetWrapMode(True)
 
     ed.SetText(demoText)
+    if wxUSE_UNICODE:
+        import codecs
+        decode = codecs.lookup("utf-8")[1]
+
+        ed.GotoPos(ed.GetLength())
+        ed.AddText("\n\nwxStyledTextCtrl can also do Unicode:\n")
+        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)
+
     ed.EmptyUndoBuffer()
 
     # make some styles
@@ -163,8 +192,7 @@ def runTest(frame, nb, log):
     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
+    # Now set some text to those styles...  Normally this would be
     # done in an event handler that happens when text needs displayed.
     ed.StartStyling(98, 0xff)
     ed.SetStyling(6, 1)  # set style for 6 characters using style 1
@@ -186,7 +214,8 @@ def runTest(frame, nb, log):
     # setup some markers
     ed.SetMarginType(1, wxSTC_MARGIN_SYMBOL)
     ed.MarkerDefine(0, wxSTC_MARK_ROUNDRECT, "#CCFF00", "RED")
-    ed.MarkerDefine(1, wxSTC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
+    #ed.MarkerDefine(1, wxSTC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
+    ed.MarkerDefineBitmap(1, images.getFolder1Bitmap())
     ed.MarkerDefine(2, wxSTC_MARK_SHORTARROW, "blue", "blue")
     ed.MarkerDefine(3, wxSTC_MARK_ARROW, "#00FF00", "#00FF00")
 
@@ -211,6 +240,7 @@ def runTest(frame, nb, log):
     ed.SetStyling(10, wxSTC_INDIC1_MASK)
     ed.SetStyling(10, wxSTC_INDIC2_MASK | wxSTC_INDIC1_MASK)
 
+
     # some test stuff...
     if debug:
         print "GetTextLength(): ", ed.GetTextLength(), len(ed.GetText())
@@ -227,10 +257,12 @@ def runTest(frame, nb, log):
         ed.SetSelection(25, 35)
         print "GetSelectedText(): ", repr(ed.GetSelectedText())
         print "GetTextRange(25, 35): ", repr(ed.GetTextRange(25, 35))
-
+        print "FindText(0, max, 'indicators'): ",
+        print ed.FindText(0, ed.GetTextLength(), "indicators")
 
         ed.GotoPos(0)
 
+
     return p
 
 
@@ -247,13 +279,8 @@ be helpful.
 """
 
 
-
 if __name__ == '__main__':
-    import sys
-    app = wxPySimpleApp()
-    frame = wxFrame(None, -1, "Tester...", size=(640, 480))
-    win = runTest(frame, frame, sys.stdout)
-    frame.Show(true)
-    app.MainLoop()
-
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])