Re: Programmatically popup a tooltip
- From: "muppet" <scott asofyet org>
- To: gtk-perl-list gnome org
- Subject: Re: Programmatically popup a tooltip
- Date: Fri, 13 May 2005 12:31:38 -0400 (EDT)
A. Pagaltzis said:
* ofey aikon <ofey aikon gmail com> [2005-05-13 17:40]:
If you are wondering what I am upto, I want to move my mouse
over a Gtk2::Image and based on the co-ordinates, I want to
popup a tooltip and display different text.
The only straightforward solution seems to be to put the
Gtk2::Image in a Gtk2::Fixed container and then position
Gtk2::EventBox objects on top of the image at the desired
coordinates â?? you can then associate an individual tooltip with
each eventbox. This doesnâ??t seem very satisfactory, but despite a
good amount of searching I canâ??t see how widgets and tooltips
interface with each other, so there seems not to be any easier
That sounds like a recipe for resource starvation. Each EventBox creates its
own GdkWindow, which corresponds to an X window. If you wanted a different
mouseover for every pixel in the image, that's a lot of very small windows.
The tooltip attaches itself to a widget's event-after signal (the signal that
fires *after* each event, in case you didn't know such a beast existed :) and
listens for enter and leave. When it gets an enter, if no tooltip is visible,
a timeout is installed to pop one up, else the current widget's tooltip is
displayed; when it gets a leave, the tooltip is torn down. All of that is in
The positioning of the tooltip is based on the widget's allocation. That's
pretty much the reason that GtkTreeView doesn't have tooltips. You know
GtkCList and GtkCTree could show a tooltip for each row when partially
obscured? Yes, that's a feature regression, and there's been a bug about it
in bugzilla for several years. The solution is big changes to the design of
tooltips to allow a widget to participate in the positioning and text content
of a tooltip.
... which is exactly what Ofey is looking for, as i understand it.
As a workaround, what about using a normal label somewhere in the window (e.g.
a status bar), and update that label as you move the mouse over the image?
Like, for example, the gimp's pixel-coordinate display in the lower-left
corner of each image window.
muppet <scott at asofyet dot org>
] [Thread Prev