summaryrefslogtreecommitdiff
path: root/gtk/gtkobject.c
diff options
context:
space:
mode:
authorTim Janik <timj@src.gnome.org>1998-02-21 13:33:20 +0000
committerTim Janik <timj@src.gnome.org>1998-02-21 13:33:20 +0000
commita8d6f14c2db9e4166d8b10d2974e7ad457553310 (patch)
tree5c08e6063d12dd09dbfc12ff40fdb2b27887b6c3 /gtk/gtkobject.c
parentf97dd05d5a72f8a01281875582a7a74e19548fff (diff)
downloadgtk+-a8d6f14c2db9e4166d8b10d2974e7ad457553310.tar.gz
added the sequential argument number to gtk_object_query_args.
-timj
Diffstat (limited to 'gtk/gtkobject.c')
-rw-r--r--gtk/gtkobject.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/gtk/gtkobject.c b/gtk/gtkobject.c
index ec7ef58560..1a45c79043 100644
--- a/gtk/gtkobject.c
+++ b/gtk/gtkobject.c
@@ -54,7 +54,7 @@ struct _GtkArgInfo
char *name;
GtkType type;
GtkType class_type;
- guint access_mask;
+ guint arg_flags;
guint arg_id;
guint seq_id;
};
@@ -663,7 +663,7 @@ gtk_object_getv (GtkObject *object,
g_free (lookup_name);
continue;
}
- else if (!info->access_mask & GTK_ARG_READABLE)
+ else if (!info->arg_flags & GTK_ARG_READABLE)
{
g_warning ("arg is not supplied for read-access: \"%s\"\n", lookup_name);
args[i].type = GTK_TYPE_INVALID;
@@ -710,14 +710,17 @@ gtk_query_arg_foreach (gpointer key,
GtkArg*
gtk_object_query_args (GtkType class_type,
- guint **access_masks,
+ guint32 **arg_flags,
+ guint **seq_ids,
guint *nargs)
{
GtkArg *args;
GtkQueryArgData query_data;
- if (access_masks)
- *access_masks = NULL;
+ if (arg_flags)
+ *arg_flags = NULL;
+ if (seq_ids)
+ *seq_ids = NULL;
g_return_val_if_fail (nargs != NULL, NULL);
*nargs = 0;
g_return_val_if_fail (gtk_type_is_a (class_type, gtk_object_get_type ()), NULL);
@@ -750,8 +753,10 @@ gtk_object_query_args (GtkType class_type,
args = g_new0 (GtkArg, len);
*nargs = len;
- if (access_masks)
- *access_masks = g_new (guint, len);
+ if (arg_flags)
+ *arg_flags = g_new (guint32, len);
+ if (seq_ids)
+ *seq_ids = g_new (guint, len);
do
{
@@ -764,8 +769,10 @@ gtk_object_query_args (GtkType class_type,
args[info->seq_id - 1].type = info->type;
args[info->seq_id - 1].name = info->name;
- if (access_masks)
- (*access_masks)[info->seq_id - 1] = info->access_mask;
+ if (arg_flags)
+ (*arg_flags)[info->seq_id - 1] = info->arg_flags;
+ if (seq_ids)
+ (*seq_ids)[info->seq_id - 1] = info->seq_id;
}
while (list);
@@ -864,7 +871,7 @@ gtk_object_setv (GtkObject *object,
g_warning ("invalid arg for %s: \"%s\"\n", gtk_type_name (object->klass->type), lookup_name);
arg_ok = FALSE;
}
- else if (!info->access_mask & GTK_ARG_WRITABLE)
+ else if (!info->arg_flags & GTK_ARG_WRITABLE)
{
g_warning ("arg is not supplied for write-access: \"%s\"\n", lookup_name);
arg_ok = FALSE;
@@ -890,7 +897,7 @@ gtk_object_setv (GtkObject *object,
void
gtk_object_add_arg_type (const char *arg_name,
GtkType arg_type,
- guint access_mask,
+ guint arg_flags,
guint arg_id)
{
GtkArgInfo *info;
@@ -901,7 +908,7 @@ gtk_object_add_arg_type (const char *arg_name,
g_return_if_fail (arg_name != NULL);
g_return_if_fail (arg_type > GTK_TYPE_NONE);
g_return_if_fail (arg_id > 0);
- g_return_if_fail ((access_mask & GTK_ARG_READWRITE) != 0);
+ g_return_if_fail ((arg_flags & GTK_ARG_READWRITE) != 0);
arg_part = strchr (arg_name, ':');
if (!arg_part || (arg_part[0] != ':') || (arg_part[1] != ':'))
@@ -924,7 +931,7 @@ gtk_object_add_arg_type (const char *arg_name,
info->name = g_strdup (arg_name);
info->type = arg_type;
info->class_type = class_type;
- info->access_mask = access_mask & (GTK_ARG_READABLE | GTK_ARG_WRITABLE);
+ info->arg_flags = arg_flags & (GTK_ARG_READABLE | GTK_ARG_WRITABLE);
info->arg_id = arg_id;
info->seq_id = ++((GtkObjectClass*) gtk_type_class (class_type))->n_args;