Re: How-to derive from Gtk::Builder?



A derived Gtk::Builder must have its own constructor and create() method or methods. See ExampleApplication in https://git.gnome.org/browse/gtkmm-documentation/tree/examples/book/menus/main_menu for an example.

But I recommend another solution. You say that "there seems to be no way to get the widget name in the derived widget." That's not true. What you really mean, I guess, is that there is no way to get the widget name into the constructor of the  derived widget. When you derive a widget, you can give it any methods you like, e.g. an init(const Glib::ustring& name) method where most of the initialization is done.
DerivedWidget* pWidget = nullptr;
refBuilder->get_widget_derived(widget_name, pWidget);
if (pWidget)
  pWidget->init(widget_name);
Kjell

Den 2015-07-31 05:19, Markus Kolb skrev:
Hi,

how can I derive from Gtk::Builder?
I've problems to cast the Glib::RefPtr<Gtk::Builder> to the G::R<Derived>:

/usr/include/glibmm-2.4/glibmm/refptr.h:237:3: error: cannot initialize a member
      subobject of type 'Derived *' with an rvalue of type 'Gtk::Builder *'
  pCppObject_ (src.operator->())


I need to overwrite
get_widget_derived(const Glib::ustring& name, T_Widget*& widget)
because there seems to be no way to get the widget name in the derived widget.

There is a method get_name(), but there I only get something like Gtk__Button
and not the unique id set in the glade file and requested with the name argument.

So I'd like to store the name argument when calling get_widget_derived from
AppBuilder in an instance variable.
The derived widget could then use the derived Builder to have access to the
name.

Thanks.
_



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