+2008-10-24 Jürg Billeter <j@bitron.ch>
+
+ * gobject/Makefile.am:
+ * gobject/valaccodeclassbinding.vala:
+ * gobject/valaccodegenerator.vala:
+ * gobject/valaccodeinterfacebinding.vala:
+ * gobject/valaccodemodule.vala:
+ * gobject/valaccodeobjecttypesymbolbinding.vala:
+ * gobject/valagobjectmodule.vala:
+
+ Add GObjectModule
+
2008-10-24 Jürg Billeter <j@bitron.ch>
* vala/valacodegenerator.vala:
valaccodemethodmodule.vala \
valaccodemodule.vala \
valaccodeobjecttypesymbolbinding.vala \
- valaccodetypesymbolbinding.vala \
valaclassregisterfunction.vala \
valadbusmodule.vala \
valagirwriter.vala \
+ valagobjectmodule.vala \
valainterfaceregisterfunction.vala \
valatyperegisterfunction.vala \
$(NULL)
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_class_install_property"));
cinst.add_argument (ccall);
cinst.add_argument (new CCodeConstant (prop.get_upper_case_cname ()));
- cinst.add_argument (get_param_spec (prop));
+ cinst.add_argument (head.get_param_spec (prop));
init_block.add_statement (new CCodeExpressionStatement (cinst));
}
/* create signals */
foreach (Signal sig in cl.get_signals ()) {
- init_block.add_statement (new CCodeExpressionStatement (get_signal_creation (sig, cl)));
+ init_block.add_statement (new CCodeExpressionStatement (head.get_signal_creation (sig, cl)));
}
} else if (!cl.is_compact) {
/* create type, dup_func, and destroy_func fields for generic types */
public CCodeGenerator () {
head = new CCodeBaseModule (this, head);
head = new CCodeMethodModule (this, head);
+ head = new GObjectModule (this, head);
head = new DBusModule (this, head);
predefined_marshal_set = new HashSet<string> (str_hash, str_equal);
if (prop.is_abstract) {
var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_interface_install_property"));
cinst.add_argument (new CCodeIdentifier ("iface"));
- cinst.add_argument (get_param_spec (prop));
+ cinst.add_argument (head.get_param_spec (prop));
init_block.add_statement (new CCodeExpressionStatement (cinst));
}
/* create signals */
foreach (Signal sig in iface.get_signals ()) {
- init_block.add_statement (new CCodeExpressionStatement (get_signal_creation (sig, iface)));
+ init_block.add_statement (new CCodeExpressionStatement (head.get_signal_creation (sig, iface)));
}
// connect default implementations
public virtual CCodeExpression get_construct_property_assignment (CCodeConstant canonical_cconstant, DataType property_type, CCodeExpression value) {
return next.get_construct_property_assignment (canonical_cconstant, property_type, value);
}
+
+ public virtual CCodeFunctionCall get_param_spec (Property prop) {
+ return next.get_param_spec (prop);
+ }
+
+ public virtual CCodeFunctionCall get_signal_creation (Signal sig, TypeSymbol type) {
+ return next.get_signal_creation (sig, type);
+ }
}
using GLib;
-public abstract class Vala.CCodeObjectTypeSymbolBinding : Vala.CCodeTypeSymbolBinding {
+public abstract class Vala.CCodeObjectTypeSymbolBinding : Vala.CCodeBinding {
bool is_dbus_visible (CodeNode node) {
var dbus_attribute = node.get_attribute ("DBus");
-/* valaccodetypesymbolbinding.vala
+/* valagobjectmodule.vala
*
* Copyright (C) 2008 Jürg Billeter
*
using GLib;
-public abstract class Vala.CCodeTypeSymbolBinding : CCodeBinding {
- public CCodeFunctionCall get_param_spec (Property prop) {
+public class Vala.GObjectModule : CCodeModule {
+ public GObjectModule (CCodeGenerator codegen, CCodeModule? next) {
+ base (codegen, next);
+ }
+
+ public override CCodeFunctionCall get_param_spec (Property prop) {
var cspec = new CCodeFunctionCall ();
cspec.add_argument (prop.get_canonical_cconstant ());
cspec.add_argument (new CCodeConstant ("\"%s\"".printf (prop.nick)));
return cspec;
}
- public CCodeFunctionCall get_signal_creation (Signal sig, TypeSymbol type) {
+ public override CCodeFunctionCall get_signal_creation (Signal sig, TypeSymbol type) {
var csignew = new CCodeFunctionCall (new CCodeIdentifier ("g_signal_new"));
csignew.add_argument (new CCodeConstant ("\"%s\"".printf (sig.get_cname ())));
csignew.add_argument (new CCodeIdentifier (type.get_type_id ()));