added the sequential argument number to gtk_object_query_args.
-timj
This commit is contained in:
@ -54,7 +54,7 @@ struct _GtkArgInfo
|
|||||||
char *name;
|
char *name;
|
||||||
GtkType type;
|
GtkType type;
|
||||||
GtkType class_type;
|
GtkType class_type;
|
||||||
guint access_mask;
|
guint arg_flags;
|
||||||
guint arg_id;
|
guint arg_id;
|
||||||
guint seq_id;
|
guint seq_id;
|
||||||
};
|
};
|
||||||
@ -663,7 +663,7 @@ gtk_object_getv (GtkObject *object,
|
|||||||
g_free (lookup_name);
|
g_free (lookup_name);
|
||||||
continue;
|
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);
|
g_warning ("arg is not supplied for read-access: \"%s\"\n", lookup_name);
|
||||||
args[i].type = GTK_TYPE_INVALID;
|
args[i].type = GTK_TYPE_INVALID;
|
||||||
@ -710,14 +710,17 @@ gtk_query_arg_foreach (gpointer key,
|
|||||||
|
|
||||||
GtkArg*
|
GtkArg*
|
||||||
gtk_object_query_args (GtkType class_type,
|
gtk_object_query_args (GtkType class_type,
|
||||||
guint **access_masks,
|
guint32 **arg_flags,
|
||||||
|
guint **seq_ids,
|
||||||
guint *nargs)
|
guint *nargs)
|
||||||
{
|
{
|
||||||
GtkArg *args;
|
GtkArg *args;
|
||||||
GtkQueryArgData query_data;
|
GtkQueryArgData query_data;
|
||||||
|
|
||||||
if (access_masks)
|
if (arg_flags)
|
||||||
*access_masks = NULL;
|
*arg_flags = NULL;
|
||||||
|
if (seq_ids)
|
||||||
|
*seq_ids = NULL;
|
||||||
g_return_val_if_fail (nargs != NULL, NULL);
|
g_return_val_if_fail (nargs != NULL, NULL);
|
||||||
*nargs = 0;
|
*nargs = 0;
|
||||||
g_return_val_if_fail (gtk_type_is_a (class_type, gtk_object_get_type ()), NULL);
|
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);
|
args = g_new0 (GtkArg, len);
|
||||||
*nargs = len;
|
*nargs = len;
|
||||||
if (access_masks)
|
if (arg_flags)
|
||||||
*access_masks = g_new (guint, len);
|
*arg_flags = g_new (guint32, len);
|
||||||
|
if (seq_ids)
|
||||||
|
*seq_ids = g_new (guint, len);
|
||||||
|
|
||||||
do
|
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].type = info->type;
|
||||||
args[info->seq_id - 1].name = info->name;
|
args[info->seq_id - 1].name = info->name;
|
||||||
if (access_masks)
|
if (arg_flags)
|
||||||
(*access_masks)[info->seq_id - 1] = info->access_mask;
|
(*arg_flags)[info->seq_id - 1] = info->arg_flags;
|
||||||
|
if (seq_ids)
|
||||||
|
(*seq_ids)[info->seq_id - 1] = info->seq_id;
|
||||||
}
|
}
|
||||||
while (list);
|
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);
|
g_warning ("invalid arg for %s: \"%s\"\n", gtk_type_name (object->klass->type), lookup_name);
|
||||||
arg_ok = FALSE;
|
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);
|
g_warning ("arg is not supplied for write-access: \"%s\"\n", lookup_name);
|
||||||
arg_ok = FALSE;
|
arg_ok = FALSE;
|
||||||
@ -890,7 +897,7 @@ gtk_object_setv (GtkObject *object,
|
|||||||
void
|
void
|
||||||
gtk_object_add_arg_type (const char *arg_name,
|
gtk_object_add_arg_type (const char *arg_name,
|
||||||
GtkType arg_type,
|
GtkType arg_type,
|
||||||
guint access_mask,
|
guint arg_flags,
|
||||||
guint arg_id)
|
guint arg_id)
|
||||||
{
|
{
|
||||||
GtkArgInfo *info;
|
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_name != NULL);
|
||||||
g_return_if_fail (arg_type > GTK_TYPE_NONE);
|
g_return_if_fail (arg_type > GTK_TYPE_NONE);
|
||||||
g_return_if_fail (arg_id > 0);
|
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, ':');
|
arg_part = strchr (arg_name, ':');
|
||||||
if (!arg_part || (arg_part[0] != ':') || (arg_part[1] != ':'))
|
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->name = g_strdup (arg_name);
|
||||||
info->type = arg_type;
|
info->type = arg_type;
|
||||||
info->class_type = class_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->arg_id = arg_id;
|
||||||
info->seq_id = ++((GtkObjectClass*) gtk_type_class (class_type))->n_args;
|
info->seq_id = ++((GtkObjectClass*) gtk_type_class (class_type))->n_args;
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ enum
|
|||||||
GTK_RESERVED_2 = 1 << 3
|
GTK_RESERVED_2 = 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
/* GtkArg access bits for gtk_object_add_arg_type
|
/* GtkArg flag bits for gtk_object_add_arg_type
|
||||||
*/
|
*/
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -246,19 +246,20 @@ void gtk_object_setv (GtkObject *object,
|
|||||||
|
|
||||||
/* Allocate a GtkArg array of size nargs that hold the
|
/* Allocate a GtkArg array of size nargs that hold the
|
||||||
* names and types of the args that can be used with
|
* names and types of the args that can be used with
|
||||||
* gtk_object_set/gtk_object_get. if (acess_masks!=NULL),
|
* gtk_object_set/gtk_object_get. if (arg_flags!=NULL),
|
||||||
* (*access_mask) will be set to point to a newly allocated
|
* (*arg_flags) will be set to point to a newly allocated
|
||||||
* guint array that holds the access masks of the args.
|
* guint array that holds the flags of the args.
|
||||||
* It is the callers response to do a
|
* It is the callers response to do a
|
||||||
* g_free (returned_args); g_free (*acess_masks).
|
* g_free (returned_args); g_free (*acess_masks).
|
||||||
*/
|
*/
|
||||||
GtkArg* gtk_object_query_args (GtkType class_type,
|
GtkArg* gtk_object_query_args (GtkType class_type,
|
||||||
guint **acess_masks,
|
guint32 **arg_flags,
|
||||||
|
guint **seq_ids,
|
||||||
guint *nargs);
|
guint *nargs);
|
||||||
|
|
||||||
void gtk_object_add_arg_type (const gchar *arg_name,
|
void gtk_object_add_arg_type (const gchar *arg_name,
|
||||||
GtkType arg_type,
|
GtkType arg_type,
|
||||||
guint access_mask,
|
guint arg_flags,
|
||||||
guint arg_id);
|
guint arg_id);
|
||||||
|
|
||||||
GtkType gtk_object_get_arg_type (const gchar *arg_name);
|
GtkType gtk_object_get_arg_type (const gchar *arg_name);
|
||||||
|
Reference in New Issue
Block a user