dabo Commit
Revision 2196
Date: 2006-06-03 11:54:24 -0700 (Sat, 03 Jun 2006)
Author: ed

Changed:
U   trunk/dabo/ui/uiwx/dTreeView.py

Log:
Began adding drag/drop for tree nodes. But for some reason (at least on OS X; 
I'll try other platforms next) I can only get BeginDrag events; no EndDrag 
events ever get received. Any insight would be welcome.


Diff:
Modified: trunk/dabo/ui/uiwx/dTreeView.py
===================================================================
--- trunk/dabo/ui/uiwx/dTreeView.py     2006-06-02 14:44:54 UTC (rev 2195)
+++ trunk/dabo/ui/uiwx/dTreeView.py     2006-06-03 18:54:24 UTC (rev 2196)
@@ -279,12 +279,36 @@
                self.Bind(wx.EVT_TREE_ITEM_COLLAPSED, self.__onTreeItemCollapse)
                self.Bind(wx.EVT_TREE_ITEM_EXPANDED, self.__onTreeItemExpand)
                self.Bind(wx.EVT_TREE_ITEM_MENU, self.__onTreeItemContextMenu)
+               self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.__onTreeBeginDrag)
+               self.Bind(wx.EVT_TREE_END_DRAG, self.__onTreeEndDrag)
 
 
        def __onTreeItemContextMenu(self, evt):
                self.raiseEvent(dEvents.TreeItemContextMenu, evt)
+       
+       
+       def __onTreeBeginDrag(self, evt):
+               if self._allowDrag(evt):
+                       evt.Allow()
+               evt.Skip()
+               self.raiseEvent(dEvents.TreeBeginDrag, evt)
 
        
+       def __onTreeEndDrag(self, evt):
+               evt.Skip()
+               self.raiseEvent(dEvents.TreeEndDrag, evt)
+
+       
+       def _allowDrag(self, evt):
+               nd = self.find(evt.GetItem())
+               return self.allowDrag(nd)
+       
+       
+       def allowDrag(self, node):
+               # Override in subclasses in needed.
+               return True
+               
+               
        def _getInitPropertiesList(self):
                additional = ["Editable", "MultipleSelect", "ShowRootNode", 
                                "ShowRootNodeLines", "ShowButtons"]
@@ -784,6 +808,13 @@
                node = self.find(itm)[0]
                print "Context menu on item:", node.Caption
        
+       def onTreeBeginDrag(self, evt):
+               print "Beginning drag for %s" % evt.selectedCaption
+               
+       def onTreeEndDrag(self, evt):
+               print "Ending drag for %s" % evt.selectedCaption
+               
+       
                        
 if __name__ == "__main__":
        import test




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to