From d46963e86ba4d16918b73442ab540750acfb8d11 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Mon, 16 Jun 2008 14:35:32 +0000 Subject: [PATCH] 2008-06-16 Mike Kestner * glib/glue/object.c: fixes for object, boxed, and gtype property paramspec creation. Patch provided by Christian Hoff. svn path=/trunk/gtk-sharp/; revision=105905 --- ChangeLog | 5 +++++ glib/glue/object.c | 17 +++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 227354cd9..4706429c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-06-16 Mike Kestner + + * glib/glue/object.c: fixes for object, boxed, and gtype + property paramspec creation. Patch provided by Christian Hoff. + 2008-06-09 Andrés G. Aragoneses * atk/Object.custom: diff --git a/glib/glue/object.c b/glib/glue/object.c index 484585fc0..bc0f377cd 100644 --- a/glib/glue/object.c +++ b/glib/glue/object.c @@ -132,15 +132,16 @@ gtksharp_register_property(GType declaring_type, const gchar *name, const gchar case G_TYPE_POINTER: param_spec = g_param_spec_pointer (name, nick, blurb, flags); break; - case G_TYPE_BOXED: - param_spec = g_param_spec_boxed (name, nick, blurb, return_type, flags); - break; - case G_TYPE_OBJECT: - param_spec = g_param_spec_object (name, nick, blurb, return_type, flags); - break; default: - // The property's return type is not supported - return NULL; + if(return_type == G_TYPE_GTYPE) + param_spec = g_param_spec_gtype (name, nick, blurb, G_TYPE_NONE, flags); + else if(g_type_is_a (return_type, G_TYPE_BOXED)) + param_spec = g_param_spec_boxed (name, nick, blurb, return_type, flags); + else if(g_type_is_a (return_type, G_TYPE_OBJECT)) + param_spec = g_param_spec_object (name, nick, blurb, return_type, flags); + else + // The property's return type is not supported + return NULL; } g_object_class_install_property (declaring_class, id, param_spec);