[Vala] Overriding Gtk.Container.forall (...)



Hi,

I'm trying to override the 'forall' function of a Gtk.Container.
The signature in the vapi is:

    void forall (Gtk.Callback callback, void* callback_data);

but it should be:

    void forall (bool include_internals, Gtk.Callback callback);

I can hide the 'callback_data' parameter by adding this line to the 'gtk+-2.0.metadata' file:

    gtk_container_forall.callback_data hidden="1"

But how can i get the 'include_internals' parameter into the vapi definition? Strangely, there are two different method signatures for 'forall' in the 'gtk/gtkcontainer.h' header file:

    void    (*forall)             (GtkContainer    *container,
                                   gboolean         include_internals,
                                   GtkCallback      callback,
                                   gpointer         callback_data);

and

    void    gtk_container_forall  (GtkContainer *container,
                                   GtkCallback   callback,
                                   gpointer      callback_data);

Why does the virtual method definition have a different signature and how can I get vapigen to generate the correct definition?


Regards,

Frederik



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