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

@@ -142,8 +142,14 @@ g_object_notify_queue_add (GObject *object,
{
if (pspec->flags & G_PARAM_READABLE)
{
GParamSpec *redirect;
g_return_if_fail (nqueue->n_pspecs < 65535);
redirect = g_param_spec_get_redirect_target (pspec);
if (redirect)
pspec = redirect;
/* we do the deduping in _thaw */
nqueue->pspecs = g_slist_prepend (nqueue->pspecs, pspec);
nqueue->n_pspecs++;