Re: [gtkmm] Tooltips with gtkmm-2.3
- From: Chris Vine <chris cvine freeserve co uk>
- To: Murray Cumming <murrayc murrayc com>
- Cc: gtkmm-list <gtkmm-list gnome org>
- Subject: Re: [gtkmm] Tooltips with gtkmm-2.3
- Date: Fri, 9 Apr 2004 18:55:56 +0100
On Friday 09 April 2004 17:00, Murray Cumming wrote:
> On Fri, 2004-04-09 at 15:19, Chris Vine wrote:
> > To follow up on my own post and to help any others with this problem, I
> > have found two ways of getting tooltips to work with Gtk::Toolbar:
> >
> > The hack, which uses the Gtk::Tooltips object provided by Gtk::Toolbar -
> > Gtk::Toolbar* toolbar_p = manage(new Gtk::Toolbar);
> > toolbar_p->set_tooltips(true);
> > Gtk::Tooltips* tooltips_p = Glib::wrap(tool_bar.gobj()->tooltips,
> > false); Gtk::ToolButton* button_p = manage(new Gtk::ToolButton(image));
> > button_p->set_tooltip(*tooltips_p, "Tooltips text");
>
> Yes, I noticed this before:
> http://bugzilla.gnome.org/show_bug.cgi?id=127726
>
> I will add a Gtk::Toolbar::get_tooltips_object() accessor. Thanks for
> reminding me. I guess that solves the problem.
The thing that slightly troubles me is that this means accessing a private
member of struct _GtkToolbar, which you are not really supposed to do. On
the other hand, GTK+ has deprecated gtk_toolbar_append_item, presumably
expecting new code to use gtk_toolbar_insert which seems to be the only
relevant function left undeprecated (perhaps its a documentation error?), but
it has provided no accessor function for the tooltips object which is needed
to use gtk_tool_item_set_tooltip(), which is the only other way of setting a
tooltip. It seems a clear error in the GTK+ API.
I think the better course is just to wrap gtk_toolbar_append_item. Although
it is said to be deprecated, it is in fact the only function which can
sensibly be used.
There are also confusingly different ways of setting a tooltip. Translated
from GTK+-speak into gtkmm-speak, assuming a Gtk::Tooltips object "tooltips",
a Gtk::Button object "button" has its tooltip set with:
tooltips.set_tip(button, "Tooltip text");
Whereas a Gtk::ToolButton object "button" with a Gtk::Tooltips object
"tooltips" has its tooltip set with:
button.set_tooltip(tooltips, "Tooltip text");
(With a Gtk::ToolButton object the Gtk::Button approach will not work - a
Gtk::ToolButton is not derived from Gtk::Button and they have unrelated
member functions.)
There is nothing gtkmm can do about this, it follows from the GTK+ API, which
seems to have got lost somewhere down the line.
Chris.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]