Add a new GParamSpecOverride type that is a pointer to a different

Tue Oct 14 17:40:19 2003  Owen Taylor  <otaylor@redhat.com>

        * gparamspecs.[ch]: Add a new GParamSpecOverride type
        that is a pointer to a different paramspec in a parent
        class or interface.

        * gparam.[ch]: Add g_paramspec_get_redirect_target()
        which follows GParamSpecOverride to the real property.
        Make g_param_spec_pool_list() hand redirections,
        properties on interfaces.

        * gobject.[ch] gobjectnotifyqueue.c: Add
        g_object_interface_install_property,
        g_object_interface_find_property,
        g_object_interface_list_properties(). Redirect virtually all
        publically exposed GParamSpec's to the redirect target if
        any. (->constructor is the exception.)
        (#105894)
This commit is contained in:
Owen Taylor
2003-10-21 19:12:27 +00:00
committed by Owen Taylor
parent 4a29291187
commit 6f5794fad0
8 changed files with 500 additions and 33 deletions

View File

@@ -73,7 +73,7 @@ struct _GParamSpec
gchar *name;
GParamFlags flags;
GType value_type;
GType owner_type; /* class using this property */
GType owner_type; /* class or interface using this property */
/*< private >*/
gchar *_nick;
@@ -122,6 +122,8 @@ void g_param_spec_set_qdata_full (GParamSpec *pspec,
GDestroyNotify destroy);
gpointer g_param_spec_steal_qdata (GParamSpec *pspec,
GQuark quark);
GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec);
void g_param_value_set_default (GParamSpec *pspec,
GValue *value);
gboolean g_param_value_defaults (GParamSpec *pspec,