[pygobject] [gi] overrides for treeview Drag and Drop



commit 4cede8f12321bed6c3b71813a62c01b61853ba69
Author: John (J5) Palmieri <johnp redhat com>
Date:   Fri Nov 19 16:46:53 2010 -0500

    [gi] overrides for treeview Drag and Drop
    
    https://bugzilla.gnome.org/show_bug.cgi?id=627367

 gi/overrides/Gdk.py |    7 +++++++
 gi/overrides/Gtk.py |   25 +++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/gi/overrides/Gdk.py b/gi/overrides/Gdk.py
index 08141d7..e98f060 100644
--- a/gi/overrides/Gdk.py
+++ b/gi/overrides/Gdk.py
@@ -117,6 +117,13 @@ class Event(Gdk.Event):
 Event = override(Event)
 __all__.append('Event')
 
+class DragContext(Gdk.DragContext):
+    def finish(self, success, del_, time):
+        Gtk = modules['Gtk'].introspection_module
+        Gtk.drag_finish(self, success, del_, time)
+
+DragContext = override(DragContext)
+__all__.append('DragContext')
 
 import sys
 
diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py
index a2f38ac..b3ac2c9 100644
--- a/gi/overrides/Gtk.py
+++ b/gi/overrides/Gtk.py
@@ -881,6 +881,31 @@ class TreeView(Gtk.TreeView, Container):
         if success:
             return (path, pos,)
 
+    def _construct_target_list(self, targets):
+        # FIXME: this should most likely be part of Widget or a global helper
+        #        function
+        target_entries = []
+        for t in targets:
+            entry = Gtk.TargetEntry.new(*t)
+            target_entries.append(entry)
+            print(entry.target, entry.flags, entry.info)
+        return target_entries
+
+    def enable_model_drag_source(self, start_button_mask, targets, actions):
+        target_entries = self._construct_target_list(targets)
+        super(TreeView, self).enable_model_drag_source(start_button_mask,
+                                                       target_entries,
+                                                       len(target_entries),
+                                                       actions)
+
+    def enable_model_drag_dest(self, targets, actions):
+        target_entries = self._construct_target_list(targets)
+        super(TreeView, self).enable_model_drag_dest(target_entries,
+                                                     len(target_entries),
+                                                     actions)
+
+
+
 TreeView = override(TreeView)
 __all__.append('TreeView')
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]