Re: Setting custom Glib::Property values in Gtk::Builder .ui XML
- From: Kjell Ahlstedt <kjellahlstedt gmail com>
- To: Daniel Boles <dboles src gmail com>
- Cc: gtkmm-list <gtkmm-list gnome org>
- Subject: Re: Setting custom Glib::Property values in Gtk::Builder .ui XML
- Date: Sat, 15 Jun 2019 10:52:08 +0200
On 6/13/19 2:41 PM, Daniel Boles via gtkmm-list wrote:
> for posterity, it looks like someone else has had the same questions
but didn't get much further:
That user was also using wrap_register() to have code called when
glibmm wraps the C instances. I know next to nothing about that - but
I wonder if it's at all possible that it could be used with
builder->get_objects() in order to ensure everything gets wrapped, and
custom code in the registered wrap_new() function to apply the derived
properties? However, it seems that user didn't get that to work, if I
understood correctly.
I've made a similar test. It failed.
I started with gtkmm-documentation/examples/book/builder/derived and
replaced the GtkButton with
class MyButton : public Gtk::Button
with a few custom properties. I used Glib::Property for those
properties. In the .ui file:
<object class="gtkmm__CustomObject_MyButton" id="quit_button">
MyButton has
MyButton(GtkButton* castitem);
static Glib::ObjectBase* wrap_new(GObject* object);
and I call
Glib::wrap_register(g_type_from_name("gtkmm__CustomObject_MyButton"),
&MyButton::wrap_new);
after having created a dummy MyButton instance to have the class init
function called.
The only problem is that the custom property values, specified in the
.ui file, are not stored anywhere. Glib::Property stores custom property
values in the C++ code, but GtkBuilder creates a C instance of MyButton
and tries to store the property values before Gtk::Builder::get_widget()
has created the C++ wrapper. Glib::custom_set_property_callback() in
glibmm/property.cc discards the values.
Conclusion: It's not possible to combine Glib::Property with Gtk::Builder.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]