pygtk r2996 - in trunk: . examples/pygtk-demo/demos gtk



Author: gianmt
Date: Sun Jun 22 18:28:44 2008
New Revision: 2996
URL: http://svn.gnome.org/viewvc/pygtk?rev=2996&view=rev

Log:
wrap gtk.TreeView.get_tooltip_context and use it in the demo, fixes #530145

Modified:
   trunk/ChangeLog
   trunk/examples/pygtk-demo/demos/tooltip.py
   trunk/gtk/gtktreeview.override

Modified: trunk/examples/pygtk-demo/demos/tooltip.py
==============================================================================
--- trunk/examples/pygtk-demo/demos/tooltip.py	(original)
+++ trunk/examples/pygtk-demo/demos/tooltip.py	Sun Jun 22 18:28:44 2008
@@ -163,28 +163,15 @@
         return True
     
     def query_tooltip_tree_view_cb(self, widget, x, y, keyboard_tip, tooltip):
-        model = widget.get_model()
-        
-        if keyboard_tip:
-            # Keyboard mode
-            ret = widget.get_cursor()
-    
-            if not ret[0]:
-                return False
+        if not widget.get_tooltip_context(x, y, keyboard_tip):
+            return False
         else:
-            coords = widget.convert_widget_to_bin_window_coords(x, y)
-    
-            # Mouse mode
-            tp =  widget.get_path_at_pos(coords[0], coords[1])
-            if not tp:
-                return False
-    
-        iter = model.get_iter(tp[0])
-        value = model.get(iter, 0)
-    
-        tooltip.set_markup("<b>Path %s:</b> %s" %(tp[0][0], value[0]))
-    
-        return True
+            model, path, iter = widget.get_tooltip_context(x, y, keyboard_tip)
+
+            value = model.get(iter, 0)
+            tooltip.set_markup("<b>Path %s:</b> %s" %(path[0], value[0]))
+            widget.set_tooltip_row(tooltip, path)
+            return True
     
     def query_tooltip_drawing_area_cb(self, widget, x, y, keyboard_tip,
                                       tooltip, data=None):

Modified: trunk/gtk/gtktreeview.override
==============================================================================
--- trunk/gtk/gtktreeview.override	(original)
+++ trunk/gtk/gtktreeview.override	Sun Jun 22 18:28:44 2008
@@ -3446,3 +3446,41 @@
     
     return Py_BuildValue("(ii)", tree_x, tree_y);
 }
+%%
+override gtk_tree_view_get_tooltip_context kwargs
+static PyObject *
+_wrap_gtk_tree_view_get_tooltip_context(PyGObject *self,
+                                        PyObject *args,
+                                        PyObject *kwargs)
+{
+    static char *kwlist[] = { "x", "y", "keyboard_tip", NULL };
+    
+    gboolean        ret;
+    PyObject        *py_ret = Py_None, *py_keyboard_tip = Py_True;
+    gint            x, y;
+    GtkTreeModel    *tree_model;
+    GtkTreePath     *path;
+    GtkTreeIter     iter;
+    
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+                        "iiO:GtkTreeView.get_tooltip_context",
+                        kwlist, &x, &y, &py_keyboard_tip))
+        return NULL;
+    
+    ret = gtk_tree_view_get_tooltip_context(GTK_TREE_VIEW(self->obj), &x, &y,
+                                            PyObject_IsTrue(py_keyboard_tip),
+                                            &tree_model,
+                                            &path, &iter);
+    if (ret) {
+        py_ret = Py_BuildValue("(NNN)",
+                               pygobject_new((GObject *)tree_model),
+                               pygtk_tree_path_to_pyobject(path),
+                               pyg_boxed_new(GTK_TYPE_TREE_ITER, &iter,
+                                             TRUE, TRUE));
+
+        gtk_tree_path_free(path);
+        return py_ret;
+    }
+    Py_INCREF(py_ret);    
+    return py_ret;
+}



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