From: Juerg Billeter Date: Sat, 9 Feb 2008 18:56:19 +0000 (+0000) Subject: support GType properties, patch by Ali Sabil X-Git-Tag: VALA_0_1_7~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48872cbb6f6d25ffba022c729fc167a32af55dba;p=thirdparty%2Fvala.git support GType properties, patch by Ali Sabil 2008-02-09 Juerg Billeter * gobject/valaccodegenerator.vala, gobject/valaccodegeneratorinterface.vala: support GType properties, patch by Ali Sabil svn path=/trunk/; revision=1003 --- diff --git a/ChangeLog b/ChangeLog index 6f176970a..8c212ab29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-09 Jürg Billeter + + * gobject/valaccodegenerator.vala, + gobject/valaccodegeneratorinterface.vala: support GType + properties, patch by Ali Sabil + 2008-02-09 Jürg Billeter * vapi/glib-2.0.vapi: remove static modifier from GSourceFunc diff --git a/gobject/valaccodegenerator.vala b/gobject/valaccodegenerator.vala index 8b3e50074..cdd643a4b 100644 --- a/gobject/valaccodegenerator.vala +++ b/gobject/valaccodegenerator.vala @@ -93,6 +93,7 @@ public class Vala.CCodeGenerator : CodeGenerator { public DataType string_type; public DataType float_type; public DataType double_type; + public Typesymbol gtype_type; public Typesymbol gtypeinstance_type; public Typesymbol gobject_type; public Typesymbol gerror_type; @@ -216,7 +217,8 @@ public class Vala.CCodeGenerator : CodeGenerator { substring_method = (Method) string_type.data_type.scope.lookup ("substring"); var glib_ns = root_symbol.scope.lookup ("GLib"); - + + gtype_type = (Typesymbol) glib_ns.scope.lookup ("Type"); gtypeinstance_type = (Typesymbol) glib_ns.scope.lookup ("TypeInstance"); gobject_type = (Typesymbol) glib_ns.scope.lookup ("Object"); gerror_type = (Typesymbol) glib_ns.scope.lookup ("Error"); diff --git a/gobject/valaccodegeneratorinterface.vala b/gobject/valaccodegeneratorinterface.vala index c8d2103ff..ec6027e50 100644 --- a/gobject/valaccodegeneratorinterface.vala +++ b/gobject/valaccodegeneratorinterface.vala @@ -166,6 +166,13 @@ public class Vala.CCodeGenerator { } else { cspec.add_argument (new CCodeConstant ("0.0")); } + } else if (prop.type_reference.data_type == gtype_type) { + cspec.call = new CCodeIdentifier ("g_param_spec_gtype"); + if (prop.default_expression != null) { + cspec.add_argument ((CCodeExpression) prop.default_expression.ccodenode); + } else { + cspec.add_argument (new CCodeConstant ("G_TYPE_NONE")); + } } else { cspec.call = new CCodeIdentifier ("g_param_spec_pointer"); }