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



Author: gianmt
Date: Mon Jun 23 19:39:11 2008
New Revision: 2998
URL: http://svn.gnome.org/viewvc/pygtk?rev=2998&view=rev

Log:
wrap gtk.IconView.get_tooltip_context and use it in the demo, fixes #539743

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

Modified: trunk/examples/pygtk-demo/demos/tooltip.py
==============================================================================
--- trunk/examples/pygtk-demo/demos/tooltip.py	(original)
+++ trunk/examples/pygtk-demo/demos/tooltip.py	Mon Jun 23 19:39:11 2008
@@ -96,6 +96,24 @@
         button.props.tooltip_text = "Header"
 
         box.pack_start(tree_view, False, False, 2)
+
+        # Add an IconView for some more testing
+        iconview = gtk.IconView()
+        iconview.props.has_tooltip = True
+        iconview.connect("query-tooltip", self.query_tooltip_icon_view_cb)
+        
+        model = gtk.ListStore(str, gtk.gdk.Pixbuf)
+        iconview.set_model(model)
+        iconview.set_text_column(0)
+        iconview.set_pixbuf_column(1)
+        
+        pixbuf1 = iconview.render_icon(gtk.STOCK_APPLY,gtk.ICON_SIZE_BUTTON)
+        model.append(['Apply', pixbuf1])
+        
+        pixbuf2 = iconview.render_icon(gtk.STOCK_CANCEL,gtk.ICON_SIZE_BUTTON)
+        model.append(['Cancel', pixbuf2])
+        
+        box.pack_start(iconview, False, False, 2)
         
         # And a text view for Matthias
         buffer = gtk.TextBuffer()
@@ -172,7 +190,18 @@
             tooltip.set_markup("<b>Path %s:</b> %s" %(path[0], value[0]))
             widget.set_tooltip_row(tooltip, path)
             return True
+
+    def query_tooltip_icon_view_cb(self, widget, x, y, keyboard_tip, tooltip):
+        if not widget.get_tooltip_context(x, y, keyboard_tip):
+            return False
+        else:
+            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_item(tooltip, path)
+            return True
+
     def query_tooltip_drawing_area_cb(self, widget, x, y, keyboard_tip,
                                       tooltip, data=None):
         if keyboard_tip:

Modified: trunk/gtk/gtkiconview.override
==============================================================================
--- trunk/gtk/gtkiconview.override	(original)
+++ trunk/gtk/gtkiconview.override	Mon Jun 23 19:39:11 2008
@@ -334,3 +334,41 @@
     Py_INCREF(Py_None);
     return Py_None;
 }
+%%
+override gtk_icon_view_get_tooltip_context kwargs
+static PyObject *
+_wrap_gtk_icon_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:GtkIconView.get_tooltip_context",
+                        kwlist, &x, &y, &py_keyboard_tip))
+        return NULL;
+    
+    ret = gtk_icon_view_get_tooltip_context(GTK_ICON_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]