list parameter and value types.

Tue Nov 13 21:31:58 2001  Tim Janik  <timj@gtk.org>

        * gobject/tmp/param_value_types.sgml: list parameter and
        value types.

        * gobject/tmpl/gparamspec.sgml: more docs for g_param_spec*()
        functions.

        * gobject/*: section cleanups.
This commit is contained in:
Tim Janik 2001-11-14 01:08:19 +00:00 committed by Tim Janik
parent d33e3d5331
commit 4abd166025
14 changed files with 1715 additions and 1390 deletions

View File

@ -1,3 +1,13 @@
Tue Nov 13 21:31:58 2001 Tim Janik <timj@gtk.org>
* gobject/tmp/param_value_types.sgml: list parameter and
value types.
* gobject/tmpl/gparamspec.sgml: more docs for g_param_spec*()
functions.
* gobject/*: section cleanups.
Tue Nov 13 19:49:16 2001 Tim Janik <timj@gtk.org>
* gobject/tmpl/gparamspec.sgml: param spec updates.

View File

@ -1,17 +1,16 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity gobject-GType SYSTEM "sgml/types.sgml">
<!entity gobject-GType SYSTEM "sgml/gtype.sgml">
<!entity gobject-GTypePlugin SYSTEM "sgml/gtypeplugin.sgml">
<!entity gobject-GTypeModule SYSTEM "sgml/gtypemodule.sgml">
<!entity gobject-The-Base-Object-Type SYSTEM "sgml/objects.sgml">
<!entity gobject-Enumeration-and-Flag-Types SYSTEM "sgml/enumerations_flags.sgml">
<!entity gobject-Boxed-Types SYSTEM "sgml/gboxed.sgml">
<!entity gobject-Generic-values SYSTEM "sgml/generic_values.sgml">
<!entity gobject-Standard-value-types SYSTEM "sgml/value_types.sgml">
<!entity gobject-param-value-types SYSTEM "sgml/param_value_types.sgml">
<!entity gobject-GParamSpec SYSTEM "sgml/gparamspec.sgml">
<!entity gobject-Standard-Parameter-Types SYSTEM "sgml/standard_params.sgml">
<!entity gobject-Varargs-Value-Collection SYSTEM "sgml/value_collection.sgml">
<!entity gobject-Signals SYSTEM "sgml/signals.sgml">
<!entity gobject-Closures SYSTEM "sgml/closures.sgml">
<!entity gobject-Closures SYSTEM "sgml/gclosure.sgml">
<!entity gobject-Value-Arrays SYSTEM "sgml/value_arrays.sgml">
]>
<book id="index">
@ -73,10 +72,9 @@
&gobject-Enumeration-and-Flag-Types;
&gobject-Boxed-Types;
&gobject-Generic-values;
&gobject-Standard-value-types;
&gobject-param-value-types;
&gobject-Varargs-Value-Collection;
&gobject-GParamSpec;
&gobject-Standard-Parameter-Types;
&gobject-Signals;
&gobject-Closures;
&gobject-Value-Arrays;

View File

@ -1,8 +1,8 @@
<INCLUDE>gobject.h</INCLUDE>
<SECTION>
<FILE>gtype</FILE>
<TITLE>Type Information</TITLE>
<FILE>types</FILE>
GType
G_TYPE_FUNDAMENTAL
G_TYPE_FUNDAMENTAL_MAX
@ -24,7 +24,7 @@ GTypeInstance
GTypeInfo
GTypeFundamentalInfo
GInterfaceInfo
GTypeValueTable
<TITLE>GType</TITLE>
G_TYPE_FROM_INSTANCE
G_TYPE_FROM_CLASS
@ -54,6 +54,7 @@ g_type_class_peek
g_type_class_unref
g_type_class_peek_parent
g_type_interface_peek
g_type_interface_peek_parent
g_type_children
g_type_interfaces
g_type_set_qdata
@ -78,21 +79,24 @@ g_type_interface_add_prerequisite
g_type_get_plugin
g_type_interface_get_plugin
g_type_fundamental_last
g_type_check_flags
g_type_create_instance
g_type_free_instance
g_type_add_class_cache_func
g_type_remove_class_cache_func
g_type_class_unref_uncached
g_type_check_instance
g_type_check_instance_cast
g_type_instance_is_a
g_type_check_class_cast
g_type_class_is_a
g_type_check_value
g_type_value_is_a
g_type_value_table_peek
<SUBSECTION Private>
g_type_check_instance
g_type_check_instance_cast
g_type_check_instance_is_a
g_type_check_class_cast
g_type_check_class_is_a
g_type_check_is_value_type
g_type_check_value
g_type_check_value_holds
g_type_test_flags
g_type_name_from_instance
g_type_name_from_class
</SECTION>
<SECTION>
@ -141,7 +145,6 @@ G_TYPE_MODULE_GET_CLASS
<FILE>objects</FILE>
GObject
GObjectClass
GObjectConstructParam
GObjectGetPropertyFunc
GObjectSetPropertyFunc
GObjectFinalizeFunc
@ -155,7 +158,6 @@ G_OBJECT_TYPE
G_OBJECT_TYPE_NAME
G_OBJECT_CLASS_TYPE
G_OBJECT_CLASS_NAME
G_VALUE_HOLDS_OBJECT
g_object_class_install_property
g_object_class_find_property
g_object_class_list_properties
@ -163,6 +165,7 @@ g_object_new
g_object_newv
g_object_ref
g_object_unref
GWeakNotify
g_object_weak_ref
g_object_weak_unref
g_object_add_weak_pointer
@ -189,10 +192,9 @@ g_object_set_valist
g_object_get_valist
g_object_watch_closure
g_object_run_dispose
g_value_set_object
g_value_get_object
g_value_dup_object
G_OBJECT_WARN_INVALID_PROPERTY_ID
<SUBSECTION Private>
GObjectConstructParam
</SECTION>
<SECTION>
@ -210,8 +212,6 @@ G_FLAGS_CLASS
G_IS_FLAGS_CLASS
G_FLAGS_CLASS_TYPE
G_FLAGS_CLASS_TYPE_NAME
G_VALUE_HOLDS_ENUM
G_VALUE_HOLDS_FLAGS
GEnumValue
GFlagsValue
g_enum_get_value
@ -220,10 +220,6 @@ g_enum_get_value_by_nick
g_flags_get_first_value
g_flags_get_value_by_name
g_flags_get_value_by_nick
g_value_set_enum
g_value_get_enum
g_value_set_flags
g_value_get_flags
g_enum_register_static
g_flags_register_static
g_enum_complete_type_info
@ -233,20 +229,13 @@ g_flags_complete_type_info
<SECTION>
<FILE>gboxed</FILE>
<TITLE>Boxed Types</TITLE>
GBoxed
GBoxedInitFunc
GBoxedCopyFunc
GBoxedFreeFunc
g_boxed_copy
g_boxed_free
g_value_set_boxed
g_value_set_static_boxed
g_value_set_boxed_take_ownership
g_value_get_boxed
g_value_dup_boxed
g_boxed_type_register_static
g_pointer_type_register_static
<SUBSECTION Standard>
G_VALUE_HOLDS_BOXED
G_TYPE_IS_BOXED
</SECTION>
@ -266,11 +255,11 @@ g_value_reset
g_value_unset
g_value_fits_pointer
g_value_peek_pointer
g_value_convert
g_values_exchange
g_value_types_exchangable
g_value_register_exchange_func
GTypeValueTable
g_value_type_compatible
g_value_type_transformable
g_value_transform
GValueTransform
g_value_register_transform_func
</SECTION>
<SECTION>
@ -281,7 +270,6 @@ g_value_array_get_nth
g_value_array_new
g_value_array_copy
g_value_array_free
g_value_array_index
g_value_array_append
g_value_array_prepend
g_value_array_insert
@ -290,62 +278,17 @@ g_value_array_sort
g_value_array_sort_with_data
</SECTION>
<SECTION>
<TITLE>Standard value types</TITLE>
<FILE>value_types</FILE>
G_VALUE_HOLDS_CHAR
G_VALUE_HOLDS_UCHAR
G_VALUE_HOLDS_BOOLEAN
G_VALUE_HOLDS_INT
G_VALUE_HOLDS_UINT
G_VALUE_HOLDS_LONG
G_VALUE_HOLDS_ULONG
G_VALUE_HOLDS_FLOAT
G_VALUE_HOLDS_DOUBLE
G_VALUE_HOLDS_STRING
G_VALUE_HOLDS_POINTER
G_VALUE_HOLDS_PARAM
g_value_set_char
g_value_get_char
g_value_set_uchar
g_value_get_uchar
g_value_set_boolean
g_value_get_boolean
g_value_set_int
g_value_get_int
g_value_set_uint
g_value_get_uint
g_value_set_long
g_value_get_long
g_value_set_ulong
g_value_get_ulong
g_value_set_float
g_value_get_float
g_value_set_double
g_value_get_double
g_value_set_string
g_value_set_static_string
g_value_set_string_take_ownership
g_value_get_string
g_value_dup_string
g_value_set_param
g_value_get_param
g_value_dup_param
g_value_get_pointer
g_value_set_pointer
g_value_set_instance
</SECTION>
<SECTION>
<TITLE>GParamSpec</TITLE>
<FILE>gparamspec</FILE>
G_PARAM_SPEC_TYPE
G_TYPE_PARAM
G_TYPE_IS_PARAM
G_PARAM_SPEC
G_IS_PARAM_SPEC
G_PARAM_SPEC_CLASS
G_IS_PARAM_SPEC_CLASS
G_PARAM_SPEC_GET_CLASS
G_PARAM_SPEC_TYPE
G_PARAM_SPEC_TYPE_NAME
G_PARAM_SPEC_VALUE_TYPE
GParamSpec
@ -366,6 +309,7 @@ g_param_spec_get_qdata
g_param_spec_set_qdata
g_param_spec_set_qdata_full
g_param_spec_steal_qdata
g_param_spec_internal
GParamSpecTypeInfo
g_param_type_register_static
GParamSpecPool
@ -373,86 +317,197 @@ g_param_spec_pool_new
g_param_spec_pool_insert
g_param_spec_pool_remove
g_param_spec_pool_lookup
g_param_spec_internal
g_param_spec_pool_list
</SECTION>
<SECTION>
<TITLE>Standard Parameter Types</TITLE>
<FILE>standard_params</FILE>
G_IS_PARAM_SPEC_CHAR
G_PARAM_SPEC_CHAR
G_IS_PARAM_SPEC_UCHAR
G_PARAM_SPEC_UCHAR
<TITLE>Standard Parameter and Value Types</TITLE>
<FILE>param_value_types</FILE>
<SUBSECTION gboolean>
G_IS_PARAM_SPEC_BOOLEAN
G_PARAM_SPEC_BOOLEAN
G_VALUE_HOLDS_BOOLEAN
GParamSpecBoolean
g_param_spec_boolean
g_value_set_boolean
g_value_get_boolean
<SUBSECTION gchar>
G_IS_PARAM_SPEC_CHAR
G_PARAM_SPEC_CHAR
G_VALUE_HOLDS_CHAR
GParamSpecChar
g_param_spec_char
g_value_set_char
g_value_get_char
<SUBSECTION guchar>
G_IS_PARAM_SPEC_UCHAR
G_PARAM_SPEC_UCHAR
G_VALUE_HOLDS_UCHAR
GParamSpecUChar
g_param_spec_uchar
g_value_set_uchar
g_value_get_uchar
<SUBSECTION gint>
G_IS_PARAM_SPEC_INT
G_PARAM_SPEC_INT
G_VALUE_HOLDS_INT
GParamSpecInt
g_param_spec_int
g_value_set_int
g_value_get_int
<SUBSECTION guint>
G_IS_PARAM_SPEC_UINT
G_PARAM_SPEC_UINT
G_VALUE_HOLDS_UINT
GParamSpecUInt
g_param_spec_uint
g_value_set_uint
g_value_get_uint
<SUBSECTION glong>
G_IS_PARAM_SPEC_LONG
G_PARAM_SPEC_LONG
G_VALUE_HOLDS_LONG
GParamSpecLong
g_param_spec_long
g_value_set_long
g_value_get_long
<SUBSECTION gulong>
G_IS_PARAM_SPEC_ULONG
G_PARAM_SPEC_ULONG
G_IS_PARAM_SPEC_ENUM
G_PARAM_SPEC_ENUM
G_IS_PARAM_SPEC_FLAGS
G_PARAM_SPEC_FLAGS
G_VALUE_HOLDS_ULONG
GParamSpecULong
g_param_spec_ulong
g_value_set_ulong
g_value_get_ulong
<SUBSECTION gint64>
G_IS_PARAM_SPEC_INT64
G_PARAM_SPEC_INT64
G_VALUE_HOLDS_INT64
GParamSpecInt64
g_param_spec_int64
g_value_set_int64
g_value_get_int64
<SUBSECTION guint64>
G_IS_PARAM_SPEC_UINT64
G_PARAM_SPEC_UINT64
G_VALUE_HOLDS_UINT64
GParamSpecUInt64
g_param_spec_uint64
g_value_set_uint64
g_value_get_uint64
<SUBSECTION gfloat>
G_IS_PARAM_SPEC_FLOAT
G_PARAM_SPEC_FLOAT
G_VALUE_HOLDS_FLOAT
GParamSpecFloat
g_param_spec_float
g_value_set_float
g_value_get_float
<SUBSECTION gdouble>
G_IS_PARAM_SPEC_DOUBLE
G_PARAM_SPEC_DOUBLE
G_VALUE_HOLDS_DOUBLE
GParamSpecDouble
g_param_spec_double
g_value_set_double
g_value_get_double
<SUBSECTION GEnum>
G_IS_PARAM_SPEC_ENUM
G_PARAM_SPEC_ENUM
G_VALUE_HOLDS_ENUM
GParamSpecEnum
g_param_spec_enum
g_value_set_enum
g_value_get_enum
<SUBSECTION GFLags>
G_IS_PARAM_SPEC_FLAGS
G_PARAM_SPEC_FLAGS
G_VALUE_HOLDS_FLAGS
GParamSpecFlags
g_param_spec_flags
g_value_set_flags
g_value_get_flags
<SUBSECTION gchararray>
G_IS_PARAM_SPEC_STRING
G_PARAM_SPEC_STRING
G_VALUE_HOLDS_STRING
GParamSpecString
g_param_spec_string
g_value_set_string
g_value_set_static_string
g_value_set_string_take_ownership
g_value_get_string
g_value_dup_string
<SUBSECTION GParamSpec>
G_IS_PARAM_SPEC_PARAM
G_PARAM_SPEC_PARAM
G_VALUE_HOLDS_PARAM
GParamSpecParam
g_param_spec_param
g_value_set_param
g_value_get_param
g_value_dup_param
<SUBSECTION GBoxed>
G_IS_PARAM_SPEC_BOXED
G_PARAM_SPEC_BOXED
G_VALUE_HOLDS_BOXED
GParamSpecBoxed
g_param_spec_boxed
g_value_set_boxed
g_value_set_static_boxed
g_value_set_boxed_take_ownership
g_value_get_boxed
g_value_dup_boxed
<SUBSECTION gpointer>
G_IS_PARAM_SPEC_POINTER
G_PARAM_SPEC_POINTER
G_IS_PARAM_SPEC_VALUE_ARRAY
G_PARAM_SPEC_VALUE_ARRAY
G_IS_PARAM_SPEC_CLOSURE
G_PARAM_SPEC_CLOSURE
G_VALUE_HOLDS_POINTER
GParamSpecPointer
g_param_spec_pointer
g_value_set_pointer
g_value_get_pointer
<SUBSECTION GObject>
G_IS_PARAM_SPEC_OBJECT
G_PARAM_SPEC_OBJECT
GParamSpecChar
GParamSpecUChar
GParamSpecBoolean
GParamSpecInt
GParamSpecUInt
GParamSpecLong
GParamSpecULong
GParamSpecUnichar
GParamSpecEnum
GParamSpecFlags
GParamSpecFloat
GParamSpecDouble
GParamSpecString
GParamSpecParam
GParamSpecBoxed
GParamSpecPointer
GParamSpecValueArray
GParamSpecClosure
G_VALUE_HOLDS_OBJECT
GParamSpecObject
g_param_spec_char
g_param_spec_uchar
g_param_spec_boolean
g_param_spec_int
g_param_spec_uint
g_param_spec_long
g_param_spec_ulong
g_param_spec_unichar
g_param_spec_enum
g_param_spec_flags
g_param_spec_float
g_param_spec_double
g_param_spec_string
g_param_spec_param
g_param_spec_boxed
g_param_spec_pointer
g_param_spec_value_array
g_param_spec_closure
g_param_spec_object
g_value_set_object
g_value_get_object
g_value_dup_object
<SUBSECTION gunichar>
G_IS_PARAM_SPEC_UNICHAR
G_PARAM_SPEC_UNICHAR
GParamSpecUnichar
g_param_spec_unichar
<SUBSECTION GValueArray>
G_IS_PARAM_SPEC_VALUE_ARRAY
G_PARAM_SPEC_VALUE_ARRAY
GParamSpecValueArray
g_param_spec_value_array
<SUBSECTION Private>
g_value_set_instance
</SECTION>
<SECTION>
@ -487,11 +542,12 @@ g_signal_emit
g_signal_emit_by_name
g_signal_emitv
g_signal_emit_valist
g_signal_connect_data
g_signal_connect
g_signal_connect_after
g_signal_connect_swapped
g_signal_connect_object
GConnectFlags
g_signal_connect_data
g_signal_connect_closure
g_signal_connect_closure_by_id
g_signal_handler_block
@ -509,7 +565,6 @@ g_signal_has_handler_pending
g_signal_stop_emission
g_signal_stop_emission_by_name
g_signal_add_emission_hook
g_signal_add_emission_hook_full
g_signal_remove_emission_hook
g_signal_parse_name
g_signal_handlers_destroy
@ -517,8 +572,8 @@ g_signal_type_cclosure_new
</SECTION>
<SECTION>
<FILE>gclosure</FILE>
<TITLE>Closures</TITLE>
<FILE>closures</FILE>
G_CLOSURE_NEEDS_MARSHAL
G_CCLOSURE_SWAP_DATA
G_CALLBACK

View File

@ -105,22 +105,6 @@ Enumeration and flags types.
@class:
<!-- ##### MACRO G_VALUE_HOLDS_ENUM ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_FLAGS ##### -->
<para>
</para>
@value:
<!-- ##### STRUCT GEnumValue ##### -->
<para>
@ -199,42 +183,6 @@ Enumeration and flags types.
@Returns:
<!-- ##### FUNCTION g_value_set_enum ##### -->
<para>
</para>
@value:
@v_enum:
<!-- ##### FUNCTION g_value_get_enum ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_flags ##### -->
<para>
</para>
@value:
@v_flags:
<!-- ##### FUNCTION g_value_get_flags ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_enum_register_static ##### -->
<para>

View File

@ -52,52 +52,6 @@ Free the boxed structure @boxed which is of type @boxed_type.
@boxed: The boxed structure to be freed.
<!-- ##### FUNCTION g_value_set_boxed ##### -->
<para>
Assign a #GValue which is initialized with a certain boxed type a
boxed structure of that very same type.
</para>
@value: The #GValue to be assigned a value to.
@boxed: The boxed structure which has to be of the same type the #GValue got initialized with.
<!-- ##### FUNCTION g_value_set_static_boxed ##### -->
<para>
</para>
@value:
@boxed:
<!-- ##### FUNCTION g_value_set_boxed_take_ownership ##### -->
<para>
This is an internal function introduced mainly for C marshallers.
</para>
@value:
@boxed:
<!-- ##### FUNCTION g_value_get_boxed ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_dup_boxed ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_boxed_type_register_static ##### -->
<para>
This function creates a new %G_TYPE_BOXED derived type id for a new
@ -114,3 +68,12 @@ provided to copy and free opaque boxed structures of this type.
@is_refcounted:
<!-- ##### FUNCTION g_pointer_type_register_static ##### -->
<para>
</para>
@name:
@Returns:

View File

@ -151,191 +151,52 @@ This is an internal function introduced mainly for C marshallers.
@Returns: #TRUE if @value will fit inside a pointer value.
<!-- ##### STRUCT GTypeValueTable ##### -->
<!-- ##### FUNCTION g_value_type_compatible ##### -->
<para>
The #GTypeValueTable provides the functions required by the #GValue implementation,
to serve as a container for values of a type.
</para>
@value_init: Default initialize @values contents by poking values
directly into the value-&gt;data array. The data array of
the #GValue passed into this function was zero-filled
with memset, so no care has to be taken to free any
old contents. E.g. for the implementation of a string
value that may never be NULL, the implementation might
look like:
<msgtext><programlisting>
{
value-&gt;data[0].v_pointer = g_strdup ("");
}
</programlisting></msgtext>
@value_free: Free any old contents that might be left in the
data array of the passed in @value. No resources may
remain allocated through the #GValue contents after
this function returns. E.g. for our above string type:
<msgtext><programlisting>
{
/* only free strings without a specific flag for static storage */
if (!(value-&gt;data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
g_free (value-&gt;data[0].v_pointer);
}
</programlisting></msgtext>
@value_copy: @dest_value is a #GValue with zero-filled data section
and @src_value is a properly setup #GValue of same or
derived type.
The purpose of this function is to copy the contents of
@src_value into @dest_value in a way, that even after
@src_value has been freed, the contents of @dest_value
remain valid. String type example:
<msgtext><programlisting>
{
dest_value-&gt;data[0].v_pointer = g_strdup (src_value-&gt;data[0].v_pointer);
}
</programlisting></msgtext>
@value_peek_pointer: If the value contents fit into a pointer, such as objects
or strings, return this pointer, so the caller can peek at
the current contents. To extend on our above string example:
<msgtext><programlisting>
{
return value-&gt;data[0].v_pointer;
}
</programlisting></msgtext>
@collect_format: A string format describing how to collect the contents of
this value, bit-by-bit. Each character in the format represents
an argument to be collected, the characters themselves indicate
the type of the argument. Currently supported arguments are:
<msgtext><variablelist>
<varlistentry><term></term><listitem><para>
'i' - Integers. passed as collect_values[].v_int.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'l' - Longs. passed as collect_values[].v_long.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'd' - Doubles. passed as collect_values[].v_double.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'p' - Pointers. passed as collect_values[].v_pointer.
</para></listitem></varlistentry>
</variablelist></msgtext>
It should be noted, that for variable argument list construction,
ANSI C promotes every type smaller than an integer to an int, and
floats to doubles. So for collection of short int or char, 'i'
needs to be used, and for collection of floats 'd'.
@collect_value: The collect_value() function is responsible for converting the
values collected from a variable argument list into contents
suitable for storage in a GValue. This function should setup
@value similar to value_init(), e.g. for a string value that
does not allow NULL pointers, it needs to either spew an error,
or do an implicit conversion by storing an empty string.
The @value passed in to this function has a zero-filled data
array, so just like for @value_init it is guaranteed to not
contain any old contents that might need freeing.
@n_collect_values is exactly the string length of @collect_format,
and @collect_values is an array of unions #GTypeCValue with
length @n_collect_values, containing the collected values
according to @collect_format.
@collect_flags is an argument provided as a hint by the caller,
which may contain the flag #G_VALUE_NOCOPY_CONTENTS indicating,
that the collected value contents may be considered "static"
for the duration of the #@value lifetime.
Thus an extra copy of the contents stored in @collect_values is
not required for assignment to @value.
For our above string example, we continue with:
<msgtext><programlisting>
{
if (!collect_values[0].v_pointer)
value->data[0].v_pointer = g_strdup ("");
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
{
value-&gt;data[0].v_pointer = collect_values[0].v_pointer;
/* keep a flag for the value_free() implementation to not free this string */
value-&gt;data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
}
else
value-&gt;data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
@src_type:
@dest_type:
@Returns:
return NULL;
}
</programlisting></msgtext>
It should be noted, that it is generally a bad idea to follow the
#G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
reentrancy requirements and reference count assertions performed
by the GSignal code, reference counts should always be incremented
for reference counted contents stored in the value-&gt;data array.
To deviate from our string example for a moment, and taking a look
at an exemplary implementation for collect_value() of #GObject:
<msgtext><programlisting>
{
if (collect_values[0].v_pointer)
{
GObject *object = G_OBJECT (collect_values[0].v_pointer);
/* never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types */
value-&gt;data[0].v_pointer = g_object_ref (object);
return NULL;
}
else
return g_strdup_printf ("Object passed as invalid NULL pointer");
}
</programlisting></msgtext>
The reference count for valid objects is always incremented,
regardless of @collect_flags. For invalid objects, the example
returns a newly allocated string without altering @value.
Upon success, collect_value() needs to return NULL, if however
a malicious condition occurred, collect_value() may spew an
error by returning a newly allocated non-NULL string, giving
a suitable description of the error condition.
The calling code makes no assumptions about the @value
contents being valid upon error returns, @value
is simply thrown away without further freeing. As such, it is
a good idea to not allocate #GValue contents, prior to returning
an error, however, collect_values() is not obliged to return
a correctly setup @value for error returns, simply because
any non-NULL return is considered a fatal condition so further
program behaviour is undefined.
@lcopy_format: Format description of the arguments to collect for @lcopy_value,
analogous to @collect_format. Usually, @lcopy_format string consists
only of 'p's to provide lcopy_value() with pointers to storage locations.
@lcopy_value: This function is responsible for storing the @value contents into
arguments passed through a variable argument list which got
collected into @collect_values according to @lcopy_format.
@n_collect_values equals the string length of @lcopy_format,
and @collect_flags may contain #G_VALUE_NOCOPY_CONTENTS.
In contrast to collect_value(), lcopy_value() is obliged to
always properly support #G_VALUE_NOCOPY_CONTENTS.
Similar to collect_value() the function may prematurely abort
by returning a newly allocated string describing an error condition.
To complete the string example:
<msgtext><programlisting>
{
gchar **string_p = collect_values[0].v_pointer;
<!-- ##### FUNCTION g_value_type_transformable ##### -->
<para>
if (!string_p)
return g_strdup_printf ("string location passed as NULL");
</para>
if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
*string_p = value-&gt;data[0].v_pointer;
else
*string_p = g_strdup (value-&gt;data[0].v_pointer);
@src_type:
@dest_type:
@Returns:
}
</programlisting></msgtext>
And an exemplary version of lcopy_value() for
reference-counted types:
<msgtext><programlisting>
{
GObject **object_p = collect_values[0].v_pointer;
if (!object_p)
return g_strdup_printf ("object location passed as NULL");
if (!value-&gt;data[0].v_pointer)
*object_p = NULL;
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) /* always honour */
*object_p = value-&gt;data[0].v_pointer;
else
*object_p = g_object_ref (value-&gt;data[0].v_pointer);
return NULL;
}
</programlisting></msgtext>
<!-- ##### FUNCTION g_value_transform ##### -->
<para>
</para>
@src_value:
@dest_value:
@Returns:
<!-- ##### USER_FUNCTION GValueTransform ##### -->
<para>
</para>
@src_value:
@dest_value:
<!-- ##### FUNCTION g_value_register_transform_func ##### -->
<para>
</para>
@src_type:
@dest_type:
@transform_func:

View File

@ -31,6 +31,35 @@ Parameter Specifications
@Returns:
<!-- ##### STRUCT GObjectConstructParam ##### -->
<para>
</para>
@pspec:
@value:
<!-- ##### STRUCT GParamSpecClosure ##### -->
<para>
</para>
@parent_instance:
<!-- ##### MACRO G_IS_PARAM_SPEC_CLOSURE ##### -->
<para>
</para>
@pspec:
<!-- ##### MACRO G_PARAM_SPEC_CLOSURE ##### -->
<para>
</para>
@pspec:
<!-- ##### FUNCTION g_closure_add_fnotify ##### -->
<para>
@ -67,6 +96,17 @@ Parameter Specifications
@notify_data:
@notify_func:
<!-- ##### FUNCTION g_param_spec_closure ##### -->
<para>
</para>
@name:
@nick:
@blurb:
@flags:
@Returns:
<!-- ##### FUNCTION g_param_spec_string_c ##### -->
<para>
@ -105,6 +145,77 @@ Parameter Specifications
@n_params:
@Varargs:
<!-- ##### FUNCTION g_type_check_class_cast ##### -->
<para>
</para>
@g_class:
@is_a_type:
@Returns:
<!-- ##### FUNCTION g_type_check_flags ##### -->
<para>
Determines whether a given set of #GTypeFlags and #GTypeFundamentalFlags
are set for @type.
</para>
@type: The type to check for flags.
@flags: Bitwise combination of #GTypeFlags and #GTypeFundamentalFlags.
@Returns: #TRUE if all @flags are set for @type, #FALSE otherwise.
<!-- ##### FUNCTION g_type_check_instance ##### -->
<para>
Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE()
macro.
</para>
@instance: A valid #GTypeInstance structure.
@Returns: #TRUE if @instance is valid, #FALSE otherwise.
<!-- ##### FUNCTION g_type_check_instance_cast ##### -->
<para>
</para>
@instance:
@iface_type:
@Returns:
<!-- ##### FUNCTION g_type_check_value ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_type_class_is_a ##### -->
<para>
</para>
@g_class:
@is_a_type:
@Returns:
<!-- ##### FUNCTION g_type_instance_is_a ##### -->
<para>
Determines if @instance adheres to the interface exported
by @iface_type. @iface_type is either a type that @instance
is derived from, or an interface type that is supported by
the anchestry of @instance.
</para>
@instance: A valid #GTypeInstance structure.
@iface_type: A #GType value.
@Returns: #TRUE if @instance conforms to @iface_type, #FALSE otherwise.
<!-- ##### FUNCTION g_type_test_flags ##### -->
<para>
</para>
@type:
@flags:
@Returns:
<!-- ##### FUNCTION g_type_value_is_a ##### -->
<para>
Determines if @value is a #GValue whose type conforms to @type.

View File

@ -1,8 +1,8 @@
<!-- ##### SECTION Title ##### -->
GParamSpec
<!-- ##### SECTION Short_Description ##### -->
Parameter Specifications
Meta data object for parameter specifications.
<!-- ##### SECTION Long_Description ##### -->
<para>
@ -13,23 +13,15 @@ required to specify parameters, such as e.g. #GObject properties.
<!-- ##### SECTION See_Also ##### -->
<para>
g_object_class_install_property(), g_object_set(), g_object_get(),
g_object_set_property(), g_object_get_property()
g_object_set_property(), g_object_get_property(), g_value_register_transform_func()
</para>
<!-- ##### MACRO G_PARAM_SPEC_TYPE ##### -->
<para>
Retrive the #GType of this @pspec.
</para>
@pspec: a valid #GParamSpec
<!-- ##### MACRO G_TYPE_IS_PARAM ##### -->
<para>
Returns whether @type "is a" %G_TYPE_PARAM.
</para>
@type:
@type: a #GType ID
<!-- ##### MACRO G_PARAM_SPEC ##### -->
@ -43,15 +35,41 @@ a #GParamSpec object.
<!-- ##### MACRO G_IS_PARAM_SPEC ##### -->
<para>
Check whether @pspec "is a" valid #GParamSpec structure of type %G_TYPE_PARAM
or derived.
</para>
@pspec: a #GParamSpec
<!-- ##### MACRO G_PARAM_SPEC_CLASS ##### -->
<para>
Cast a derived #GParamSpecClass structure into a #GParamSpecClass structure.
</para>
@pclass: a valid #GParamSpecClass
<!-- ##### MACRO G_IS_PARAM_SPEC_CLASS ##### -->
<para>
Check whether @pclass "is a" valid #GParamSpecClass structure of type %G_TYPE_PARAM
or derived.
</para>
@pclass: a #GParamSpecClass
<!-- ##### MACRO G_PARAM_SPEC_GET_CLASS ##### -->
<para>
Retrieve the #GParamSpecClass of a #GParamSpec.
</para>
@pspec: a valid #GParamSpec
<!-- ##### MACRO G_PARAM_SPEC_GET_CLASS ##### -->
<!-- ##### MACRO G_PARAM_SPEC_TYPE ##### -->
<para>
Retrive the #GType of this @pspec.
</para>
@pspec: a valid #GParamSpec
@ -159,54 +177,68 @@ not flagged "floating" anymore).
<!-- ##### FUNCTION g_param_value_set_default ##### -->
<para>
Set @value to its default value as specified in @pspec.
</para>
@pspec:
@value:
@pspec: a valid #GParamSpec
@value: a #GValue of correct type for @pspec
<!-- ##### FUNCTION g_param_value_defaults ##### -->
<para>
Check whether @value contains the default value as specified in @pspec.
</para>
@pspec:
@value:
@Returns:
@pspec: a valid #GParamSpec
@value: a #GValue of correct type for @pspec
@Returns: whether @value contains the canonical defualt for this @pspec
<!-- ##### FUNCTION g_param_value_validate ##### -->
<para>
Ensure that the contents of @value comply with the specifications
set out by @pspec. For example, a #GParamSpecInt might require
that integers stored in @value may not be smaller than -42 and not be
greater than +42. If @value contains an integer outside of this range,
it is modified accordingly, so the resulting value will fit into the
range -42 .. +42.
</para>
@pspec:
@value:
@Returns:
@pspec: a valid #GParamSpec
@value: a #GValue of correct type for @pspec
@Returns: whether modifying @value was necessary to ensure validity
<!-- ##### FUNCTION g_param_value_convert ##### -->
<para>
This function transforms @src_value into @dest_value if possible,
and then validates @dest_value, in order for it to conform to
@pspec.
If @strict_validation is %TRUE this function will only suceed if
the transformed @dest_value complied to @pspec without modifications.
See also g_value_type_transformable(), g_value_transform() and
g_param_value_validate().
</para>
@dest_value_spec:
@src_value:
@dest_value:
@strict_validation:
@Returns:
@pspec: a valid #GParamSpec
@src_value: souce #GValue
@dest_value: destination #GValue of correct type for @pspec
@strict_validation: $TRUE requires @dest_value to conform to @pspec without modifications
@Returns: %TRUE if transformation and validation were successfull,
%FALSE otherwise and @dest_value is left untouched.
<!-- ##### FUNCTION g_param_values_cmp ##### -->
<para>
Compare @value1 with @value2 according to @pspec, and return -1, 0 or +1,
if @value1 is found to be less than, equal to or greater than @value2, respectively.
</para>
@pspec:
@value1:
@value2:
@Returns:
@pspec: a valid #GParamSpec
@value1: a #GValue of correct type for @pspec
@value2: a #GValue of correct type for @pspec
@Returns: -1, 0 or +1, for a less than, equal to or greater than result
<!-- ##### FUNCTION g_param_spec_get_qdata ##### -->
@ -250,6 +282,19 @@ not flagged "floating" anymore).
@Returns:
<!-- ##### FUNCTION g_param_spec_internal ##### -->
<para>
</para>
@param_type:
@name:
@nick:
@blurb:
@flags:
@Returns:
<!-- ##### STRUCT GParamSpecTypeInfo ##### -->
<para>
@ -322,16 +367,14 @@ not flagged "floating" anymore).
@trailer_p:
<!-- ##### FUNCTION g_param_spec_internal ##### -->
<!-- ##### FUNCTION g_param_spec_pool_list ##### -->
<para>
</para>
@param_type:
@name:
@nick:
@blurb:
@flags:
@pool:
@owner_type:
@n_pspecs_p:
@Returns:

View File

@ -283,6 +283,194 @@ used specifically for managing interface types.
@interface_data: Location of user data passed to the @interface_init and
@interface_finalize functions (optional).
<!-- ##### STRUCT GTypeValueTable ##### -->
<para>
The #GTypeValueTable provides the functions required by the #GValue implementation,
to serve as a container for values of a type.
</para>
@value_init: Default initialize @values contents by poking values
directly into the value-&gt;data array. The data array of
the #GValue passed into this function was zero-filled
with memset, so no care has to be taken to free any
old contents. E.g. for the implementation of a string
value that may never be NULL, the implementation might
look like:
<msgtext><programlisting>
{
value-&gt;data[0].v_pointer = g_strdup ("");
}
</programlisting></msgtext>
@value_free: Free any old contents that might be left in the
data array of the passed in @value. No resources may
remain allocated through the #GValue contents after
this function returns. E.g. for our above string type:
<msgtext><programlisting>
{
/* only free strings without a specific flag for static storage */
if (!(value-&gt;data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
g_free (value-&gt;data[0].v_pointer);
}
</programlisting></msgtext>
@value_copy: @dest_value is a #GValue with zero-filled data section
and @src_value is a properly setup #GValue of same or
derived type.
The purpose of this function is to copy the contents of
@src_value into @dest_value in a way, that even after
@src_value has been freed, the contents of @dest_value
remain valid. String type example:
<msgtext><programlisting>
{
dest_value-&gt;data[0].v_pointer = g_strdup (src_value-&gt;data[0].v_pointer);
}
</programlisting></msgtext>
@value_peek_pointer: If the value contents fit into a pointer, such as objects
or strings, return this pointer, so the caller can peek at
the current contents. To extend on our above string example:
<msgtext><programlisting>
{
return value-&gt;data[0].v_pointer;
}
</programlisting></msgtext>
@collect_format: A string format describing how to collect the contents of
this value, bit-by-bit. Each character in the format represents
an argument to be collected, the characters themselves indicate
the type of the argument. Currently supported arguments are:
<msgtext><variablelist>
<varlistentry><term></term><listitem><para>
'i' - Integers. passed as collect_values[].v_int.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'l' - Longs. passed as collect_values[].v_long.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'd' - Doubles. passed as collect_values[].v_double.
</para></listitem></varlistentry>
<varlistentry><term></term><listitem><para>
'p' - Pointers. passed as collect_values[].v_pointer.
</para></listitem></varlistentry>
</variablelist></msgtext>
It should be noted, that for variable argument list construction,
ANSI C promotes every type smaller than an integer to an int, and
floats to doubles. So for collection of short int or char, 'i'
needs to be used, and for collection of floats 'd'.
@collect_value: The collect_value() function is responsible for converting the
values collected from a variable argument list into contents
suitable for storage in a GValue. This function should setup
@value similar to value_init(), e.g. for a string value that
does not allow NULL pointers, it needs to either spew an error,
or do an implicit conversion by storing an empty string.
The @value passed in to this function has a zero-filled data
array, so just like for @value_init it is guaranteed to not
contain any old contents that might need freeing.
@n_collect_values is exactly the string length of @collect_format,
and @collect_values is an array of unions #GTypeCValue with
length @n_collect_values, containing the collected values
according to @collect_format.
@collect_flags is an argument provided as a hint by the caller,
which may contain the flag #G_VALUE_NOCOPY_CONTENTS indicating,
that the collected value contents may be considered "static"
for the duration of the #@value lifetime.
Thus an extra copy of the contents stored in @collect_values is
not required for assignment to @value.
For our above string example, we continue with:
<msgtext><programlisting>
{
if (!collect_values[0].v_pointer)
value->data[0].v_pointer = g_strdup ("");
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
{
value-&gt;data[0].v_pointer = collect_values[0].v_pointer;
/* keep a flag for the value_free() implementation to not free this string */
value-&gt;data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
}
else
value-&gt;data[0].v_pointer = g_strdup (collect_values[0].v_pointer);
return NULL;
}
</programlisting></msgtext>
It should be noted, that it is generally a bad idea to follow the
#G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to
reentrancy requirements and reference count assertions performed
by the GSignal code, reference counts should always be incremented
for reference counted contents stored in the value-&gt;data array.
To deviate from our string example for a moment, and taking a look
at an exemplary implementation for collect_value() of #GObject:
<msgtext><programlisting>
{
if (collect_values[0].v_pointer)
{
GObject *object = G_OBJECT (collect_values[0].v_pointer);
/* never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types */
value-&gt;data[0].v_pointer = g_object_ref (object);
return NULL;
}
else
return g_strdup_printf ("Object passed as invalid NULL pointer");
}
</programlisting></msgtext>
The reference count for valid objects is always incremented,
regardless of @collect_flags. For invalid objects, the example
returns a newly allocated string without altering @value.
Upon success, collect_value() needs to return NULL, if however
a malicious condition occurred, collect_value() may spew an
error by returning a newly allocated non-NULL string, giving
a suitable description of the error condition.
The calling code makes no assumptions about the @value
contents being valid upon error returns, @value
is simply thrown away without further freeing. As such, it is
a good idea to not allocate #GValue contents, prior to returning
an error, however, collect_values() is not obliged to return
a correctly setup @value for error returns, simply because
any non-NULL return is considered a fatal condition so further
program behaviour is undefined.
@lcopy_format: Format description of the arguments to collect for @lcopy_value,
analogous to @collect_format. Usually, @lcopy_format string consists
only of 'p's to provide lcopy_value() with pointers to storage locations.
@lcopy_value: This function is responsible for storing the @value contents into
arguments passed through a variable argument list which got
collected into @collect_values according to @lcopy_format.
@n_collect_values equals the string length of @lcopy_format,
and @collect_flags may contain #G_VALUE_NOCOPY_CONTENTS.
In contrast to collect_value(), lcopy_value() is obliged to
always properly support #G_VALUE_NOCOPY_CONTENTS.
Similar to collect_value() the function may prematurely abort
by returning a newly allocated string describing an error condition.
To complete the string example:
<msgtext><programlisting>
{
gchar **string_p = collect_values[0].v_pointer;
if (!string_p)
return g_strdup_printf ("string location passed as NULL");
if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
*string_p = value-&gt;data[0].v_pointer;
else
*string_p = g_strdup (value-&gt;data[0].v_pointer);
}
</programlisting></msgtext>
And an exemplary version of lcopy_value() for
reference-counted types:
<msgtext><programlisting>
{
GObject **object_p = collect_values[0].v_pointer;
if (!object_p)
return g_strdup_printf ("object location passed as NULL");
if (!value-&gt;data[0].v_pointer)
*object_p = NULL;
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) /* always honour */
*object_p = value-&gt;data[0].v_pointer;
else
*object_p = g_object_ref (value-&gt;data[0].v_pointer);
return NULL;
}
</programlisting></msgtext>
<!-- ##### MACRO G_TYPE_FROM_INSTANCE ##### -->
<para>
Returns the type identifier from a given @instance structure.
@ -563,6 +751,15 @@ g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
@Returns:
<!-- ##### FUNCTION g_type_interface_peek_parent ##### -->
<para>
</para>
@g_iface:
@Returns:
<!-- ##### FUNCTION g_type_children ##### -->
<para>
Return a newly allocated and 0 terminated array of type IDs, listing the
@ -942,17 +1139,6 @@ i.e. the next fundamental type ID that may be registered.
@Returns: The nextmost not registered fundamental type ID.
<!-- ##### FUNCTION g_type_check_flags ##### -->
<para>
Determines whether a given set of #GTypeFlags and #GTypeFundamentalFlags
are set for @type.
</para>
@type: The type to check for flags.
@flags: Bitwise combination of #GTypeFlags and #GTypeFundamentalFlags.
@Returns: #TRUE if all @flags are set for @type, #FALSE otherwise.
<!-- ##### FUNCTION g_type_create_instance ##### -->
<para>
Creates and initializes an instance of @type if @type is valid and can
@ -964,6 +1150,9 @@ fundamental types only. E.g. instances of the #GObject hierarchy
should be created via g_object_new() and <emphasis>never</emphasis>
directly through g_type_create_instance() which doesn't handle
things like singleton objects or object construction.
Note: Do <emphasis>not</emphasis> use this function, unless you're
implementing a fundamental type. Also language bindings should <emphasis>not</emphasis>
use this function but g_object_new() instead.
</para>
@type: An instantiabtable type to create an instance for.
@ -1004,64 +1193,6 @@ things like singleton objects or object construction.
@g_class:
<!-- ##### FUNCTION g_type_check_instance ##### -->
<para>
Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE()
macro.
</para>
@instance: A valid #GTypeInstance structure.
@Returns: #TRUE if @instance is valid, #FALSE otherwise.
<!-- ##### FUNCTION g_type_check_instance_cast ##### -->
<para>
</para>
@instance:
@iface_type:
@Returns:
<!-- ##### FUNCTION g_type_instance_is_a ##### -->
<para>
Determines if @instance adheres to the interface exported
by @iface_type. @iface_type is either a type that @instance
is derived from, or an interface type that is supported by
the anchestry of @instance.
</para>
@instance: A valid #GTypeInstance structure.
@iface_type: A #GType value.
@Returns: #TRUE if @instance conforms to @iface_type, #FALSE otherwise.
<!-- ##### FUNCTION g_type_check_class_cast ##### -->
<para>
</para>
@g_class:
@is_a_type:
@Returns:
<!-- ##### FUNCTION g_type_class_is_a ##### -->
<para>
</para>
@g_class:
@is_a_type:
@Returns:
<!-- ##### FUNCTION g_type_check_value ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_type_value_table_peek ##### -->
<para>
Returns the location of the #GTypeValueTable associated with @type.

View File

@ -28,14 +28,6 @@ and should never be accessed directly.
</para>
<!-- ##### STRUCT GObjectConstructParam ##### -->
<para>
</para>
@pspec:
@value:
<!-- ##### USER_FUNCTION GObjectGetPropertyFunc ##### -->
<para>
@ -155,14 +147,6 @@ Return the type id of an object.
@class:
<!-- ##### MACRO G_VALUE_HOLDS_OBJECT ##### -->
<para>
</para>
@value:
<!-- ##### FUNCTION g_object_class_install_property ##### -->
<para>
@ -234,6 +218,15 @@ Return the type id of an object.
@object:
<!-- ##### USER_FUNCTION GWeakNotify ##### -->
<para>
</para>
@data:
@where_the_object_was:
<!-- ##### FUNCTION g_object_weak_ref ##### -->
<para>
@ -497,33 +490,6 @@ to match the one used with g_object_add_weak_pointer().
@object:
<!-- ##### FUNCTION g_value_set_object ##### -->
<para>
</para>
@value:
@v_object:
<!-- ##### FUNCTION g_value_get_object ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_dup_object ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### MACRO G_OBJECT_WARN_INVALID_PROPERTY_ID ##### -->
<para>

View File

@ -350,23 +350,6 @@ g_signal_query().
@var_args:
<!-- ##### FUNCTION g_signal_connect_data ##### -->
<para>
</para>
@instance:
@detailed_signal:
@c_handler:
@data:
@destroy_data:
@connect_flags:
@Returns:
<!-- # Unused Parameters # -->
@swapped:
@after:
<!-- ##### MACRO g_signal_connect ##### -->
<para>
@ -416,6 +399,31 @@ g_signal_query().
@after:
<!-- ##### ENUM GConnectFlags ##### -->
<para>
</para>
@G_CONNECT_AFTER:
@G_CONNECT_SWAPPED:
<!-- ##### FUNCTION g_signal_connect_data ##### -->
<para>
</para>
@instance:
@detailed_signal:
@c_handler:
@data:
@destroy_data:
@connect_flags:
@Returns:
<!-- # Unused Parameters # -->
@swapped:
@after:
<!-- ##### FUNCTION g_signal_connect_closure ##### -->
<para>

View File

@ -1,373 +0,0 @@
<!-- ##### SECTION Title ##### -->
Standard value types
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### MACRO G_VALUE_HOLDS_CHAR ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_UCHAR ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_BOOLEAN ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_INT ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_UINT ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_LONG ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_ULONG ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_FLOAT ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_DOUBLE ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_STRING ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_POINTER ##### -->
<para>
</para>
@value:
<!-- ##### MACRO G_VALUE_HOLDS_PARAM ##### -->
<para>
</para>
@value:
<!-- ##### FUNCTION g_value_set_char ##### -->
<para>
</para>
@value:
@v_char:
<!-- ##### FUNCTION g_value_get_char ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_uchar ##### -->
<para>
</para>
@value:
@v_uchar:
<!-- ##### FUNCTION g_value_get_uchar ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_boolean ##### -->
<para>
</para>
@value:
@v_boolean:
<!-- ##### FUNCTION g_value_get_boolean ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_int ##### -->
<para>
</para>
@value:
@v_int:
<!-- ##### FUNCTION g_value_get_int ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_uint ##### -->
<para>
</para>
@value:
@v_uint:
<!-- ##### FUNCTION g_value_get_uint ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_long ##### -->
<para>
</para>
@value:
@v_long:
<!-- ##### FUNCTION g_value_get_long ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_ulong ##### -->
<para>
</para>
@value:
@v_ulong:
<!-- ##### FUNCTION g_value_get_ulong ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_float ##### -->
<para>
</para>
@value:
@v_float:
<!-- ##### FUNCTION g_value_get_float ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_double ##### -->
<para>
</para>
@value:
@v_double:
<!-- ##### FUNCTION g_value_get_double ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_string ##### -->
<para>
</para>
@value:
@v_string:
<!-- ##### FUNCTION g_value_set_static_string ##### -->
<para>
</para>
@value:
@v_string:
<!-- ##### FUNCTION g_value_set_string_take_ownership ##### -->
<para>
This is an internal function introduced mainly for C marshallers.
</para>
@value:
@v_string:
<!-- ##### FUNCTION g_value_get_string ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_dup_string ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_param ##### -->
<para>
</para>
@value:
@param:
<!-- ##### FUNCTION g_value_get_param ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_dup_param ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_get_pointer ##### -->
<para>
</para>
@value:
@Returns:
<!-- ##### FUNCTION g_value_set_pointer ##### -->
<para>
</para>
@value:
@v_pointer:
<!-- ##### FUNCTION g_value_set_instance ##### -->
<para>
</para>
@value:
@instance: