On Tue, 2007-06-12 at 13:59 +0200, Kristian Rietveld wrote:
> On Sun, Jun 10, 2007 at 10:38:44AM +0200, Murray Cumming wrote:
> > There's also a new GtkTooltip object. Could we have some more information 
> > about how this should be used and if it replaces any existing API, please?
> 
> Sure ;)  As Matthias pointed out in one of his other mails, GTK+ 2.12
> has a brand-new API for doing tooltips, replacing the aging GtkTooltips
> object.

So could we deprecate GtkTooltips with #ifdefs and gtk-doc comments?

Thanks for the great overview.

>   There are several ways for showing tooltips using the new API,
> increasing in complexity as the complexity of the wished tooltip
> increases:
> 
>  1. If everything you need is a tooltip displaying a simple text string,
>     with or without Pango markup, the only thing you have to do is
>     just setting the "tooltip-markup" property.
> 
>  2. When you need a tooltip with a little more fancy contents, like
>     adding an image, or you want the tooltip to have different contents
>     per GtkTreeView row or cell, you will have to do a little more work:
> 
>       - Set the has-tooltip property on GtkWidget to TRUE, this will
>       make GTK+ monitor the widget for motion and related events
>       which are needed to determine when and where to show a tooltip.
> 
>       - Connect to the "query-tooltip" signal on GtkWidget.  This signal
>         will be emitted when a tooltip will have to be shown.  The
>       signature is:
> 
>   gboolean     (* query_tooltip)      (GtkWidget  *widget,
>                                        gint        x,
>                                        gint        y,
>                                        gboolean    keyboard_tooltip,
>                                        GtkTooltip *tooltip);
> 
>       The arguments are pretty much straightforward, and here we see
>       where the new GtkTooltip object comes to play.  The GtkTooltip
>       is the object that we are about to display as a tooltip, and can
>       be manipulated in your query-tooltip callback using functions
>       like:
> 
>                void gtk_tooltip_set_icon (GtkTooltip  *tooltip,
>                                           GdkPixbuf   *pixbuf);
> 
>       there are likewise functions for setting the tooltip's markup,
>       setting an image from a stock icon or even for putting in a
>       custom widget.
> 
>       Important is the return value of query-tooltip: when you return
>       TRUE the GtkTooltip will be shown, when you return FALSE it will
>       not be shown.
> 
>  3. In the, probably, rare case where you want to have even more control
>     over the tooltip that is about to be shown, you can set your own
>     GtkWindow which will be used as tooltip window.  This works as
>     follows:
> 
>         - Set has-tooltip and connect to query-tooltip as under 2).
>       
>       - Use gtk_widget_set_tooltip_window() to set a GtkWindow created
>         by you as tooltip window.
> 
>       - In the query-tooltip callback you can access your GtkWindow
>         using gtk_widget_get_tooltip_window() and manipulate as you
>         wish.  The semantics of the return value of query-tooltip are
>         exactly the same as with 2): TRUE will show the tooltip
>         window, FALSE will not show it.
> 
> 
> In the GTK+ source code you will find a test app testing all of the
> above methods in gtk+/tests/testtooltips.c.  There are examples for
> simple tooltips on buttons (also insensitive buttons!), tooltips on
> GtkTreeView rows, tooltips on GtkTextView tags and a small example with
> tooltips on specific areas of a GtkDrawingArea.  (Yes, I know the tree
> view example is a little broken -- it will be fixed RSN).
> 
> Some small details are still left to be worked out; think of improving
> tooltips positioning, probably popup-tooltip-directly-on-demand and at
> some later stage greater flexibility and customizability.  Watch
> gtk-devel-list for the latest news ;)
> 
> 
> I hope this gives you enough information to get started!
> 
> 
> regards,
> 
> -kris.
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-devel-list
-- 
Murray Cumming
[EMAIL PROTECTED]
www.murrayc.com
www.openismus.com

_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to