diff options
author | Owen Taylor <otaylor@redhat.com> | 2003-10-21 19:12:27 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2003-10-21 19:12:27 +0000 |
commit | 6f5794fad084ffa1179509c1e6ca9401884596e3 (patch) | |
tree | 82487af86773447846f0a10275acc04a6c1e4e21 /gobject/gparamspecs.h | |
parent | 4a29291187c5d1b267ab87378a4f89abf4f013e0 (diff) | |
download | glib-6f5794fad084ffa1179509c1e6ca9401884596e3.tar.gz |
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)
Diffstat (limited to 'gobject/gparamspecs.h')
-rw-r--r-- | gobject/gparamspecs.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gobject/gparamspecs.h b/gobject/gparamspecs.h index 6d354b738..137e1d0bb 100644 --- a/gobject/gparamspecs.h +++ b/gobject/gparamspecs.h @@ -93,6 +93,9 @@ G_BEGIN_DECLS #define G_TYPE_PARAM_OBJECT (g_param_spec_types[19]) #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT)) #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject)) +#define G_TYPE_PARAM_OVERRIDE (g_param_spec_types[20]) +#define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE)) +#define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride)) /* --- typedefs & structures --- */ @@ -116,6 +119,7 @@ typedef struct _GParamSpecBoxed GParamSpecBoxed; typedef struct _GParamSpecPointer GParamSpecPointer; typedef struct _GParamSpecValueArray GParamSpecValueArray; typedef struct _GParamSpecObject GParamSpecObject; +typedef struct _GParamSpecOverride GParamSpecOverride; struct _GParamSpecChar { @@ -258,6 +262,12 @@ struct _GParamSpecObject { GParamSpec parent_instance; }; +struct _GParamSpecOverride +{ + /*< private >*/ + GParamSpec parent_instance; + GParamSpec *overridden; +}; /* --- GParamSpec prototypes --- */ GParamSpec* g_param_spec_char (const gchar *name, @@ -382,6 +392,8 @@ GParamSpec* g_param_spec_object (const gchar *name, GType object_type, GParamFlags flags); +GParamSpec* g_param_spec_override (const gchar *name, + GParamSpec *overridden); /* --- internal --- */ /* We prefix variable declarations so they can |