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