implement marshalling support support signals with interface parameters
authorJürg Billeter <j@bitron.ch>
Wed, 21 Mar 2007 09:54:31 +0000 (09:54 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 21 Mar 2007 09:54:31 +0000 (09:54 +0000)
2007-03-21  Jürg Billeter  <j@bitron.ch>

* vala/valainterface.vala: implement marshalling support
* vala/valacodegenerator.vala: support signals with interface parameters

svn path=/trunk/; revision=250

vala/ChangeLog
vala/vala/valacodegenerator.vala
vala/vala/valainterface.vala

index dc7cd7d..3bb9dea 100644 (file)
@@ -1,3 +1,8 @@
+2007-03-21  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valainterface.vala: implement marshalling support
+       * vala/valacodegenerator.vala: support signals with interface parameters
+
 2007-03-20  Raffaele Sandrini  <rasa@gmx.ch>
 
        * vapi/glib-2.0.vala: add extended runtime type support
index e569abd..3262f84 100644 (file)
@@ -1704,7 +1704,7 @@ public class Vala.CodeGenerator : CodeVisitor {
                        return "gpointer";
                } else if (t.data_type == null) {
                        return "void";
-               } else if (t.data_type is Class) {
+               } else if (t.data_type is Class || t.data_type is Interface) {
                        return "GObject *";
                } else if (t.data_type is Struct) {
                        if (((Struct) t.data_type).is_reference_type ()) {
index e380d31..c496d5d 100644 (file)
@@ -270,6 +270,18 @@ public class Vala.Interface : DataType {
                this.type_cname = type_cname;
        }
 
+       public override string get_marshaller_type_name () {
+               return "OBJECT";
+       }
+
+       public override string get_get_value_function () {
+               return "g_value_get_object";
+       }
+       
+       public override string get_set_value_function () {
+               return "g_value_set_object";
+       }
+
        public override string get_type_id () {
                if (type_id == null) {
                        type_id = get_upper_case_cname ("TYPE_");