From: Jürg Billeter Date: Wed, 22 Oct 2008 18:32:59 +0000 (+0000) Subject: Move gobject-2.0 bindings to separate VAPI file X-Git-Tag: VALA_0_5_1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af9be801f0c7ca3467edeab4ebb496820e948686;p=thirdparty%2Fvala.git Move gobject-2.0 bindings to separate VAPI file 2008-10-22 Jürg Billeter * 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 --- diff --git a/ChangeLog b/ChangeLog index 9f361c512..f7323e1cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2008-10-22 Jürg Billeter + + * 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 * ChangeLog.pre-0-4: diff --git a/ccode/Makefile.am b/ccode/Makefile.am index d335e029d..77801da8f 100644 --- a/ccode/Makefile.am +++ b/ccode/Makefile.am @@ -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 = \ diff --git a/compiler/Makefile.am b/compiler/Makefile.am index 94c8c5f81..7533ff675 100644 --- a/compiler/Makefile.am +++ b/compiler/Makefile.am @@ -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 = \ diff --git a/compiler/valacompiler.vala b/compiler/valacompiler.vala index 0babf2e8e..80c40cd54 100644 --- a/compiler/valacompiler.vala +++ b/compiler/valacompiler.vala @@ -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)) { diff --git a/gee/Makefile.am b/gee/Makefile.am index 63a8654d3..40a363d69 100644 --- a/gee/Makefile.am +++ b/gee/Makefile.am @@ -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 = \ diff --git a/gobject/Makefile.am b/gobject/Makefile.am index 392cda307..1d116c0ba 100644 --- a/gobject/Makefile.am +++ b/gobject/Makefile.am @@ -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 diff --git a/vala/Makefile.am b/vala/Makefile.am index 0215a8c85..ef4657ed2 100644 --- a/vala/Makefile.am +++ b/vala/Makefile.am @@ -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 = \ diff --git a/vapi/Makefile.am b/vapi/Makefile.am index 2035617e0..b4e66b9d9 100644 --- a/vapi/Makefile.am +++ b/vapi/Makefile.am @@ -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 \ diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 563bbcb60..30456db5e 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -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 index 000000000..69c2bec26 --- /dev/null +++ b/vapi/gobject-2.0.vapi @@ -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 + * Raffaele Sandrini + * Mathias Hasselmann + */ + +[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 + } +} diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index dded1d140..fce665507 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -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")) {