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
This commit is contained in:
Matthias Clasen 2007-07-16 14:04:35 +00:00 committed by Matthias Clasen
parent 6193950b57
commit bdf50bd4f6
6 changed files with 109 additions and 1 deletions

View File

@ -1,3 +1,11 @@
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.
2007-07-14 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkevents-quartz.c:

View File

@ -1,9 +1,18 @@
2007-07-16 Matthias Clasen <mclasen@redhat.com>
* gtk/gtk-sections.txt: Add icon view tooltip convenience functions.
Thu Jul 12 18:12:04 2007 Tim Janik <timj@imendio.com>
* gdk/tmpl/threads.sgml: clarify section about gdk_threads_enter/
gdk_threads_leave to be reworded in terms of events and to mention
availability of gdk_threads_add_idle_full().
2007-07-11 Matthias Clasen <mclasen@redhat.com>
* gtk/tmpl/gtkbindings.sgml: Add a paragraph about
keybinding signals.
2007-07-11 Matthias Clasen <mclasen@redhat.com>
* gtk/tmpl/gtkrange.sgml:

View File

@ -4746,6 +4746,7 @@ gtk_cell_layout_get_type
GtkCellRendererState
GtkCellRendererMode
GtkCellRenderer
GtkCellRendererClass
gtk_cell_renderer_get_size
gtk_cell_renderer_render
gtk_cell_renderer_activate

View File

@ -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

View File

@ -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:

View File

@ -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__ */