Re: Cannot `dynamic_cast` custom wrapped widget from Gtk::Builder




On 2020-05-04 23:45, Josh Bialkowski wrote:
> You said in a previous post that you execute...

Wellllll... this is executed inside the generated `wrap_init()` which is part of the `Gtk::` namespace (in hindsight, a bad idea) and apparently this function is not getting called. If I call it directly in `main()` then things are working. At first, I thought there must be a `Gtk::wrap_init()` somewhere already in gtkmm but I can't find it, so the other possibility is maybe a build system error and a left over build artifact somewhere. Maybe? In any case, to summarize, my understanding is that:

1. I used _CLASS_GOBJECT which generates a Glib::wrap returning a `Glib::RefPtr` instead of _CLASS_GTKOBJECT which generates Glib::wrap returning a raw pointer. This may or may not have contributed to the particular problem, as perhaps some type/overload resolution somewhere depended on this. Or it was a latent error that wasn't involved in this particular problem. 2. Lacking a `wrap_init`, I was not calling `Glib::wrap_register`, which sounds like the most likely culprit 3. Even after I generated `wrap_init()`, it apparently wasn't getting called. Possibly due to some link-order issue or a stale build artifact or something.

Gtk::wrap_init() is called from Gtk::Main (deprecated) and from Gtk::Application.

Have you created your own Gtk::wrap_init(), containing everything the standard Gtk::wrap_init() contains, plus your own Glib::wrap_register() call? In that case I suppose there are two Gtk::wrap_init() functions, one in libgtkmm-3.0 and another one in your lib file. Which one will the linker select?



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