]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Move gobject-2.0 bindings to separate VAPI file
authorJürg Billeter <j@bitron.ch>
Wed, 22 Oct 2008 18:32:59 +0000 (18:32 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 22 Oct 2008 18:32:59 +0000 (18:32 +0000)
2008-10-22  Jürg Billeter  <j@bitron.ch>

* vapi/glib-2.0.vapi:
* vapi/gobject-2.0.vapi:
* vapi/Makefile.am:

Move gobject-2.0 bindings to separate VAPI file

* compiler/valacompiler.vala:
* vapigen/valavapigen.vala:

Include gobject-2.0 by default

* gee/Makefile.am:
* ccode/Makefile.am:
* vala/Makefile.am:
* gobject/Makefile.am:
* compiler/Makefile.am:

Support building libvala and valac with older Vala versions

svn path=/trunk/; revision=1870

ChangeLog
ccode/Makefile.am
compiler/Makefile.am
compiler/valacompiler.vala
gee/Makefile.am
gobject/Makefile.am
vala/Makefile.am
vapi/Makefile.am
vapi/glib-2.0.vapi
vapi/gobject-2.0.vapi [new file with mode: 0644]
vapigen/valavapigen.vala

index 9f361c5122b24e47f5448a2ae2fe6e85e29506b2..f7323e1cd988621f4484d5530d935cfad226ca52 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2008-10-22  Jürg Billeter  <j@bitron.ch>
+
+       * vapi/glib-2.0.vapi:
+       * vapi/gobject-2.0.vapi:
+       * vapi/Makefile.am:
+
+       Move gobject-2.0 bindings to separate VAPI file
+
+       * compiler/valacompiler.vala:
+       * vapigen/valavapigen.vala:
+
+       Include gobject-2.0 by default
+
+       * gee/Makefile.am:
+       * ccode/Makefile.am:
+       * vala/Makefile.am:
+       * gobject/Makefile.am:
+       * compiler/Makefile.am:
+
+       Support building libvala and valac with older Vala versions
+
 2008-10-22  Jürg Billeter  <j@bitron.ch>
 
        * ChangeLog.pre-0-4:
index d335e029dab8122d5536e42b0a3c621b527a6e4c..77801da8f89dd29451b9b9bfec42c49050afbbe0 100644 (file)
@@ -76,7 +76,7 @@ ccodeinclude_HEADERS = \
        $(NULL)
 
 ccode.vapi ccode.vala.stamp: $(libvalaccode_la_VALASOURCES)
-       $(VALAC) -C --vapidir $(srcdir)/../vapi --vapidir ../gee --pkg gee --basedir $(top_srcdir) --library ccode $^
+       $(VALAC) -C --vapidir $(srcdir)/../vapi --pkg gobject-2.0 --vapidir ../gee --pkg gee --basedir $(top_srcdir) --library ccode $^
        touch $@
 
 libvalaccode_la_LIBADD = \
index 94c8c5f81eedac3a9f8df99e3aecd7cad31c4487..7533ff675cfd71c026f8efebb4b2cc8ef17e969a 100644 (file)
@@ -24,7 +24,7 @@ valac_SOURCES = \
        $(NULL)
 
 valac.vala.stamp: $(valac_VALASOURCES)
-       $(VALAC) -C --vapidir $(srcdir)/../vapi --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --vapidir ../vala --pkg vala --vapidir ../gobject --pkg gobject --pkg config --basedir $(top_srcdir) $^
+       $(VALAC) -C --vapidir $(srcdir)/../vapi --pkg gobject-2.0 --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --vapidir ../vala --pkg vala --vapidir ../gobject --pkg gobject --pkg config --basedir $(top_srcdir) $^
        touch $@
 
 valac_LDADD = \
index 0babf2e8e9f6d639bf8fbe0750347c85353c1ea1..80c40cd5495cd729776c00c150753999ca63f454 100644 (file)
@@ -190,11 +190,14 @@ class Vala.Compiler {
 
                context.codegen = new CCodeGenerator ();
 
-               /* default package */
+               /* default packages */
                if (!add_package (context, "glib-2.0")) {
                        Report.error (null, "glib-2.0 not found in specified Vala API directories");
                }
-               
+               if (!add_package (context, "gobject-2.0")) {
+                       Report.error (null, "gobject-2.0 not found in specified Vala API directories");
+               }
+
                if (packages != null) {
                        foreach (string package in packages) {
                                if (!add_package (context, package)) {
index 63a8654d3d57bda600c42e89c653336bd8083493..40a363d69bc6e96ec376c36d31eb431392fe5e94 100644 (file)
@@ -41,7 +41,7 @@ geeinclude_HEADERS = \
        $(NULL)
 
 gee.vapi gee.vala.stamp: $(libgee_la_VALASOURCES)
-       $(VALAC) -C --vapidir $(srcdir)/../vapi --basedir $(top_srcdir) --library gee $^
+       $(VALAC) -C --vapidir $(srcdir)/../vapi --pkg gobject-2.0 --basedir $(top_srcdir) --library gee $^
        touch $@
 
 libgee_la_LIBADD = \
index 392cda307d314f5acc079f55133d5d337c2371a2..1d116c0ba5fe5126a02e89589f59c250c2e7f8d8 100644 (file)
@@ -52,7 +52,7 @@ gobjectinclude_HEADERS = \
        $(NULL)
 
 gobject.vapi gobject.vala.stamp: $(libvala_la_VALASOURCES)
-       $(VALAC) -C --vapidir $(srcdir)/../vapi --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --vapidir ../vala --pkg vala --basedir $(top_srcdir) --library gobject $^
+       $(VALAC) -C --vapidir $(srcdir)/../vapi --pkg gobject-2.0 --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --vapidir ../vala --pkg vala --basedir $(top_srcdir) --library gobject $^
        touch $@
 
 libvala_la_LDFLAGS = -no-undefined
index 0215a8c85502ba5614d6dcc338a860f0ea07d72f..ef4657ed29165f1b994c4617794a6a2eda3fb594 100644 (file)
@@ -163,7 +163,7 @@ valainclude_HEADERS = \
        $(NULL)
 
 vala.vapi vala.vala.stamp: $(libvalacore_la_VALASOURCES)
-       $(VALAC) -C --vapidir $(srcdir)/../vapi --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --pkg config --basedir $(top_srcdir) --library vala $^
+       $(VALAC) -C --vapidir $(srcdir)/../vapi --pkg gobject-2.0 --vapidir ../gee --pkg gee --vapidir ../ccode --pkg ccode --pkg config --basedir $(top_srcdir) --library vala $^
        touch $@
 
 libvalacore_la_LIBADD = \
index 2035617e08ae9be2251c88a85a1bc9476232b7b9..b4e66b9d9b263bfe1845a08bff58fb87c5aa0ff1 100644 (file)
@@ -32,6 +32,7 @@ dist_vapi_DATA = \
        gnome-desktop-2.0.vapi \
        gnome-keyring-1.vapi \
        gnome-vfs-2.0.vapi \
+       gobject-2.0.vapi \
        goocanvas.deps \
        goocanvas.vapi \
        gsl.vapi \
index 563bbcb605cec385190bb63f0b1a4f313a1a4965..30456db5ee04ffceccd1c7ccd97bb5473370f4ea 100644 (file)
@@ -802,338 +802,6 @@ public class string {
 [Import ()]
 [CCode (cprefix = "G", lower_case_cprefix = "g_", cheader_filename = "glib.h")]
 namespace GLib {
-       [CCode (type_id = "G_TYPE_GTYPE", marshaller_type_name = "GTYPE", get_value_function = "g_value_get_gtype", set_value_function = "g_value_set_gtype")]
-       public struct Type : ulong {
-               [CCode (cname = "G_TYPE_IS_OBJECT")]
-               public bool is_object ();
-               [CCode (cname = "G_TYPE_IS_ABSTRACT")]
-               public bool is_abstract ();
-               [CCode (cname = "G_TYPE_IS_CLASSED")]
-               public bool is_classed ();
-               [CCode (cname = "G_TYPE_IS_DERIVABLE")]
-               public bool is_derivable ();
-               [CCode (cname = "G_TYPE_IS_DEEP_DERIVABLE")]
-               public bool is_deep_derivable ();
-               [CCode (cname = "G_TYPE_IS_DERIVED")]
-               public bool is_derived ();
-               [CCode (cname = "G_TYPE_IS_FUNDAMENTAL")]
-               public bool is_fundamental ();
-               [CCode (cname = "G_TYPE_IS_INSTANTIATABLE")]
-               public bool is_instantiatable ();
-               [CCode (cname = "G_TYPE_IS_INTERFACE")]
-               public bool is_interface ();
-               [CCode (cname = "G_TYPE_IS_VALUE_TYPE")]
-               public bool is_value_type ();
-               
-               public Type[] children ();
-               public uint depth ();
-               public static Type from_name (string name);
-               public Type[] interfaces ();
-               public bool is_a (Type is_a_type);
-               public weak string name ();
-               public Quark qname ();
-               public Type parent ();
-
-               public void query (out TypeQuery query);
-
-               public TypeClass class_ref ();
-               public weak TypeClass class_peek ();
-
-               [CCode (cname = "G_TYPE_INVALID")]
-               public static Type INVALID;
-       }
-
-       public struct TypeQuery {
-               public Type type;
-               public weak string type_name;
-               public uint class_size;
-               public uint instance_size;
-       }
-
-       [Compact]
-       [CCode (ref_function = "g_type_class_ref", unref_function = "g_type_class_unref")]
-       public class TypeClass {
-               [CCode (cname = "G_TYPE_FROM_CLASS")]
-               public Type get_type ();
-       }
-
-       [CCode (cprefix = "G_TYPE_DEBUG_", has_type_id = false)]
-       public enum TypeDebugFlags {
-               NONE,
-               OBJECTS,
-               SIGNALS,
-               MASK
-       }
-
-       public interface TypePlugin {
-       }
-
-       [CCode (lower_case_csuffix = "type_module")]
-       public class TypeModule : Object, TypePlugin {
-               public bool use ();
-               public void unuse ();
-               public void set_name (string name);
-               [NoWrapper]
-               public virtual bool load ();
-               [NoWrapper]
-               public virtual void unload ();
-       }
-
-       [CCode (ref_function = "g_param_spec_ref", unref_function = "g_param_spec_unref")]
-       public class ParamSpec {
-               public string name;
-               public ParamFlags flags;
-               public Type value_type;
-               public Type owner_type;
-               public weak string get_blurb ();
-               public weak string get_name ();
-               public weak string get_nick ();
-       }
-
-       public class ParamSpecEnum : ParamSpec {
-               [CCode (cname = "g_param_spec_enum")]
-               public ParamSpecEnum (string name, string nick, string blurb, Type enum_type, int default_value, ParamFlags flags);
-       }
-
-       public class ParamSpecFloat : ParamSpec {
-               [CCode (cname = "g_param_spec_float")]
-               public ParamSpecFloat (string name, string nick, string blurb, float minimum, float maximum, float default_value, ParamFlags flags);
-       }
-
-       public class ParamSpecInt : ParamSpec {
-               [CCode (cname = "g_param_spec_int")]
-               public ParamSpecInt (string name, string nick, string blurb, int minimum, int maximum, int default_value, ParamFlags flags);
-       }
-
-       public class ParamSpecUInt : ParamSpec {
-               [CCode (cname = "g_param_spec_uint")]
-               public ParamSpecUInt (string name, string nick, string blurb, uint minimum, uint maximum, uint default_value, ParamFlags flags);
-       }
-
-       public class ParamSpecBoolean : ParamSpec {
-               [CCode (cname = "g_param_spec_boolean")]
-               public ParamSpecBoolean (string name, string nick, string blurb, bool defaultvalue, ParamFlags flags);
-       }
-
-       [CCode (cprefix = "G_PARAM_", has_type_id = false)]
-       public enum ParamFlags {
-               READABLE,
-               WRITABLE,
-               CONSTRUCT,
-               CONSTRUCT_ONLY,
-               LAX_VALIDATION,
-               STATIC_NAME,
-               STATIC_NICK,
-               STATIC_BLURB,
-               READWRITE,
-               STATIC_STRINGS
-       }
-
-       [CCode (lower_case_csuffix = "object_class")]
-       public class ObjectClass : TypeClass {
-               public weak ParamSpec find_property (string property_name);
-               public weak ParamSpec[] list_properties ();
-               public void install_property (uint property_id, ParamSpec pspec);
-       }
-       
-       public struct ObjectConstructParam {
-       }
-
-       public static delegate void ObjectGetPropertyFunc (Object object, uint property_id, Value value, ParamSpec pspec);
-       public static delegate void ObjectSetPropertyFunc (Object object, uint property_id, Value value, ParamSpec pspec);
-       public static delegate void WeakNotify (void *data, Object object);
-
-       [CCode (ref_function = "g_object_ref", unref_function = "g_object_unref", marshaller_type_name = "OBJECT", get_value_function = "g_value_get_object", set_value_function = "g_value_set_object", param_spec_function = "g_param_spec_object", cheader_filename = "glib-object.h")]
-       public class Object {
-               public uint ref_count;
-
-               public static Object @new (Type type, ...);
-
-               [CCode (cname = "G_TYPE_FROM_INSTANCE")]
-               public Type get_type ();
-               public weak Object @ref ();
-               public void unref ();
-               public Object ref_sink ();
-               public void weak_ref (WeakNotify notify, void *data);
-               public void weak_unref (WeakNotify notify, void *data);
-               public void add_weak_pointer (void **data);
-               public void remove_weak_pointer (void **data);
-               public void get (string first_property_name, ...);
-               public void set (string first_property_name, ...);
-               public void get_property (string property_name, Value value);
-               public void set_property (string property_name, Value value);
-               public void* get_data (string key);
-               public void set_data (string key, void* data);
-               public void set_data_full (string key, void* data, DestroyNotify? destroy);
-               public void* steal_data (string key);
-               public void* get_qdata (Quark quark);
-               public void set_qdata (Quark quark, void* data);
-               public void set_qdata_full (Quark quark, void* data, DestroyNotify? destroy);
-               public void* steal_qdata (Quark quark);
-               public void freeze_notify ();
-               public void thaw_notify ();
-               public virtual void dispose ();
-               public virtual void finalize ();
-               public virtual void constructed ();
-
-               public signal void notify (ParamSpec pspec);
-
-               public weak Object connect (string signal_spec, ...);
-
-               public void add_toggle_ref (ToggleNotify notify);
-               public void remove_toggle_ref (ToggleNotify notify);
-       }
-
-       [CCode (instance_pos = 0)]
-       public delegate void ToggleNotify (GLib.Object object, bool is_last_ref);
-
-       public struct Parameter {
-               public string name;
-               public Value value;
-       }
-
-       public class InitiallyUnowned : Object {
-       }
-
-       [CCode (lower_case_csuffix = "enum")]
-       public class EnumClass : TypeClass {
-               public weak EnumValue? get_value (int value);
-               public weak EnumValue? get_value_by_name (string name);
-               public weak EnumValue? get_value_by_nick (string name);
-       }
-
-       [Compact]
-       public class EnumValue {
-               public int value;
-               public weak string value_name;
-               public weak string value_nick;
-       }
-
-       [CCode (lower_case_csuffix = "flags")]
-       public class FlagsClass : TypeClass {
-               public weak FlagsValue? get_first_value ();
-               public weak FlagsValue? get_value_by_name (string name);
-               public weak FlagsValue? get_value_by_nick (string name);
-       }
-
-       [Compact]
-       public class FlagsValue {
-               public int value;
-               public weak string value_name;
-               public weak string value_nick;
-       }
-
-       [Compact]
-       [CCode (cname = "gpointer", has_type_id = true, type_id = "G_TYPE_BOXED", marshaller_type_name = "BOXED", get_value_function = "g_value_get_boxed", set_value_function = "g_value_set_boxed")]
-       public abstract class Boxed {
-       }
-
-       public static delegate void ValueTransform (Value src_value, out Value dest_value);
-
-       [CCode (type_id = "G_TYPE_VALUE")]
-       public struct Value {
-               [CCode (cname = "G_VALUE_HOLDS")]
-               public bool holds (Type type);
-               [CCode (cname = "G_VALUE_TYPE")]
-               public Type type ();
-               [CCode (cname = "G_VALUE_TYPE_NAME")]
-               public weak string type_name ();
-
-               public Value (Type g_type);
-               public void copy (ref Value dest_value);
-               public weak Value? reset ();
-               public void init (Type g_type);
-               public void unset ();
-               public void set_instance (void* instance);
-               public bool fits_pointer ();
-               public void* peek_pointer ();
-               public static bool type_compatible (Type src_type, Type dest_type);
-               public static bool type_transformable (Type src_type, Type dest_type);
-               public bool transform (ref Value dest_value);
-               [CCode (cname = "g_strdup_value_contents")]
-               public string strdup_contents ();
-               public static void register_transform_func (Type src_type, Type dest_type, ValueTransform transform);
-               public void set_boolean (bool v_boolean);
-               public bool get_boolean ();
-               public void set_char (char v_char);
-               public char get_char ();
-               public void set_uchar (uchar v_uchar);
-               public uchar get_uchar ();
-               public void set_int (int v_int);
-               public int get_int ();
-               public void set_uint (uint v_uint);
-               public uint get_uint ();
-               public void set_long (long v_long);
-               public long get_long ();
-               public void set_ulong (ulong v_ulong);
-               public ulong get_ulong ();
-               public void set_int64 (int64 v_int64);
-               public int64 get_int64 ();
-               public void set_uint64 (uint64 v_uint64);
-               public uint64 get_uint64 ();
-               public void set_float (float v_float);
-               public float get_float ();
-               public void set_double (double v_double);
-               public double get_double ();
-               public void set_enum (int v_enum);
-               public int get_enum ();
-               public void set_flags (uint v_flags);
-               public uint get_flags ();
-               public void set_string (string v_string);
-               public void set_static_string (string v_string);
-               public void take_string (string# v_string);
-               public weak string get_string ();
-               public string dup_string ();
-               public void set_pointer (void* v_pointer);
-               public void* get_pointer ();
-               public void set_boxed (Boxed v_boxed);
-               public void take_boxed (Boxed# v_boxed);
-               public weak Boxed get_boxed ();
-               public Boxed dup_boxed ();
-               public void set_object (Object v_object);
-               public void take_object (Object# v_object);
-               public weak Object get_object ();
-               public Object dup_object ();
-               public void set_gtype (Type v_gtype);
-               public Type get_gtype ();
-       }
-       
-       public struct SignalInvocationHint {
-               public uint signal_id;
-               public Quark detail;
-               public SignalFlags run_type;
-       }
-
-       public delegate bool SignalEmissionHook (SignalInvocationHint ihint, [CCode (array_length_pos = 1.9)] Value[] param_values);
-
-       [CCode (cprefix = "G_SIGNAL_", has_type_id = false)]
-       public enum SignalFlags {
-               RUN_FIRST,
-               RUN_LAST,
-               RUN_CLEANUP,
-               DETAILED,
-               ACTION,
-               NO_HOOKS
-       }
-
-       [CCode (cprefix = "G_CONNECT_", has_type_id = false)]
-       public enum ConnectFlags {
-               AFTER,
-               SWAPPED
-       }
-
-       public static delegate void Callback ();
-
-       [Compact]
-       public class Closure : Boxed {
-       }
-
-       public static delegate void ClosureNotify (void* data, Closure closure);
-
-       [CCode (type_id = "G_TYPE_VALUE_ARRAY")]
-       public struct ValueArray {
-       }
-
        [CCode (lower_case_cprefix = "", cheader_filename = "math.h")]
        namespace Math {
                [CCode (cname = "G_E")]
@@ -3404,73 +3072,6 @@ namespace GLib {
                public static weak string? bind_textdomain_codeset (string domainname, string? codeset);
        }
 
-       namespace Signal {
-               public static void query (uint signal_id, out SignalQuery query);
-               public static uint lookup (string name, Type itype);
-               public static weak string name (uint signal_id);
-               public static uint[] list_ids (Type itype);
-               public static void emit (void* instance, uint signal_id, Quark detail, ...);
-               public static void emit_by_name (void* instance, string detailed_signal, ...);
-               public static ulong connect (void* instance, string detailed_signal, Callback handler, void* data);
-               public static ulong connect_after (void* instance, string detailed_signal, Callback handler, void* data);
-               public static ulong connect_swapped (void* instance, string detailed_signal, Callback handler, void* data);
-               public static ulong connect_object (void* instance, string detailed_signal, Callback handler, Object gobject, ConnectFlags flags);
-               public static ulong connect_data (void* instance, string detailed_signal, Callback handler, void* data, ClosureNotify destroy_data, ConnectFlags flags);
-               public static ulong connect_closure (void* instance, string detailed_signal, Closure closure, bool after);
-               public static ulong connect_closure_by_id (void* instance, uint signal_id, Quark detail, Closure closure, bool after);
-               public static bool has_handler_pending (void* instance, uint signal_id, Quark detail, bool may_be_blocked);
-               public static void stop_emission (void* instance, uint signal_id, Quark detail);
-               public static void stop_emission_by_name (void* instance, string detailed_signal);
-               public static void override_class_closure (uint signal_id, Type instance_type, Closure class_closure);
-               [NoArrayLength]
-               public static void chain_from_overridden (Value[] instance_and_params, out Value return_value);
-               public static ulong add_emission_hook (uint signal_id, Quark detail, SignalEmissionHook hook_func, DestroyNotify? data_destroy);
-               public static void remove_emission_hook (uint signal_id, ulong hook_id);
-               public static bool parse_name (string detailed_signal, Type itype, out uint signal_id, out Quark detail, bool force_detail_quark);
-       }
-
-       namespace SignalHandler {
-               public static void block (void* instance, ulong handler_id);
-               public static void unblock (void* instance, ulong handler_id);
-               public static void disconnect (void* instance, ulong handler_id);
-               public static ulong find (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
-               public static bool is_connected (void* instance, ulong handler_id);
-
-               [CCode (cname = "g_signal_handlers_block_matched")]
-               public static uint block_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
-               [CCode (cname = "g_signal_handlers_unblock_matched")]
-               public static uint unblock_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
-               [CCode (cname = "g_signal_handlers_disconnect_matched")]
-               public static uint disconnect_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
-               [CCode (cname = "g_signal_handlers_block_by_func")]
-               public static uint block_by_func (void* instance, void* func, void* data);
-               [CCode (cname = "g_signal_handlers_unblock_by_func")]
-               public static uint unblock_by_func (void* instance, void* func, void* data);
-               [CCode (cname = "g_signal_handlers_disconnect_by_func")]
-               public static uint disconnect_by_func (void* instance, void* func, void* data);
-       }
-
-       public struct SignalQuery {
-               public uint signal_id;
-               public weak string signal_name;
-               public Type itype;
-               public SignalFlags signal_flags;
-               public Type return_type;
-               public uint n_params;
-               [NoArrayLength]
-               public weak Type[] param_types;
-       }
-
-       [CCode (cprefix = "G_SIGNAL_MATCH_", has_type_id = false)]
-       public enum SignalMatchType {
-               ID,
-               DETAIL,
-               CLOSURE,
-               FUNC,
-               DATA,
-               UNBLOCKED
-       }
-
        [Compact]
        public class PatternSpec {
                public PatternSpec (string pattern);
diff --git a/vapi/gobject-2.0.vapi b/vapi/gobject-2.0.vapi
new file mode 100644 (file)
index 0000000..69c2bec
--- /dev/null
@@ -0,0 +1,426 @@
+/* gobject-2.0.vala
+ *
+ * Copyright (C) 2006-2008  Jürg Billeter, Raffaele Sandrini
+ * Copyright (C) 2007  Mathias Hasselmann
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ *
+ * Author:
+ *     Jürg Billeter <j@bitron.ch>
+ *     Raffaele Sandrini <rasa@gmx.ch>
+ *     Mathias Hasselmann <mathias.hasselmann@gmx.de>
+ */
+
+[CCode (cprefix = "G", lower_case_cprefix = "g_", cheader_filename = "glib.h")]
+namespace GLib {
+       [CCode (type_id = "G_TYPE_GTYPE", marshaller_type_name = "GTYPE", get_value_function = "g_value_get_gtype", set_value_function = "g_value_set_gtype")]
+       public struct Type : ulong {
+               [CCode (cname = "G_TYPE_IS_OBJECT")]
+               public bool is_object ();
+               [CCode (cname = "G_TYPE_IS_ABSTRACT")]
+               public bool is_abstract ();
+               [CCode (cname = "G_TYPE_IS_CLASSED")]
+               public bool is_classed ();
+               [CCode (cname = "G_TYPE_IS_DERIVABLE")]
+               public bool is_derivable ();
+               [CCode (cname = "G_TYPE_IS_DEEP_DERIVABLE")]
+               public bool is_deep_derivable ();
+               [CCode (cname = "G_TYPE_IS_DERIVED")]
+               public bool is_derived ();
+               [CCode (cname = "G_TYPE_IS_FUNDAMENTAL")]
+               public bool is_fundamental ();
+               [CCode (cname = "G_TYPE_IS_INSTANTIATABLE")]
+               public bool is_instantiatable ();
+               [CCode (cname = "G_TYPE_IS_INTERFACE")]
+               public bool is_interface ();
+               [CCode (cname = "G_TYPE_IS_VALUE_TYPE")]
+               public bool is_value_type ();
+               
+               public Type[] children ();
+               public uint depth ();
+               public static Type from_name (string name);
+               public Type[] interfaces ();
+               public bool is_a (Type is_a_type);
+               public weak string name ();
+               public Quark qname ();
+               public Type parent ();
+
+               public void query (out TypeQuery query);
+
+               public TypeClass class_ref ();
+               public weak TypeClass class_peek ();
+
+               [CCode (cname = "G_TYPE_INVALID")]
+               public static Type INVALID;
+       }
+
+       public struct TypeQuery {
+               public Type type;
+               public weak string type_name;
+               public uint class_size;
+               public uint instance_size;
+       }
+
+       [Compact]
+       [CCode (ref_function = "g_type_class_ref", unref_function = "g_type_class_unref")]
+       public class TypeClass {
+               [CCode (cname = "G_TYPE_FROM_CLASS")]
+               public Type get_type ();
+       }
+
+       [CCode (cprefix = "G_TYPE_DEBUG_", has_type_id = false)]
+       public enum TypeDebugFlags {
+               NONE,
+               OBJECTS,
+               SIGNALS,
+               MASK
+       }
+
+       public interface TypePlugin {
+       }
+
+       [CCode (lower_case_csuffix = "type_module")]
+       public class TypeModule : Object, TypePlugin {
+               public bool use ();
+               public void unuse ();
+               public void set_name (string name);
+               [NoWrapper]
+               public virtual bool load ();
+               [NoWrapper]
+               public virtual void unload ();
+       }
+
+       [CCode (ref_function = "g_param_spec_ref", unref_function = "g_param_spec_unref")]
+       public class ParamSpec {
+               public string name;
+               public ParamFlags flags;
+               public Type value_type;
+               public Type owner_type;
+               public weak string get_blurb ();
+               public weak string get_name ();
+               public weak string get_nick ();
+       }
+
+       public class ParamSpecEnum : ParamSpec {
+               [CCode (cname = "g_param_spec_enum")]
+               public ParamSpecEnum (string name, string nick, string blurb, Type enum_type, int default_value, ParamFlags flags);
+       }
+
+       public class ParamSpecFloat : ParamSpec {
+               [CCode (cname = "g_param_spec_float")]
+               public ParamSpecFloat (string name, string nick, string blurb, float minimum, float maximum, float default_value, ParamFlags flags);
+       }
+
+       public class ParamSpecInt : ParamSpec {
+               [CCode (cname = "g_param_spec_int")]
+               public ParamSpecInt (string name, string nick, string blurb, int minimum, int maximum, int default_value, ParamFlags flags);
+       }
+
+       public class ParamSpecUInt : ParamSpec {
+               [CCode (cname = "g_param_spec_uint")]
+               public ParamSpecUInt (string name, string nick, string blurb, uint minimum, uint maximum, uint default_value, ParamFlags flags);
+       }
+
+       public class ParamSpecBoolean : ParamSpec {
+               [CCode (cname = "g_param_spec_boolean")]
+               public ParamSpecBoolean (string name, string nick, string blurb, bool defaultvalue, ParamFlags flags);
+       }
+
+       [CCode (cprefix = "G_PARAM_", has_type_id = false)]
+       public enum ParamFlags {
+               READABLE,
+               WRITABLE,
+               CONSTRUCT,
+               CONSTRUCT_ONLY,
+               LAX_VALIDATION,
+               STATIC_NAME,
+               STATIC_NICK,
+               STATIC_BLURB,
+               READWRITE,
+               STATIC_STRINGS
+       }
+
+       [CCode (lower_case_csuffix = "object_class")]
+       public class ObjectClass : TypeClass {
+               public weak ParamSpec find_property (string property_name);
+               public weak ParamSpec[] list_properties ();
+               public void install_property (uint property_id, ParamSpec pspec);
+       }
+       
+       public struct ObjectConstructParam {
+       }
+
+       public static delegate void ObjectGetPropertyFunc (Object object, uint property_id, Value value, ParamSpec pspec);
+       public static delegate void ObjectSetPropertyFunc (Object object, uint property_id, Value value, ParamSpec pspec);
+       public static delegate void WeakNotify (void *data, Object object);
+
+       [CCode (ref_function = "g_object_ref", unref_function = "g_object_unref", marshaller_type_name = "OBJECT", get_value_function = "g_value_get_object", set_value_function = "g_value_set_object", param_spec_function = "g_param_spec_object", cheader_filename = "glib-object.h")]
+       public class Object {
+               public uint ref_count;
+
+               public static Object @new (Type type, ...);
+
+               [CCode (cname = "G_TYPE_FROM_INSTANCE")]
+               public Type get_type ();
+               public weak Object @ref ();
+               public void unref ();
+               public Object ref_sink ();
+               public void weak_ref (WeakNotify notify, void *data);
+               public void weak_unref (WeakNotify notify, void *data);
+               public void add_weak_pointer (void **data);
+               public void remove_weak_pointer (void **data);
+               public void get (string first_property_name, ...);
+               public void set (string first_property_name, ...);
+               public void get_property (string property_name, Value value);
+               public void set_property (string property_name, Value value);
+               public void* get_data (string key);
+               public void set_data (string key, void* data);
+               public void set_data_full (string key, void* data, DestroyNotify? destroy);
+               public void* steal_data (string key);
+               public void* get_qdata (Quark quark);
+               public void set_qdata (Quark quark, void* data);
+               public void set_qdata_full (Quark quark, void* data, DestroyNotify? destroy);
+               public void* steal_qdata (Quark quark);
+               public void freeze_notify ();
+               public void thaw_notify ();
+               public virtual void dispose ();
+               public virtual void finalize ();
+               public virtual void constructed ();
+
+               public signal void notify (ParamSpec pspec);
+
+               public weak Object connect (string signal_spec, ...);
+
+               public void add_toggle_ref (ToggleNotify notify);
+               public void remove_toggle_ref (ToggleNotify notify);
+       }
+
+       [CCode (instance_pos = 0)]
+       public delegate void ToggleNotify (GLib.Object object, bool is_last_ref);
+
+       public struct Parameter {
+               public string name;
+               public Value value;
+       }
+
+       public class InitiallyUnowned : Object {
+       }
+
+       [CCode (lower_case_csuffix = "enum")]
+       public class EnumClass : TypeClass {
+               public weak EnumValue? get_value (int value);
+               public weak EnumValue? get_value_by_name (string name);
+               public weak EnumValue? get_value_by_nick (string name);
+       }
+
+       [Compact]
+       public class EnumValue {
+               public int value;
+               public weak string value_name;
+               public weak string value_nick;
+       }
+
+       [CCode (lower_case_csuffix = "flags")]
+       public class FlagsClass : TypeClass {
+               public weak FlagsValue? get_first_value ();
+               public weak FlagsValue? get_value_by_name (string name);
+               public weak FlagsValue? get_value_by_nick (string name);
+       }
+
+       [Compact]
+       public class FlagsValue {
+               public int value;
+               public weak string value_name;
+               public weak string value_nick;
+       }
+
+       [Compact]
+       [CCode (cname = "gpointer", has_type_id = true, type_id = "G_TYPE_BOXED", marshaller_type_name = "BOXED", get_value_function = "g_value_get_boxed", set_value_function = "g_value_set_boxed")]
+       public abstract class Boxed {
+       }
+
+       public static delegate void ValueTransform (Value src_value, out Value dest_value);
+
+       [CCode (type_id = "G_TYPE_VALUE")]
+       public struct Value {
+               [CCode (cname = "G_VALUE_HOLDS")]
+               public bool holds (Type type);
+               [CCode (cname = "G_VALUE_TYPE")]
+               public Type type ();
+               [CCode (cname = "G_VALUE_TYPE_NAME")]
+               public weak string type_name ();
+
+               public Value (Type g_type);
+               public void copy (ref Value dest_value);
+               public weak Value? reset ();
+               public void init (Type g_type);
+               public void unset ();
+               public void set_instance (void* instance);
+               public bool fits_pointer ();
+               public void* peek_pointer ();
+               public static bool type_compatible (Type src_type, Type dest_type);
+               public static bool type_transformable (Type src_type, Type dest_type);
+               public bool transform (ref Value dest_value);
+               [CCode (cname = "g_strdup_value_contents")]
+               public string strdup_contents ();
+               public static void register_transform_func (Type src_type, Type dest_type, ValueTransform transform);
+               public void set_boolean (bool v_boolean);
+               public bool get_boolean ();
+               public void set_char (char v_char);
+               public char get_char ();
+               public void set_uchar (uchar v_uchar);
+               public uchar get_uchar ();
+               public void set_int (int v_int);
+               public int get_int ();
+               public void set_uint (uint v_uint);
+               public uint get_uint ();
+               public void set_long (long v_long);
+               public long get_long ();
+               public void set_ulong (ulong v_ulong);
+               public ulong get_ulong ();
+               public void set_int64 (int64 v_int64);
+               public int64 get_int64 ();
+               public void set_uint64 (uint64 v_uint64);
+               public uint64 get_uint64 ();
+               public void set_float (float v_float);
+               public float get_float ();
+               public void set_double (double v_double);
+               public double get_double ();
+               public void set_enum (int v_enum);
+               public int get_enum ();
+               public void set_flags (uint v_flags);
+               public uint get_flags ();
+               public void set_string (string v_string);
+               public void set_static_string (string v_string);
+               public void take_string (string# v_string);
+               public weak string get_string ();
+               public string dup_string ();
+               public void set_pointer (void* v_pointer);
+               public void* get_pointer ();
+               public void set_boxed (Boxed v_boxed);
+               public void take_boxed (Boxed# v_boxed);
+               public weak Boxed get_boxed ();
+               public Boxed dup_boxed ();
+               public void set_object (Object v_object);
+               public void take_object (Object# v_object);
+               public weak Object get_object ();
+               public Object dup_object ();
+               public void set_gtype (Type v_gtype);
+               public Type get_gtype ();
+       }
+       
+       public struct SignalInvocationHint {
+               public uint signal_id;
+               public Quark detail;
+               public SignalFlags run_type;
+       }
+
+       public delegate bool SignalEmissionHook (SignalInvocationHint ihint, [CCode (array_length_pos = 1.9)] Value[] param_values);
+
+       [CCode (cprefix = "G_SIGNAL_", has_type_id = false)]
+       public enum SignalFlags {
+               RUN_FIRST,
+               RUN_LAST,
+               RUN_CLEANUP,
+               DETAILED,
+               ACTION,
+               NO_HOOKS
+       }
+
+       [CCode (cprefix = "G_CONNECT_", has_type_id = false)]
+       public enum ConnectFlags {
+               AFTER,
+               SWAPPED
+       }
+
+       public static delegate void Callback ();
+
+       [Compact]
+       public class Closure : Boxed {
+       }
+
+       public static delegate void ClosureNotify (void* data, Closure closure);
+
+       [CCode (type_id = "G_TYPE_VALUE_ARRAY")]
+       public struct ValueArray {
+       }
+
+       namespace Signal {
+               public static void query (uint signal_id, out SignalQuery query);
+               public static uint lookup (string name, Type itype);
+               public static weak string name (uint signal_id);
+               public static uint[] list_ids (Type itype);
+               public static void emit (void* instance, uint signal_id, Quark detail, ...);
+               public static void emit_by_name (void* instance, string detailed_signal, ...);
+               public static ulong connect (void* instance, string detailed_signal, Callback handler, void* data);
+               public static ulong connect_after (void* instance, string detailed_signal, Callback handler, void* data);
+               public static ulong connect_swapped (void* instance, string detailed_signal, Callback handler, void* data);
+               public static ulong connect_object (void* instance, string detailed_signal, Callback handler, Object gobject, ConnectFlags flags);
+               public static ulong connect_data (void* instance, string detailed_signal, Callback handler, void* data, ClosureNotify destroy_data, ConnectFlags flags);
+               public static ulong connect_closure (void* instance, string detailed_signal, Closure closure, bool after);
+               public static ulong connect_closure_by_id (void* instance, uint signal_id, Quark detail, Closure closure, bool after);
+               public static bool has_handler_pending (void* instance, uint signal_id, Quark detail, bool may_be_blocked);
+               public static void stop_emission (void* instance, uint signal_id, Quark detail);
+               public static void stop_emission_by_name (void* instance, string detailed_signal);
+               public static void override_class_closure (uint signal_id, Type instance_type, Closure class_closure);
+               [NoArrayLength]
+               public static void chain_from_overridden (Value[] instance_and_params, out Value return_value);
+               public static ulong add_emission_hook (uint signal_id, Quark detail, SignalEmissionHook hook_func, DestroyNotify? data_destroy);
+               public static void remove_emission_hook (uint signal_id, ulong hook_id);
+               public static bool parse_name (string detailed_signal, Type itype, out uint signal_id, out Quark detail, bool force_detail_quark);
+       }
+
+       namespace SignalHandler {
+               public static void block (void* instance, ulong handler_id);
+               public static void unblock (void* instance, ulong handler_id);
+               public static void disconnect (void* instance, ulong handler_id);
+               public static ulong find (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
+               public static bool is_connected (void* instance, ulong handler_id);
+
+               [CCode (cname = "g_signal_handlers_block_matched")]
+               public static uint block_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
+               [CCode (cname = "g_signal_handlers_unblock_matched")]
+               public static uint unblock_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
+               [CCode (cname = "g_signal_handlers_disconnect_matched")]
+               public static uint disconnect_matched (void* instance, SignalMatchType mask, uint signal_id, Quark detail, Closure? closure, void* func, void* data);
+               [CCode (cname = "g_signal_handlers_block_by_func")]
+               public static uint block_by_func (void* instance, void* func, void* data);
+               [CCode (cname = "g_signal_handlers_unblock_by_func")]
+               public static uint unblock_by_func (void* instance, void* func, void* data);
+               [CCode (cname = "g_signal_handlers_disconnect_by_func")]
+               public static uint disconnect_by_func (void* instance, void* func, void* data);
+       }
+
+       public struct SignalQuery {
+               public uint signal_id;
+               public weak string signal_name;
+               public Type itype;
+               public SignalFlags signal_flags;
+               public Type return_type;
+               public uint n_params;
+               [NoArrayLength]
+               public weak Type[] param_types;
+       }
+
+       [CCode (cprefix = "G_SIGNAL_MATCH_", has_type_id = false)]
+       public enum SignalMatchType {
+               ID,
+               DETAIL,
+               CLOSURE,
+               FUNC,
+               DATA,
+               UNBLOCKED
+       }
+}
index dded1d140e2369a44641957bf2066da42d85d178..fce66550785c5a5f80168f4012bd21d6587448ea 100644 (file)
@@ -99,7 +99,10 @@ class Vala.VAPIGen : Object {
                if (!add_package ("glib-2.0")) {
                        Report.error (null, "glib-2.0 not found in specified Vala API directories");
                }
-               
+               if (!add_package ("gobject-2.0")) {
+                       Report.error (null, "gobject-2.0 not found in specified Vala API directories");
+               }
+
                /* load packages from .deps file */
                foreach (string source in sources) {
                        if (!source.has_suffix (".gi")) {