A. Pagaltzis said:
> * ofey aikon <[EMAIL PROTECTED]> [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
> approach.

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
gtktooltips.c:
http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktooltips.c?rev=1.66&view=markup


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>

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

Reply via email to