]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Add GObjectModule
authorJürg Billeter <j@bitron.ch>
Fri, 24 Oct 2008 12:19:30 +0000 (12:19 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Fri, 24 Oct 2008 12:19:30 +0000 (12:19 +0000)
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

svn path=/trunk/; revision=1886

ChangeLog
gobject/Makefile.am
gobject/valaccodeclassbinding.vala
gobject/valaccodegenerator.vala
gobject/valaccodeinterfacebinding.vala
gobject/valaccodemodule.vala
gobject/valaccodeobjecttypesymbolbinding.vala
gobject/valagobjectmodule.vala [moved from gobject/valaccodetypesymbolbinding.vala with 97% similarity]

index 6fc406f9079ceb39d065ab6f7bb0f65d1ee9f69f..363cba847ee429107cb0c0bc997653fd0021902b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+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:
index e5b6e6e9ab22566ba39d1217a1da31fb0dc60096..613e2cc29836052a84c5bab4fd61d1396c05e566 100644 (file)
@@ -32,10 +32,10 @@ libvala_la_VALASOURCES = \
        valaccodemethodmodule.vala \
        valaccodemodule.vala \
        valaccodeobjecttypesymbolbinding.vala \
-       valaccodetypesymbolbinding.vala \
        valaclassregisterfunction.vala \
        valadbusmodule.vala \
        valagirwriter.vala \
+       valagobjectmodule.vala \
        valainterfaceregisterfunction.vala \
        valatyperegisterfunction.vala \
        $(NULL)
index 6535a4bcb1699ce896db4d7d80dc85538de7253f..be9b5dc628cf3fc773de79bfc50be3495cca8422 100644 (file)
@@ -868,7 +868,7 @@ public class Vala.CCodeClassBinding : CCodeObjectTypeSymbolBinding {
                                        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));
                                }
@@ -876,7 +876,7 @@ public class Vala.CCodeClassBinding : CCodeObjectTypeSymbolBinding {
                
                        /* 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 */
index 8a122093d8ce76e603fcc38dd55fcb64016bfdbd..c1c0145b7fad4181276c002b93b230788b9cf380 100644 (file)
@@ -143,6 +143,7 @@ public class Vala.CCodeGenerator : CodeGenerator {
        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);
index caf93e9ab6b14bf43c03094bbdf1d96b57185440..659947c80ff96b3ecc72d013b19c1a033de515da 100644 (file)
@@ -124,7 +124,7 @@ public class Vala.CCodeInterfaceBinding : CCodeObjectTypeSymbolBinding {
                                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));
                                }
@@ -133,7 +133,7 @@ public class Vala.CCodeInterfaceBinding : CCodeObjectTypeSymbolBinding {
 
                /* 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
index 8918adfddf7dceb8e6749c424fbae00485173d78..634235638bc3f20cd811868104c8088d791b46aa 100644 (file)
@@ -83,4 +83,12 @@ public abstract class Vala.CCodeModule {
        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);
+       }
 }
index e64f55848ff9eccc2fd67df339d30bda71e2fad1..3d8ad0daa9b5456c7ead22922e05aafbe71852ba 100644 (file)
@@ -22,7 +22,7 @@
 
 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");
similarity index 97%
rename from gobject/valaccodetypesymbolbinding.vala
rename to gobject/valagobjectmodule.vala
index 22cd12ae6c6ca808baf4fb35a53314d2685a97ca..9860c9ae17110dd5803d4dd2857d40906c449e18 100644 (file)
@@ -1,4 +1,4 @@
-/* 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)));
@@ -200,7 +204,7 @@ public abstract class Vala.CCodeTypeSymbolBinding : CCodeBinding {
                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 ()));