]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gobject-2.0: finish GClosure bindings
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Sat, 23 Oct 2010 08:24:07 +0000 (01:24 -0700)
committerEvan Nemerson <evan@coeus-group.com>
Sat, 23 Oct 2010 08:24:07 +0000 (01:24 -0700)
Fixes bug 629074.

vapi/gobject-2.0.vapi

index 08ddc5c7fd0db0598ecb5dd02f2ca8f9278656aa..1b29939d27e7680d7d7b10cd9bb848a913326cfa 100644 (file)
@@ -527,13 +527,28 @@ namespace GLib {
        public delegate void Callback ();
 
        [Compact]
-       [CCode (type_id = "G_TYPE_CLOSURE")]
+       [CCode (ref_function = "g_closure_ref", unref_function = "g_closure_unref", type_id = "G_TYPE_CLOSURE")]
        public class Closure {
+               public void sink ();
+               public void invoke (out Value? return_value, [CCode (array_length_pos = 1.9)] Value[] param_values, void *invocation_hint);
+               public void invalidate ();
+               public void add_finalize_notifier (void *notify_data, ClosureNotify notify_func);
+               public void add_invalidate_notifier (void *notify_data, ClosureNotify notify_func);
+               public void remove_finalize_notifier (void *notify_data, ClosureNotify notify_func);
+               public void remove_invalidate_notifier (void *notify_data, ClosureNotify notify_func);
+               [CCode (cname = "g_closure_new_object")]
+               public Closure (ulong sizeof_closure, Object object);
+               public void set_marshal (ClosureMarshal marshal);
+               public void add_marshal_guards (void *pre_marshal_data, ClosureNotify pre_marshal_notify, void *post_marshal_data, ClosureNotify post_marshal_notify);
+               public void set_meta_marshal (void *marshal_data, ClosureMarshal meta_marshal);
        }
 
        [CCode (has_target = false)]
        public delegate void ClosureNotify (void* data, Closure closure);
 
+       [CCode (instance_pos = 0, has_target = false)]
+       public delegate void ClosureMarshal (Closure closure, out Value return_value, [CCode (array_length_pos = 2.9)] Value[] param_values, void *invocation_hint, void *marshal_data);
+
        [Compact]
        [CCode (type_id = "G_TYPE_VALUE_ARRAY", copy_function = "g_value_array_copy", free_function = "g_value_array_free")]
        public class ValueArray {