summaryrefslogtreecommitdiff
path: root/tests/scanner/foo.c
diff options
context:
space:
mode:
authorColin Walters <walters@src.gnome.org>2008-10-20 20:54:30 +0000
committerColin Walters <walters@src.gnome.org>2008-10-20 20:54:30 +0000
commitc77af9b68dad4509d3e7a14daeb01bae959ec01f (patch)
tree19a77a6679d166a0367a1bf1701005c89336d978 /tests/scanner/foo.c
parentaef8ad8caf199f812b82868a490898419821d62e (diff)
downloadgobject-introspection-c77af9b68dad4509d3e7a14daeb01bae959ec01f.tar.gz
Tests for bug 556777
svn path=/trunk/; revision=764
Diffstat (limited to 'tests/scanner/foo.c')
-rw-r--r--tests/scanner/foo.c48
1 files changed, 47 insertions, 1 deletions
diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index 7ab4cf1a..b60988b0 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -2,6 +2,40 @@
#include "foo.h"
+/* A hidden type not exposed publicly, similar to GUPNP's XML wrapper
+ object */
+typedef struct _FooHidden FooHidden;
+
+struct _FooHidden
+{
+ char *frob;
+};
+
+FooHidden *
+foo_hidden_copy (const FooHidden *boxed)
+{
+ return (FooHidden *)g_memdup (boxed, sizeof (FooHidden));
+}
+
+void
+foo_hidden_free (FooHidden *boxed)
+{
+ g_slice_free (FooHidden, boxed);
+}
+
+
+GType
+foo_hidden_get_type (void)
+{
+ static GType our_type = 0;
+
+ if (our_type == 0)
+ our_type = g_boxed_type_register_static ("FooHidden",
+ (GBoxedCopyFunc) foo_hidden_copy,
+ (GBoxedFreeFunc) foo_hidden_free);
+ return our_type;
+}
+
static void foo_do_foo (FooInterface *self);
typedef struct
@@ -39,7 +73,8 @@ void foo_interface_do_foo (FooInterface *self)
enum {
PROP_0,
- PROP_STRING
+ PROP_STRING,
+ PROP_HIDDEN
};
enum {
@@ -73,6 +108,8 @@ foo_object_set_property (GObject *object,
{
case PROP_STRING:
break;
+ case PROP_HIDDEN:
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -91,6 +128,8 @@ foo_object_get_property (GObject *object,
{
case PROP_STRING:
break;
+ case PROP_HIDDEN:
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -114,6 +153,13 @@ foo_object_class_init (FooObjectClass *klass)
"The String Property Blurb",
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (gobject_class,
+ PROP_HIDDEN,
+ g_param_spec_boxed ("hidden",
+ "hidden property",
+ "should not be exposed",
+ foo_hidden_get_type (),
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
foo_object_signals[SIGNAL] =
g_signal_new ("signal",
G_OBJECT_CLASS_TYPE (gobject_class),