summaryrefslogtreecommitdiff
path: root/gobject/gparamspecs.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-10-21 19:12:27 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-10-21 19:12:27 +0000
commit6f5794fad084ffa1179509c1e6ca9401884596e3 (patch)
tree82487af86773447846f0a10275acc04a6c1e4e21 /gobject/gparamspecs.h
parent4a29291187c5d1b267ab87378a4f89abf4f013e0 (diff)
downloadglib-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.h12
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