summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2007-07-16 14:04:35 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-07-16 14:04:35 +0000
commitbdf50bd4f621890c7d432da756d45ce00e5327b3 (patch)
treebb8883e3bb3a20c1ff3f13985e38c3ce338f6725 /gtk
parent6193950b57007048ea3accc1c42837b0f47bb756 (diff)
downloadgtk+-bdf50bd4f621890c7d432da756d45ce00e5327b3.tar.gz
Convenience functions to position tooltips on icon view items or cells.
2007-07-16 Matthias Clasen <mclasen@redhat.com> * gtk/gtk.symbols: * gtk/gtkiconview.h: * gtk/gtkiconview.c (gtk_icon_view_set_tooltip_item): (gtk_icon_view_set_tooltip_cell): Convenience functions to position tooltips on icon view items or cells. svn path=/trunk/; revision=18473
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtk.symbols2
-rw-r--r--gtk/gtkiconview.c80
-rw-r--r--gtk/gtkiconview.h10
3 files changed, 91 insertions, 1 deletions
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 0d305ee691..a993db7767 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -1886,6 +1886,8 @@ gtk_icon_view_set_drag_dest_item
gtk_icon_view_get_drag_dest_item
gtk_icon_view_get_dest_item_at_pos
gtk_icon_view_create_drag_icon
+gtk_icon_view_set_tooltip_item
+gtk_icon_view_set_tooltip_cell
#endif
#endif
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index 88d75543d4..d8b0677f3c 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -4576,7 +4576,6 @@ gtk_icon_view_get_path_at_pos (GtkIconView *icon_view,
{
GtkIconViewItem *item;
GtkTreePath *path;
- gint px, py;
g_return_val_if_fail (GTK_IS_ICON_VIEW (icon_view), NULL);
@@ -4643,6 +4642,85 @@ gtk_icon_view_get_item_at_pos (GtkIconView *icon_view,
return (item != NULL);
}
+/**
+ * gtk_icon_view_set_tooltip_item:
+ * @icon_view: a #GtkIconView
+ * @tooltip: a #GtkTooltip
+ * @path: a #GtkTreePath
+ *
+ * Sets the tip area of @tooltip to be the area covered by the item at @path.
+ * See also gtk_tooltip_set_tip_area().
+ *
+ * Since: 2.12
+ */
+void
+gtk_icon_view_set_tooltip_item (GtkIconView *icon_view,
+ GtkTooltip *tooltip,
+ GtkTreePath *path)
+{
+ g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
+ g_return_if_fail (GTK_IS_TOOLTIP (tooltip));
+
+ gtk_icon_view_set_tooltip_cell (icon_view, tooltip, path, NULL);
+}
+
+/**
+ * gtk_icon_view_set_tooltip_cell:
+ * @icon_view: a #GtkIconView
+ * @tooltip: a #GtkTooltip
+ * @path: a #GtkTreePath
+ * @cell: a #GtkCellRenderer or %NULL
+ *
+ * Sets the tip area of @tooltip to the area which @cell occupies in
+ * the item pointed to by @path. See also gtk_tooltip_set_tip_area().
+ *
+ * Since: 2.12
+ */
+void
+gtk_icon_view_set_tooltip_cell (GtkIconView *icon_view,
+ GtkTooltip *tooltip,
+ GtkTreePath *path,
+ GtkCellRenderer *cell)
+{
+ GdkRectangle rect;
+ GtkIconViewItem *item = NULL;
+ GtkIconViewCellInfo *info = NULL;
+
+ g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
+ g_return_if_fail (GTK_IS_TOOLTIP (tooltip));
+ g_return_if_fail (cell == NULL || GTK_IS_CELL_RENDERER (cell));
+
+ if (gtk_tree_path_get_depth (path) > 0)
+ item = g_list_nth_data (icon_view->priv->items,
+ gtk_tree_path_get_indices(path)[0]);
+
+ if (!item)
+ return;
+
+ if (cell)
+ {
+ info = gtk_icon_view_get_cell_info (icon_view, cell);
+ gtk_icon_view_get_cell_area (icon_view, item, info, &rect);
+ }
+ else
+ {
+ rect.x = item->x;
+ rect.y = item->y;
+ rect.width = item->width;
+ rect.height = item->height;
+ }
+
+ if (icon_view->priv->bin_window)
+ {
+ gint x, y;
+
+ gdk_window_get_position (icon_view->priv->bin_window, &x, &y);
+ rect.x += x;
+ rect.y += y;
+ }
+
+ gtk_tooltip_set_tip_area (tooltip, &rect);
+}
/**
* gtk_icon_view_get_visible_range:
diff --git a/gtk/gtkiconview.h b/gtk/gtkiconview.h
index 62780c3f81..6aa35cea4d 100644
--- a/gtk/gtkiconview.h
+++ b/gtk/gtkiconview.h
@@ -23,6 +23,7 @@
#include <gtk/gtktreemodel.h>
#include <gtk/gtkcellrenderer.h>
#include <gtk/gtkselection.h>
+#include <gtk/gtktooltip.h>
G_BEGIN_DECLS
@@ -202,6 +203,15 @@ void gtk_icon_view_convert_widget_to_bin_window_coords (GtkIconView *icon
gint *by);
+void gtk_icon_view_set_tooltip_item (GtkIconView *icon_view,
+ GtkTooltip *tooltip,
+ GtkTreePath *path);
+void gtk_icon_view_set_tooltip_cell (GtkIconView *icon_view,
+ GtkTooltip *tooltip,
+ GtkTreePath *path,
+ GtkCellRenderer *cell);
+
+
G_END_DECLS
#endif /* __GTK_ICON_VIEW_H__ */