vala r1003 - in trunk: . gobject



Author: juergbi
Date: Sat Feb  9 18:56:19 2008
New Revision: 1003
URL: http://svn.gnome.org/viewvc/vala?rev=1003&view=rev

Log:
2008-02-09  Juerg Billeter  <j bitron ch>

	* gobject/valaccodegenerator.vala,
	  gobject/valaccodegeneratorinterface.vala: support GType
	  properties, patch by Ali Sabil


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodegenerator.vala
   trunk/gobject/valaccodegeneratorinterface.vala

Modified: trunk/gobject/valaccodegenerator.vala
==============================================================================
--- trunk/gobject/valaccodegenerator.vala	(original)
+++ trunk/gobject/valaccodegenerator.vala	Sat Feb  9 18:56:19 2008
@@ -93,6 +93,7 @@
 	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 @@
 		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");

Modified: trunk/gobject/valaccodegeneratorinterface.vala
==============================================================================
--- trunk/gobject/valaccodegeneratorinterface.vala	(original)
+++ trunk/gobject/valaccodegeneratorinterface.vala	Sat Feb  9 18:56:19 2008
@@ -166,6 +166,13 @@
 			} 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");
 		}



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