2000-01-05 15:04:23 +00:00
|
|
|
<!-- ##### SECTION Title ##### -->
|
|
|
|
Implementation of Object Properties
|
|
|
|
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
|
|
Utility function to manipulate lists of named, typed arguments.
|
|
|
|
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
|
|
<para>
|
|
|
|
All the functions in here are marked a Non-public.
|
|
|
|
We describe it anyway because it is occasionally useful
|
|
|
|
to understand how the work is done.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
Arguments are a way of describing a named parameter to a function.
|
|
|
|
They have two important roles within gtk+:
|
|
|
|
<itemizedlist>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
they describe <wordasword>object properties</wordasword>.
|
|
|
|
This means that they present an interface to get and set a named-type
|
|
|
|
for any type of object in a consistent way.
|
|
|
|
(All the relevant functions to do this start with gtk_object_set
|
|
|
|
or gtk_object_get).
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
<listitem>
|
|
|
|
<para>
|
|
|
|
they describe <wordasword>signal arguments</wordasword>.
|
|
|
|
This is a lot less often needed but still useful.
|
|
|
|
Usually if you are just emitting or creating a particular signal
|
|
|
|
it is more convenient to just use gtk_signal_emit() or gtk_signal_new().
|
|
|
|
However if you are writing a function to emit or create an arbitrary
|
|
|
|
signal, you must use gtk_signal_emitv() or gtk_signal_newv().
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
|
|
<para>
|
|
|
|
#GtkObject.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<!-- ##### STRUCT GtkArgInfo ##### -->
|
|
|
|
<para>
|
|
|
|
A structure containing information about the argument.
|
|
|
|
Returned by gtk_arg_get_info().
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@class_type: if the argument is an object, this is the object class type.
|
|
|
|
@name: the name of the argument.
|
|
|
|
@type: the type of the argument; it may be an object's type
|
|
|
|
or a fundamental type.
|
|
|
|
@arg_flags: flags applicable to the argument (i.e. readable, writable,
|
|
|
|
and whether it needs to be constructed).
|
|
|
|
@full_name: the object name and argument name separated by ::,
|
|
|
|
e.g. "GtkObject::user_data" or "GtkButton::label".
|
|
|
|
@arg_id: the unique argument identified.
|
|
|
|
@seq_id: ???
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_new ##### -->
|
|
|
|
<para>
|
|
|
|
Creates a new argument of a certain type, set to 0 or NULL.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg_type: the type of the argument.
|
|
|
|
@Returns: the newly created #GtkArg.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_copy ##### -->
|
|
|
|
<para>
|
|
|
|
It will either copy data into an existing argument or allocate a new argument
|
|
|
|
and copy the data. Strings are duplicated. All other pointers and
|
|
|
|
values are copied (shallowly-- that is the pointers themselves are
|
|
|
|
copied, not the data they point to.)
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
You should call gtk_arg_reset() on dest_arg before calling this
|
|
|
|
if the argument may contain string data that you want freed.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@src_arg: the argument to duplicate.
|
|
|
|
@dest_arg: the argument to copy over (or NULL to create a new #GtkArg).
|
|
|
|
@Returns: the new #GtkArg (or dest_arg, if it was not NULL).
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_free ##### -->
|
|
|
|
<para>
|
|
|
|
Frees the argument, and optionally its contents.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg: the argument to free.
|
|
|
|
@free_contents: whether to free the string, if it is a string.
|
|
|
|
|
|
|
|
|
2000-09-07 18:17:06 +00:00
|
|
|
<!-- ##### FUNCTION gtk_arg_reset ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg:
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_values_equal ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg1:
|
|
|
|
@arg2:
|
|
|
|
@Returns:
|
|
|
|
|
|
|
|
|
2000-01-05 15:04:23 +00:00
|
|
|
<!-- ##### FUNCTION gtk_args_collect ##### -->
|
|
|
|
<para>
|
|
|
|
Private: given a hashtable of argument information it takes a vararg
|
|
|
|
list and parses it into arguments (in the form of lists of #GtkArgs
|
|
|
|
and lists of #GtkArgInfos.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The list of arguments starts with first_arg_name then the first argument's
|
|
|
|
value. Followed by any number of additional name/argument pairs,
|
|
|
|
terminated with NULL.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@object_type: the type of object we are collecting arguments for.
|
|
|
|
@arg_info_hash_table: a hashtable mapping from names of arguments
|
|
|
|
to their #GtkArgInfos.
|
|
|
|
@arg_list_p: a returned list of arguments obtained from parsing the
|
|
|
|
varargs.
|
|
|
|
@info_list_p: a returned list of the #GtkArgInfos.
|
|
|
|
@first_arg_name: the name of the first argument.
|
|
|
|
@var_args: a va_list containing the value of the first argument,
|
|
|
|
followed by name/value pairs, followed by NULL.
|
|
|
|
@Returns: an error message on failure, or NULL otherwise.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_args_collect_cleanup ##### -->
|
|
|
|
<para>
|
|
|
|
Private: erase lists of arguments returned from gtk_args_collect().
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg_list: arg_list_p returned from gtk_args_collect().
|
|
|
|
@info_list: info_list_p returned from gtk_args_collect().
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_get_info ##### -->
|
|
|
|
<para>
|
|
|
|
Private: get information about an argument.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@object_type: the type of object.
|
|
|
|
@arg_info_hash_table: the hashtable of #GtkArgInfos.
|
|
|
|
@arg_name: the name of the argument to lookup.
|
|
|
|
@info_p: the argument info.
|
|
|
|
@Returns: an error message on failure, or NULL otherwise.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_type_new_static ##### -->
|
|
|
|
<para>
|
|
|
|
Create a new argument registered with a class.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@base_class_type: the basic type having the arguments, almost alway
|
|
|
|
GTK_TYPE_OBJECT, except if your defining a different type argument
|
|
|
|
that gets a different namespace. #GtkContainer does this to define
|
|
|
|
per-child arguments of the container.
|
|
|
|
@arg_name: name of the argument to create. (must be a static constant string)
|
|
|
|
@class_n_args_offset: offset into the base class structure that tells
|
|
|
|
the number of arguments.
|
|
|
|
@arg_info_hash_table: hashtable of #GtkArgInfos.
|
|
|
|
@arg_type: type of the argument.
|
|
|
|
@arg_flags: flags of the argument.
|
|
|
|
@arg_id: ???
|
|
|
|
@Returns: the new #GtkArgInfo.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_args_query ##### -->
|
|
|
|
<para>
|
|
|
|
Private: from a class type and its arginfo hashtable,
|
|
|
|
get an array of #GtkArgs that this object accepts.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@class_type: the class type.
|
|
|
|
@arg_info_hash_table: the hashtable of #GtkArgInfos.
|
|
|
|
@arg_flags: returned array of argument flags.
|
|
|
|
@n_args_p: the number of arguments this object accepts.
|
|
|
|
@Returns: the array of arguments (or NULL on error).
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_name_strip_type ##### -->
|
|
|
|
<para>
|
|
|
|
Given a fully qualified argument name (e.g. "GtkButton::label")
|
|
|
|
it returns just the argument name (e.g. "label") unless
|
|
|
|
the argument name was invalid, in which case it returns NULL.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg_name: the fully-qualified argument name.
|
|
|
|
@Returns: the base argument name.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_info_equal ##### -->
|
|
|
|
<para>
|
|
|
|
A #GCompareFunc for hashing #GtkArgInfos.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg_info_1: a #GtkArgInfo.
|
|
|
|
@arg_info_2: a #GtkArgInfo.
|
|
|
|
@Returns: whether the arguments are the same.
|
|
|
|
|
|
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_arg_info_hash ##### -->
|
|
|
|
<para>
|
|
|
|
A #GHashFunc for hashing #GtkArgInfos.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg_info: a #GtkArgInfo.
|
|
|
|
@Returns: a hash value for that #GtkArgInfo.
|
|
|
|
|
|
|
|
|
2000-09-07 18:17:06 +00:00
|
|
|
<!-- ##### FUNCTION gtk_arg_to_valueloc ##### -->
|
|
|
|
<para>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
@arg:
|
|
|
|
@value_pointer:
|
|
|
|
|
|
|
|
|