Re: Template Widgets inside another GtkBuilder file



So the really question becomes, how to get `g_type_ensure` generated
in output code when subclassing Widgets in Vala ?

2015-10-05 17:54 GMT-03:00 Victor Aurélio Santos <victoraur santos gmail com>:
Emmanuele,

In order to do that, you should use `g_type_ensure()` inside the
instance initialization function of the parent's widget class

Since using Vala, from what I can see in case of using [GtkTemplate]
the g_type_ensure is generated, but when just subclassing a GtkWidget
it doesn't exists in the generated .c, am I right ?

And what I can do to g_type_ensure be present in generated .c in the
second case ?

Thanks.

2015-10-04 10:40 GMT-03:00 Emmanuele Bassi <ebassi gmail com>:
Hi;

On 3 October 2015 at 02:14, Victor Aurélio Santos
<victoraur santos gmail com> wrote:
How can I do that ?
Just build all together results in this warning:

(ajami:3475): Gtk-CRITICAL **: Error building template class 'AjamiMainWindow' for an instance of type 
'AjamiMainWindow': Invalid object type 'HVMeter' on line 2

I've asked on SO[1] and got only one answer.

I stick at "_get_type" workaround/hack but I didn't like it and I
can't do the same thing in Vala (I've not found how to do the same
thing).

More details can be found on SO question.

So, what I really want to know is what is the best option to
accomplish this in Vala and in C too.

[1]: http://stackoverflow.com/questions/24235937/custom-gtk-widget-with-template-ui

If you have an internal, private widget that you use as a child in a
template, you'll need to ensure that the type system knows about the
child widget's type before initializing the template that references
it.

In order to do that, you should use `g_type_ensure()` inside the
instance initialization function of the parent's widget class, right
before calling `gtk_widget_init_template()`; for instance:

  g_type_ensure (hv_meter_get_type ());

This is also what GTK+ itself does:
https://git.gnome.org/browse/gtk+/tree/gtk/gtkfilechooserwidget.c#n8598

Ciao,
 Emmanuele.

--
https://www.bassi.io
[ ] ebassi [ gmail com]



--
Victor Aurélio Santos



-- 
Victor Aurélio Santos


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