summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 14:50:41 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 14:50:41 +0200
commit292d83be7145e80b1c4d3ec1baba263a7913bd82 (patch)
tree67e9f8cda0aacb0091e924722e25583041a6f9c6
parent7e75df29383e0284648d25532bf4e90eb2879674 (diff)
Add properties to Everything.TestObj for testing more types
-rw-r--r--gir/Everything-1.0-expected.gir24
-rw-r--r--gir/everything.c90
-rw-r--r--gir/everything.h4
3 files changed, 118 insertions, 0 deletions
diff --git a/gir/Everything-1.0-expected.gir b/gir/Everything-1.0-expected.gir
index aa7de3b..91550a9 100644
--- a/gir/Everything-1.0-expected.gir
+++ b/gir/Everything-1.0-expected.gir
@@ -472,17 +472,29 @@ case.</doc>
<property name="boxed" writable="1" transfer-ownership="none">
<type name="TestBoxed" c:type="TestBoxed"/>
</property>
+ <property name="double" writable="1" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </property>
+ <property name="float" writable="1" transfer-ownership="none">
+ <type name="float" c:type="gfloat"/>
+ </property>
<property name="hash-table" writable="1" transfer-ownership="container">
<type name="GLib.HashTable" c:type="GHashTable">
<type name="utf8"/>
<type name="int8"/>
</type>
</property>
+ <property name="int" writable="1" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </property>
<property name="list" writable="1" transfer-ownership="none">
<type name="GLib.List" c:type="gpointer">
<type name="utf8"/>
</type>
</property>
+ <property name="string" writable="1" transfer-ownership="none">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
<field name="parent_instance">
<type name="GObject.Object" c:type="GObject"/>
</field>
@@ -500,6 +512,18 @@ case.</doc>
<type name="any" c:type="gpointer"/>
</type>
</field>
+ <field name="some_int8">
+ <type name="int8" c:type="gint8"/>
+ </field>
+ <field name="some_float">
+ <type name="float" c:type="float"/>
+ </field>
+ <field name="some_double">
+ <type name="double" c:type="double"/>
+ </field>
+ <field name="string">
+ <type name="utf8" c:type="char*"/>
+ </field>
<glib:signal name="test">
<return-value transfer-ownership="full">
<type name="none" c:type="void"/>
diff --git a/gir/everything.c b/gir/everything.c
index 5af755a..6aa6635 100644
--- a/gir/everything.c
+++ b/gir/everything.c
@@ -1530,6 +1530,10 @@ enum
PROP_TEST_OBJ_BOXED,
PROP_TEST_OBJ_HASH_TABLE,
PROP_TEST_OBJ_LIST,
+ PROP_TEST_OBJ_INT,
+ PROP_TEST_OBJ_FLOAT,
+ PROP_TEST_OBJ_DOUBLE,
+ PROP_TEST_OBJ_STRING,
};
static void
@@ -1571,6 +1575,22 @@ test_obj_set_property (GObject *object,
self->list = g_list_append (self->list, g_strdup (list->data));
break;
+ case PROP_TEST_OBJ_INT:
+ self->some_int8 = g_value_get_int (value);
+ break;
+
+ case PROP_TEST_OBJ_FLOAT:
+ self->some_float = g_value_get_float (value);
+ break;
+
+ case PROP_TEST_OBJ_DOUBLE:
+ self->some_double = g_value_get_double (value);
+ break;
+
+ case PROP_TEST_OBJ_STRING:
+ self->string = g_value_dup_string (value);
+ break;
+
default:
/* We don't have any other property... */
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -1605,6 +1625,22 @@ test_obj_get_property (GObject *object,
case PROP_TEST_OBJ_LIST:
g_value_set_pointer (value, self->list);
break;
+
+ case PROP_TEST_OBJ_INT:
+ g_value_set_int (value, self->some_int8);
+ break;
+
+ case PROP_TEST_OBJ_FLOAT:
+ g_value_set_float (value, self->some_float);
+ break;
+
+ case PROP_TEST_OBJ_DOUBLE:
+ g_value_set_double (value, self->some_double);
+ break;
+
+ case PROP_TEST_OBJ_STRING:
+ g_value_set_string (value, self->string);
+ break;
default:
/* We don't have any other property... */
@@ -1723,6 +1759,60 @@ test_obj_class_init (TestObjClass *klass)
g_object_class_install_property (gobject_class,
PROP_TEST_OBJ_LIST,
pspec);
+
+ /**
+ * TestObj:int:
+ */
+ pspec = g_param_spec_int ("int",
+ "int property",
+ "A contained int",
+ G_MININT,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class,
+ PROP_TEST_OBJ_INT,
+ pspec);
+
+ /**
+ * TestObj:float:
+ */
+ pspec = g_param_spec_float ("float",
+ "float property",
+ "A contained float",
+ G_MINFLOAT,
+ G_MAXFLOAT,
+ 1.0f,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class,
+ PROP_TEST_OBJ_FLOAT,
+ pspec);
+
+ /**
+ * TestObj:double:
+ */
+ pspec = g_param_spec_double ("double",
+ "double property",
+ "A contained double",
+ G_MINDOUBLE,
+ G_MAXDOUBLE,
+ 1.0f,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class,
+ PROP_TEST_OBJ_DOUBLE,
+ pspec);
+
+ /**
+ * TestObj:string:
+ */
+ pspec = g_param_spec_string ("string",
+ "string property",
+ "A contained string",
+ NULL,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class,
+ PROP_TEST_OBJ_STRING,
+ pspec);
klass->matrix = test_obj_default_matrix;
}
diff --git a/gir/everything.h b/gir/everything.h
index 55b26cd..97b2c2e 100644
--- a/gir/everything.h
+++ b/gir/everything.h
@@ -270,6 +270,10 @@ struct _TestObj
TestBoxed *boxed;
GHashTable *hash_table;
GList *list;
+ gint8 some_int8;
+ float some_float;
+ double some_double;
+ char* string;
};
struct _TestObjClass