]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxStyledTextCtrl_1.py
checked in forgottern parts of MSLU changes
[wxWidgets.git] / wxPython / demo / wxStyledTextCtrl_1.py
index e3421d47275151ca688748e9fcccf2a4e79bf00f..c641f2d9fa9c37835b23a3452e20565dec33e5be 100644 (file)
@@ -4,6 +4,9 @@ from wxPython.stc import *
 
 #----------------------------------------------------------------------
 
+debug = 1
+
+
 demoText = """\
 
 This editor is provided by a class named wxStyledTextCtrl.  As
@@ -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
@@ -168,7 +212,7 @@ 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