Glib - Object Properties



Hello,
 
I am new to Glib and have been working through constructing an object. I have an object working, but am having issues with the properties. I have the properties working (kind of), but some things don't make sense to me and was hoping someone could explain.
 
I have searched the web and mailing list archives, but can only find data circa 2004 or less and am not really sure if it still pertains today.
 
Currently, I can get/set properties no problem. The issues I am having pertain to how to trap errors during object construction for CONSTRUCT_ONLY properties. If I have a property with flags set to:
 
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE
 
then I supposedly can only set the property while calling g_object_new(). This is only kind of true. If I attempt to set the property after g_object_new() is called, Glib simply emits a warning, but still allows the property to be set. Actually, this is only true if I call g_object_set_property() within my xxx_set_property() function. The problem is g_object_set_property() returns void so I have no way to catch errors (i.e. property set outside of a constructor).
 
How can CONSTRUCT_ONLY actually be enforced and not emit warnings to stdout/stderr? From what I can tell, I can't even write my own code to do this since I have no access to the static global 'pspec_pool' and the GParamSpec passed to my xxx_set_property() function after construct is NULL (incidentally it seems to always be NULL after the object is constructed even without CONSTRUCT_ONLY set in flags).
 
Thanks for any insight as to why this all works like this and any advice on enforcing policies.
 
 
 
Shay
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]