Re: [gtkmm] Tooltips with gtkmm-2.3



On Fri, 2004-04-09 at 19:55, Chris Vine wrote:
> 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.

If you read that bug, you will see that it is public.

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

They probably expect us to use the UIManager.

> I think the better course is just to wrap gtk_toolbar_append_item.

No, the accessor is completely OK.

>   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");

Yes, this seems less than ideal. Feel free to file a GTK+ or gtkmm bug
for the next development phase.

> (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.

-- 
Murray Cumming
www.murrayc.com
murrayc murrayc com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]