mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 07:23:41 +02:00
changed prototype of g_boxed_type_register_static() to contain an optional
Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org> * gboxed.[hc]: changed prototype of g_boxed_type_register_static() to contain an optional init function and a hint at whether the boxed structure uses ref counting internally. added g_value_set_boxed_take_ownership(). made G_TYPE_BOXED an abstract value type. * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value types. * glib-genmarshal.c: argument type changes, preparation for third-party arg specification. * gobject.[hc]: cleaned up get/set property code. added g_strdup_value_contents() to improve warnings. * gparam.[hc]: added g_param_value_convert(), taking over responsibility of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so validation alterations may be valid a part of the property setting process. * gparamspecs.[hc]: made value comparisons stable (for sort applications). added GParamSpecValueArray, a param spec for value arrays and GParamSpecClosure. nuked the value exchange functions and GParamSpecCCallback. * gtype.[hc]: catch unintialized usages of the type system with g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT to flag types that introduce a value table, but can't be used for g_value_init(). cleaned up reserved type ids. * gvalue.[hc]: code cleanups and saner checking. nuked the value exchange API. implemented value transformations, we can't really "convert" values, rather transforms are an anylogy to C casts, real conversions need a param spec for validation, which is why g_param_value_convert() does real conversions now. * gvaluearray.[hc]: new files that implement a GValueArray, a struct that can hold inhomogeneous arrays of value (to that extend that it also allowes undefined values, i.e. G_VALUE_TYPE(value)==0). this is exposed to the type system as a boxed type. * gvaluetransform.c: new file implementing most of the former value exchange functions as single-sided transformations. * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added g_value_set_string_take_ownership(). * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/. * *.[hc]: many fixes and cleanups. * many warning improvements. Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org> * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS into G_VALUE_LCOPY(), this needs proper documenting. * gparam.c: fixed G_PARAM_USER_MASK. * gtype.c (type_data_make_W): (type_data_last_unref_Wm): fixed invalid memory freeing. * gobject.c (g_object_last_unref): destroy signal handlers associated with object, right before finalization. * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals that don't actually support details. * gobject.[hc]: got rid of property trailers. nuked GObject properties "data" and the "signal" variants. (g_object_connect): new convenience function to do multiple signal connections at once. (g_object_disconnect): likewise, for disconnections. * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support. * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer() as private (the latter got renamed from g_value_get_as_pointer()). Wed Mar 7 09:32:06 2001 Tim Janik <timj@gtk.org> * glib-object.h: add gvaluearray.h. * gstring.[hc]: fixup naming of g_string_sprint*. * gtypes.h: fixed GCompareDataFunc naming. Wed Mar 7 09:33:27 2001 Tim Janik <timj@gtk.org> * gobject/Makefile.am: shuffled rules to avoid excessive rebuilds. * gobject/gobject-sections.txt: updates. * gobject/tmpl/*: bunch of updates, added another patch from Eric Lemings <eric.b.lemings@lmco.com>.
This commit is contained in:
@@ -106,7 +106,7 @@ Enumeration and Flag Types
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_ENUM ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_ENUM ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -114,7 +114,7 @@ Enumeration and Flag Types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_FLAGS ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_FLAGS ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
@@ -74,6 +74,15 @@ gboxed
|
||||
@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>
|
||||
|
||||
@@ -98,8 +107,10 @@ gboxed
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@boxed_init:
|
||||
@boxed_copy:
|
||||
@boxed_free:
|
||||
@is_refcounted:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
@@ -1,58 +1,75 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
Generic values
|
||||
Generic Values
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
|
||||
A polymorphic type that can hold values of any other type.
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
The #GValue structure is basically a variable container that consists
|
||||
of a type identifier and a specific value of that type.
|
||||
The type identifier within a #GValue structure always determines the
|
||||
type of the associated value.
|
||||
To create a undefined #GValue structure, simply create a zero-filled
|
||||
#GValue structure. To intialize the #GValue, use the g_value_init()
|
||||
function. A #GValue cannot be used until it is initialized.
|
||||
The basic type operations (such as freeing and copying) are determined
|
||||
by the #GTypeValueTable associated with the type ID stored in the #GValue.
|
||||
Other #GValue operations (such as converting values between types) are
|
||||
provided by this interface.
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
The fundamental types which all support #GValue operations and thus
|
||||
can be used as a type initializer for g_value_init() are defined by
|
||||
a separate interface. See the Standard Values API for details.
|
||||
</para>
|
||||
|
||||
<!-- ##### MACRO G_VALUE_HOLDS ##### -->
|
||||
<para>
|
||||
|
||||
Returns #TRUE if @value holds (or contains) a value of @type.
|
||||
This macro will also check for @value != #NULL and issue a
|
||||
warning if the check fails.
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@g_type:
|
||||
@type:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_VALUE_TYPE ##### -->
|
||||
<para>
|
||||
|
||||
Returns the type identifier of @value.
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@value: A #GValue structure.
|
||||
|
||||
|
||||
<!-- ##### MACRO G_VALUE_TYPE_NAME ##### -->
|
||||
<para>
|
||||
|
||||
Returns the type name of @value.
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@value: A #GValue structure.
|
||||
|
||||
|
||||
<!-- ##### MACRO G_TYPE_IS_VALUE ##### -->
|
||||
<para>
|
||||
|
||||
Return whether the passed in type ID can be used for g_value_init().
|
||||
That is, this macro checks whether this type provides an implementation
|
||||
of the #GTypeValueTable functions required for a type to create a #GValue of.
|
||||
</para>
|
||||
|
||||
@type:
|
||||
@type: A #GType value.
|
||||
@Returns: Whether @type is suitable as a #GValue type.
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE ##### -->
|
||||
<para>
|
||||
|
||||
Returns #TRUE if @value is a valid and initialized #GValue structure.
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@value: A #GValue structure.
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GValueExchange ##### -->
|
||||
@@ -66,26 +83,72 @@ Generic values
|
||||
|
||||
<!-- ##### STRUCT GValue ##### -->
|
||||
<para>
|
||||
|
||||
A mostly opaque structure used to hold a #GValue object. Mostly because
|
||||
the data within the structure has protected scope: it is accessible only
|
||||
to functions within a #GTypeValueTable structure, or implementations of
|
||||
the g_value_*() API.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_init ##### -->
|
||||
<para>
|
||||
|
||||
Initializes @value with the default value of @type.
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@g_type:
|
||||
@value: A zero-filled (uninitialized) #GValue structure.
|
||||
@g_type: Type the #GValue should hold values of.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_copy ##### -->
|
||||
<para>
|
||||
|
||||
Copies the value of @src_value into @dest_value.
|
||||
</para>
|
||||
|
||||
@src_value:
|
||||
@dest_value:
|
||||
@src_value: An initialized #GValue structure.
|
||||
@dest_value: An initialized #GValue structure of the same type as @src_value.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_reset ##### -->
|
||||
<para>
|
||||
Clears the current value in @value and resets it to the default value
|
||||
(as if the value had just been initialized).
|
||||
</para>
|
||||
|
||||
@value: An initialized #GValue structure.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_unset ##### -->
|
||||
<para>
|
||||
Clears the current value in @value and "unsets" the type,
|
||||
this releases all resources associated with this GValue.
|
||||
An unset value is the same as an uninitialized (zero-filled)
|
||||
#GValue structure.
|
||||
</para>
|
||||
|
||||
@value: An initialized #GValue structure.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_fits_pointer ##### -->
|
||||
<para>
|
||||
Determines if @value will fit inside the size of a pointer value.
|
||||
This is an internal function introduced mainly for C marshallers.
|
||||
</para>
|
||||
|
||||
@value: An initialized #GValue structure.
|
||||
@Returns: #TRUE if @value will fit inside a pointer value.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_peek_pointer ##### -->
|
||||
<para>
|
||||
Return the value contents as pointer. This function asserts that
|
||||
g_value_fits_pointer() returned #TRUE for the passed in value.
|
||||
This is an internal function introduced mainly for C marshallers.
|
||||
</para>
|
||||
|
||||
@value: An initialized #GValue structure.
|
||||
@Returns: #TRUE if @value will fit inside a pointer value.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_convert ##### -->
|
||||
@@ -98,58 +161,191 @@ Generic values
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_reset ##### -->
|
||||
<!-- ##### 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:
|
||||
@value_init: Default initialize @values contents by poking values
|
||||
directly into the value->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->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->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
|
||||
g_free (value->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->data[0].v_pointer = g_strdup (src_value->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->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 guarranteed 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->data[0].v_pointer = collect_values[0].v_pointer;
|
||||
/* keep a flag for the value_free() implementation to not free this string */
|
||||
value->data[1].v_uint = G_VALUE_NOCOPY_CONTENTS;
|
||||
}
|
||||
else
|
||||
value->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->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);
|
||||
|
||||
<!-- ##### FUNCTION g_value_unset ##### -->
|
||||
<para>
|
||||
/* never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types */
|
||||
value->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 occoured, 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 consist
|
||||
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;
|
||||
|
||||
</para>
|
||||
if (!string_p)
|
||||
return g_strdup_printf ("string location passed as NULL");
|
||||
|
||||
@value:
|
||||
if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
|
||||
*string_p = value->data[0].v_pointer;
|
||||
else
|
||||
*string_p = g_strdup (value->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;
|
||||
|
||||
<!-- ##### FUNCTION g_value_fits_pointer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_values_exchange ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value1:
|
||||
@value2:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_types_exchangable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value_type1:
|
||||
@value_type2:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_register_exchange_func ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value_type1:
|
||||
@value_type2:
|
||||
@func:
|
||||
|
||||
if (!object_p)
|
||||
return g_strdup_printf ("object location passed as NULL");
|
||||
if (!value->data[0].v_pointer)
|
||||
*object_p = NULL;
|
||||
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) /* always honour */
|
||||
*object_p = value->data[0].v_pointer;
|
||||
else
|
||||
*object_p = g_object_ref (value->data[0].v_pointer);
|
||||
return NULL;
|
||||
}
|
||||
</programlisting></msgtext>
|
||||
|
||||
|
@@ -1,350 +1,36 @@
|
||||
<!-- ##### SECTION ./tmpl/closures.sgml:Long_Description ##### -->
|
||||
<!-- ##### FUNCTION g_type_value_is_a ##### -->
|
||||
<para>
|
||||
Determines if @value is a #GValue whose type conforms to @type.
|
||||
</para>
|
||||
|
||||
@value: A valid #GValue structure.
|
||||
@type: A #GType value.
|
||||
@Returns: #TRUE if @value is a #GValue of @type or #FALSE if not.
|
||||
|
||||
<!-- ##### FUNCTION g_value_register_exchange_func ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value_type1:
|
||||
@value_type2:
|
||||
@func:
|
||||
|
||||
<!-- ##### SECTION ./tmpl/closures.sgml:See_Also ##### -->
|
||||
<!-- ##### FUNCTION g_value_types_exchangable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/closures.sgml:Short_Description ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/closures.sgml:Title ##### -->
|
||||
Closures
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gtypemodule.sgml.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gtypemodule.sgml.sgml:See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gtypemodule.sgml.sgml:Short_Description ##### -->
|
||||
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/gtypemodule.sgml.sgml:Title ##### -->
|
||||
gtypemodule.sgml
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/signals.sgml:Long_Description ##### -->
|
||||
<para>
|
||||
The basic concept of the signal system is that of the <emphasis>emission</emphasis>
|
||||
of a signal.
|
||||
Signals are introduced per-type and are identified through strings.
|
||||
Signals introduced for a parent type are availale in derived types as well,
|
||||
so basically they are a per-type facility that is inherited.
|
||||
A signal emission mainly involves invocation of a certain set of callbacks in
|
||||
precisely defined manner. There are two main categories of such callbacks,
|
||||
per-object
|
||||
<footnote><para> Although signals can deal with any kind of type, i'm
|
||||
referring to those types as "object types" in the following, simply
|
||||
because that is the context most users will encounter signals in.
|
||||
</para></footnote>
|
||||
ones and user provided ones.
|
||||
The per-object callbacks are most often referred to as "object method
|
||||
handler" or "default (signal) handler", while user provided callbacks are
|
||||
usually just called "signal handler".
|
||||
The object method handler is provided at signal creation time (this most
|
||||
frequently happens at the end of an object class' creation), while user
|
||||
provided handlers are frequently connected and disconnected to/from a certain
|
||||
signal on certain object instances.
|
||||
</para>
|
||||
<para>
|
||||
A signal emission consists of five stages, unless prematurely stopped:
|
||||
<variablelist>
|
||||
<varlistentry><term></term><listitem><para>
|
||||
1 - Invocation of the object method handler for %G_SIGNAL_RUN_FIRST signals
|
||||
</para></listitem></varlistentry>
|
||||
<varlistentry><term></term><listitem><para>
|
||||
2 - Invocation of normal user-provided signal handlers (<emphasis>after</emphasis> flag %FALSE)
|
||||
</para></listitem></varlistentry>
|
||||
<varlistentry><term></term><listitem><para>
|
||||
3 - Invocation of the object method handler for %G_SIGNAL_RUN_LAST signals
|
||||
</para></listitem></varlistentry>
|
||||
<varlistentry><term></term><listitem><para>
|
||||
4 - Invocation of user provided signal handlers, connected with an <emphasis>after</emphasis> flag of %TRUE
|
||||
</para></listitem></varlistentry>
|
||||
<varlistentry><term></term><listitem><para>
|
||||
5 - Invocation of the object method handler for %G_SIGNAL_RUN_CLEANUP signals
|
||||
</para></listitem></varlistentry>
|
||||
</variablelist>
|
||||
The user provided signal handlers are called in the order they were
|
||||
connected in.
|
||||
All handlers may prematurely stop a signal emission, and any number of
|
||||
handlers may be connected, disconnected, blocked or unblocked during
|
||||
a signal emission.
|
||||
There are certain criteria for skipping user handlers in stages 2 and 4
|
||||
of a signal emission.
|
||||
First, user handlers may be <emphasis>blocked</emphasis>, blocked handlers are omitted
|
||||
during callback invocation, to return from the "blocked" state, a
|
||||
handler has to get unblocked exactly the same amount of times
|
||||
it has been blocked before.
|
||||
Second, upon emission of a %G_SIGNAL_DETAILED signal, an additional
|
||||
"detail" argument passed in to g_signal_emit() has to match the detail
|
||||
argument of the signal handler currently subject to invocation.
|
||||
Specification of no detail argument for signal handlers (omission of the
|
||||
detail part of the signal specification upon connection) serves as a
|
||||
wildcard and matches any detail argument passed in to emission.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/signals.sgml:See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/signals.sgml:Short_Description ##### -->
|
||||
Signals provide a means for customization of object behaviour and are used
|
||||
as general purpose notification mechanism.
|
||||
|
||||
|
||||
<!-- ##### SECTION ./tmpl/signals.sgml:Title ##### -->
|
||||
Signals
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GObjectGetParamFunc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_id:
|
||||
@value:
|
||||
@pspec:
|
||||
@trailer:
|
||||
|
||||
<!-- ##### USER_FUNCTION GObjectSetParamFunc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_id:
|
||||
@value:
|
||||
@pspec:
|
||||
@trailer:
|
||||
|
||||
<!-- ##### ENUM GSignalType ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@G_SIGNAL_RUN_FIRST:
|
||||
@G_SIGNAL_RUN_LAST:
|
||||
@G_SIGNAL_RUN_CLEANUP:
|
||||
@G_SIGNAL_NO_RECURSE:
|
||||
@G_SIGNAL_ACTION:
|
||||
@G_SIGNAL_NO_HOOKS:
|
||||
|
||||
<!-- ##### USER_FUNCTION GTypePluginFillInterfaceInfo ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@plugin:
|
||||
@interface_type:
|
||||
@instance_type:
|
||||
@info:
|
||||
|
||||
<!-- ##### USER_FUNCTION GTypePluginFillTypeInfo ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@plugin:
|
||||
@g_type:
|
||||
@info:
|
||||
@value_table:
|
||||
|
||||
<!-- ##### USER_FUNCTION GTypePluginRef ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@plugin:
|
||||
|
||||
<!-- ##### USER_FUNCTION GTypePluginUnRef ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@plugin:
|
||||
|
||||
<!-- ##### STRUCT GTypePluginVTable ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@plugin_ref:
|
||||
@plugin_unref:
|
||||
@complete_type_info:
|
||||
@complete_interface_info:
|
||||
|
||||
<!-- ##### MACRO G_IS_PARAM_VALUE ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pspec:
|
||||
@value:
|
||||
|
||||
<!-- ##### MACRO G_NOTIFY_PRIORITY ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### MACRO G_WARN_INVALID_PARAM_ID ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_id:
|
||||
@pspec:
|
||||
|
||||
<!-- ##### FUNCTION g_object_class_find_param_spec ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@oclass:
|
||||
@param_name:
|
||||
@value_type1:
|
||||
@value_type2:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_object_class_install_param ##### -->
|
||||
<!-- ##### FUNCTION g_values_exchange ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@oclass:
|
||||
@param_id:
|
||||
@pspec:
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_param ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_name:
|
||||
@value:
|
||||
|
||||
<!-- ##### FUNCTION g_object_queue_param_changed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_name:
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_param ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@param_name:
|
||||
@value:
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_hash_table_insert ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@hash_table:
|
||||
@pspec:
|
||||
@owner_type:
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_hash_table_lookup ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@hash_table:
|
||||
@param_name:
|
||||
@owner_type:
|
||||
@try_ancestors:
|
||||
@trailer:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_hash_table_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_hash_table_remove ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@hash_table:
|
||||
@pspec:
|
||||
|
||||
<!-- ##### FUNCTION g_signal_type_closure_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@itype:
|
||||
@struct_offset:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_signals_destroy ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@itype:
|
||||
|
||||
<!-- ##### FUNCTION g_type_conforms_to ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@type:
|
||||
@iface_type:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_type_instance_conforms_to ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@instance:
|
||||
@iface_type:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_type_is_dynamic ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@type:
|
||||
@flags:
|
||||
@Returns:
|
||||
|
||||
<!-- ##### FUNCTION g_type_value_conforms_to ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@type:
|
||||
@value1:
|
||||
@value2:
|
||||
@Returns:
|
||||
|
||||
|
@@ -34,7 +34,6 @@ The Base Object Type
|
||||
|
||||
@pspec:
|
||||
@value:
|
||||
@trailer:
|
||||
|
||||
<!-- ##### USER_FUNCTION GObjectGetPropertyFunc ##### -->
|
||||
<para>
|
||||
@@ -45,6 +44,7 @@ The Base Object Type
|
||||
@property_id:
|
||||
@value:
|
||||
@pspec:
|
||||
<!-- # Unused Parameters # -->
|
||||
@trailer:
|
||||
|
||||
|
||||
@@ -57,9 +57,26 @@ The Base Object Type
|
||||
@property_id:
|
||||
@value:
|
||||
@pspec:
|
||||
<!-- # Unused Parameters # -->
|
||||
@trailer:
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GObjectFinalizeFunc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_TYPE_IS_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@type:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
@@ -68,6 +85,30 @@ The Base Object Type
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_OBJECT_CLASS ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_OBJECT_CLASS ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_OBJECT_GET_CLASS ##### -->
|
||||
<para>
|
||||
|
||||
@@ -108,7 +149,7 @@ The Base Object Type
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_OBJECT ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -116,46 +157,6 @@ The Base Object Type
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_TYPE_IS_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@type:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_OBJECT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_OBJECT_CLASS ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_OBJECT_CLASS ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@class:
|
||||
|
||||
|
||||
<!-- ##### USER_FUNCTION GObjectFinalizeFunc ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_class_install_property ##### -->
|
||||
<para>
|
||||
|
||||
@@ -189,112 +190,6 @@ The Base Object Type
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_new_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object_type:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
@Returns:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@Varargs:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@Varargs:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_freeze_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_thaw_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_ref ##### -->
|
||||
<para>
|
||||
|
||||
@@ -312,47 +207,78 @@ The Base Object Type
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_qdata ##### -->
|
||||
<!-- ##### FUNCTION g_object_connect ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@signal_spec:
|
||||
@Varargs:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_qdata ##### -->
|
||||
<!-- ##### FUNCTION g_object_disconnect ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_qdata_full ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@data:
|
||||
@destroy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_steal_qdata ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@signal_spec:
|
||||
@Varargs:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@Varargs:
|
||||
@Returns:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@Varargs:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_freeze_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_thaw_notify ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_data ##### -->
|
||||
<para>
|
||||
|
||||
@@ -394,6 +320,113 @@ The Base Object Type
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_qdata ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_qdata ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_qdata_full ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@data:
|
||||
@destroy:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_steal_qdata ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@quark:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_property ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@property_name:
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_new_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object_type:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
@Returns:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_set_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_get_valist ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@first_property_name:
|
||||
@var_args:
|
||||
<!-- # Unused Parameters # -->
|
||||
@first_param_name:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_watch_closure ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@closure:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_set_object ##### -->
|
||||
<para>
|
||||
|
||||
@@ -421,15 +454,6 @@ The Base Object Type
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_object_watch_closure ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@object:
|
||||
@closure:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_OBJECT_WARN_INVALID_PROPERTY_ID ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -118,6 +118,7 @@ Parameter Specifications
|
||||
@G_PARAM_WRITABLE:
|
||||
@G_PARAM_CONSTRUCT:
|
||||
@G_PARAM_CONSTRUCT_ONLY:
|
||||
@G_PARAM_LAX_VALIDATION:
|
||||
@G_PARAM_PRIVATE:
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_ref ##### -->
|
||||
@@ -293,8 +294,9 @@ Parameter Specifications
|
||||
@param_name:
|
||||
@owner_type:
|
||||
@walk_ancestors:
|
||||
@trailer_p:
|
||||
@Returns:
|
||||
<!-- # Unused Parameters # -->
|
||||
@trailer_p:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_internal ##### -->
|
||||
|
@@ -15,8 +15,8 @@ so basically they are a per-type facility that is inherited.
|
||||
A signal emission mainly involves invocation of a certain set of callbacks in
|
||||
precisely defined manner. There are two main categories of such callbacks,
|
||||
per-object
|
||||
<footnote><para> Although signals can deal with any kind of type, i'm
|
||||
referring to those types as "object types" in the following, simply
|
||||
<footnote><para> Although signals can deal with any kind of instantiatable type,
|
||||
i'm referring to those types as "object types" in the following, simply
|
||||
because that is the context most users will encounter signals in.
|
||||
</para></footnote>
|
||||
ones and user provided ones.
|
||||
@@ -182,6 +182,27 @@ filled in by the g_signal_query() function.
|
||||
#gpointer data2);
|
||||
</programlisting></msgtext>
|
||||
|
||||
<!-- ##### MACRO G_SIGNAL_TYPE_STATIC_SCOPE ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### MACRO G_SIGNAL_MATCH_MASK ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### MACRO G_SIGNAL_FLAGS_MASK ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_signal_newc ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -238,22 +238,6 @@ Standard Parameter Types
|
||||
@pspec:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_PARAM_SPEC_CCALLBACK ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pspec:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_PARAM_SPEC_CCALLBACK ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@pspec:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_PARAM_SPEC_PARAM ##### -->
|
||||
<para>
|
||||
|
||||
@@ -414,13 +398,6 @@ Standard Parameter Types
|
||||
|
||||
@parent_instance:
|
||||
|
||||
<!-- ##### STRUCT GParamSpecCCallback ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@parent_instance:
|
||||
|
||||
<!-- ##### STRUCT GParamSpecParam ##### -->
|
||||
<para>
|
||||
|
||||
@@ -642,18 +619,6 @@ Standard Parameter Types
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_ccallback ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@nick:
|
||||
@blurb:
|
||||
@flags:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_param_spec_param ##### -->
|
||||
<para>
|
||||
|
||||
|
@@ -178,50 +178,48 @@ interfaces and C++ classes containing only pure virtual functions.
|
||||
The predefined identifiers of the reserved fundamental types.
|
||||
</para>
|
||||
|
||||
@G_TYPE_INVALID: Usually a return value indicating an error.
|
||||
@G_TYPE_NONE: A synonym for the "void" type in C.
|
||||
@G_TYPE_INTERFACE: Root type of all interface types.
|
||||
@G_TYPE_CHAR: Identifier for the built-in type "gchar".
|
||||
@G_TYPE_UCHAR: Identifier for the built-in type "guchar".
|
||||
@G_TYPE_BOOLEAN: Identifier for the built-in type "gboolean".
|
||||
@G_TYPE_INT: Identifier for the built-in type "gint".
|
||||
@G_TYPE_UINT: Identifier for the built-in type "guint".
|
||||
@G_TYPE_LONG: Identifier for the built-in type "glong".
|
||||
@G_TYPE_ULONG: Identifier for the built-in type "gulong".
|
||||
@G_TYPE_ENUM: Identifier for the "#GEnum" type.
|
||||
@G_TYPE_FLAGS: Identifier for the "#GFlags" type.
|
||||
@G_TYPE_FLOAT: Identifier for the built-in type "gfloat".
|
||||
@G_TYPE_INVALID: Usually a return value indicating an error.
|
||||
@G_TYPE_NONE: A synonym for the "void" type in C.
|
||||
@G_TYPE_INTERFACE: Root type of all interface types.
|
||||
@G_TYPE_CHAR: Identifier for the built-in type "gchar".
|
||||
@G_TYPE_UCHAR: Identifier for the built-in type "guchar".
|
||||
@G_TYPE_BOOLEAN: Identifier for the built-in type "gboolean".
|
||||
@G_TYPE_INT: Identifier for the built-in type "gint".
|
||||
@G_TYPE_UINT: Identifier for the built-in type "guint".
|
||||
@G_TYPE_LONG: Identifier for the built-in type "glong".
|
||||
@G_TYPE_ULONG: Identifier for the built-in type "gulong".
|
||||
@G_TYPE_ENUM: Identifier for the "#GEnum" type.
|
||||
@G_TYPE_FLAGS: Identifier for the "#GFlags" type.
|
||||
@G_TYPE_FLOAT: Identifier for the built-in type "gfloat".
|
||||
@G_TYPE_DOUBLE: Identifier for the built-in type "gdouble".
|
||||
@G_TYPE_STRING: Identifier for a pointer to a null-terminated string "gchar*".
|
||||
@G_TYPE_PARAM: Identifier for the "#GParam" type.
|
||||
@G_TYPE_BOXED: Identifier for the "#GBoxed" type.
|
||||
@G_TYPE_POINTER: Identifier for anonymous pointers "void*".
|
||||
@G_TYPE_CCALLBACK: Identifier for a pointer to a C function.
|
||||
@G_TYPE_POINTER: Identifier for anonymous pointers "void*".
|
||||
@G_TYPE_BOXED: Identifier for the "#GBoxed" type.
|
||||
@G_TYPE_PARAM: Identifier for the "#GParam" type.
|
||||
@G_TYPE_OBJECT: Identifier for the "#GObject" type.
|
||||
@G_TYPE_GTK_SIGNAL: Reserved for use by the Gtk+ software package.
|
||||
@G_TYPE_BSE_PROCEDURE: Reserved for use by the BSE software package.
|
||||
@G_TYPE_BSE_TIME: Reserved for use by the BSE software package.
|
||||
@G_TYPE_BSE_NOTE: Reserved for use by the BSE software package.
|
||||
@G_TYPE_BSE_DOTS: Reserved for use by the BSE software package.
|
||||
@G_TYPE_GLE_GOBJECT: Reserved for use by the GLE software package.
|
||||
@G_TYPE_LAST_RESERVED_FUNDAMENTAL: New third-party fundamental types have to use IDs higher than this.
|
||||
@G_TYPE_PARAM_CHAR: Identifier for the "#GParamSpecChar" type.
|
||||
@G_TYPE_PARAM_UCHAR: Identifier for the "#GParamSpecUChar" type.
|
||||
@G_TYPE_PARAM_BOOLEAN: Identifier for the "#GParamSpecBoolean" type.
|
||||
@G_TYPE_PARAM_INT: Identifier for the "#GParamSpecInt" type.
|
||||
@G_TYPE_PARAM_UINT: Identifier for the "#GParamSpecUInt" type.
|
||||
@G_TYPE_PARAM_LONG: Identifier for the "#GParamSpecLong" type.
|
||||
@G_TYPE_PARAM_ULONG: Identifier for the "#GParamSpecULong" type.
|
||||
@G_TYPE_PARAM_ENUM: Identifier for the "#GParamSpecEnum" type.
|
||||
@G_TYPE_PARAM_FLAGS: Identifier for the "#GParamSpecFlags" type.
|
||||
@G_TYPE_PARAM_FLOAT: Identifier for the "#GParamSpecFloat" type.
|
||||
@G_TYPE_PARAM_DOUBLE: Identifier for the "#GParamSpecDouble" type.
|
||||
@G_TYPE_PARAM_STRING: Identifier for the "#GParamSpecString" type.
|
||||
@G_TYPE_PARAM_PARAM: Identifier for the "#GParamSpecParam" type.
|
||||
@G_TYPE_PARAM_POINTER: Identifier for the "#GParamSpecPointer" type.
|
||||
@G_TYPE_PARAM_CCALLBACK: Identifier for the "#GParamSpecCCallback" type.
|
||||
@G_TYPE_PARAM_BOXED: Identifier for the "#GParamSpecBoxed" type.
|
||||
@G_TYPE_PARAM_OBJECT: Identifier for the "#GParamSpecObject" type.
|
||||
@G_TYPE_RESERVED_BSE_FIRST: First fundamental type ID reserved for BSE.
|
||||
@G_TYPE_RESERVED_BSE_LAST: Last fundamental type ID reserved for BSE.
|
||||
@G_TYPE_RESERVED_LAST_FUNDAMENTAL: Last reserved fundamental type ID.
|
||||
@G_TYPE_CLOSURE:
|
||||
@G_TYPE_VALUE_ARRAY:
|
||||
@G_TYPE_PARAM_CHAR: Identifier for the "#GParamSpecChar" type.
|
||||
@G_TYPE_PARAM_UCHAR: Identifier for the "#GParamSpecUChar" type.
|
||||
@G_TYPE_PARAM_BOOLEAN: Identifier for the "#GParamSpecBoolean" type.
|
||||
@G_TYPE_PARAM_INT: Identifier for the "#GParamSpecInt" type.
|
||||
@G_TYPE_PARAM_UINT: Identifier for the "#GParamSpecUInt" type.
|
||||
@G_TYPE_PARAM_LONG: Identifier for the "#GParamSpecLong" type.
|
||||
@G_TYPE_PARAM_ULONG: Identifier for the "#GParamSpecULong" type.
|
||||
@G_TYPE_PARAM_ENUM: Identifier for the "#GParamSpecEnum" type.
|
||||
@G_TYPE_PARAM_FLAGS: Identifier for the "#GParamSpecFlags" type.
|
||||
@G_TYPE_PARAM_FLOAT: Identifier for the "#GParamSpecFloat" type.
|
||||
@G_TYPE_PARAM_DOUBLE: Identifier for the "#GParamSpecDouble" type.
|
||||
@G_TYPE_PARAM_STRING: Identifier for the "#GParamSpecString" type.
|
||||
@G_TYPE_PARAM_PARAM: Identifier for the "#GParamSpecParam" type.
|
||||
@G_TYPE_PARAM_BOXED: Identifier for the "#GParamSpecBoxed" type.
|
||||
@G_TYPE_PARAM_POINTER: Identifier for the "#GParamSpecPointer" type.
|
||||
@G_TYPE_PARAM_VALUE_ARRAY: Identifier for the "#GParamSpecValueArray" type.
|
||||
@G_TYPE_PARAM_CLOSURE: Identifier for the "#GParamClosure" type.
|
||||
@G_TYPE_PARAM_OBJECT: Identifier for the "#GParamSpecObject" type.
|
||||
|
||||
<!-- ##### STRUCT GTypeInterface ##### -->
|
||||
<para>
|
||||
@@ -256,8 +254,8 @@ across invocation of g_type_register_static().
|
||||
@instance_size: Size of the instance (object) structure (required for instantiatable types only).
|
||||
@n_preallocs: Number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching).
|
||||
@instance_init: Location of the instance initialization function (optional, for instantiatable types only).
|
||||
@value_table: Function table for generic handling of GValues of this type (usualy only usefull for
|
||||
fundamental types).
|
||||
@value_table: A #GTypeValueTable function table for generic handling of GValues of this type (usualy only
|
||||
usefull for fundamental types).
|
||||
|
||||
<!-- ##### STRUCT GTypeFundamentalInfo ##### -->
|
||||
<para>
|
||||
@@ -278,20 +276,6 @@ 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>
|
||||
|
||||
</para>
|
||||
|
||||
@value_init:
|
||||
@value_free:
|
||||
@value_copy:
|
||||
@value_peek_pointer:
|
||||
@collect_format:
|
||||
@collect_value:
|
||||
@lcopy_format:
|
||||
@lcopy_value:
|
||||
|
||||
<!-- ##### MACRO G_TYPE_FROM_INSTANCE ##### -->
|
||||
<para>
|
||||
Returns the type identifier from a given @instance structure.
|
||||
@@ -423,8 +407,8 @@ Return the unique name that is assigned to a type ID (this is the preferred meth
|
||||
to find out whether a specific type has been registered for the passed in ID yet).
|
||||
</para>
|
||||
|
||||
@type: Type to return name for.
|
||||
@Returns: Static type name or NULL.
|
||||
@type: Type to return name for.
|
||||
@Returns: Static type name or NULL.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_type_qname ##### -->
|
||||
@@ -458,17 +442,17 @@ If the passed in type has no parent, i.e. is a fundamental type, 0 is returned.
|
||||
|
||||
<!-- ##### FUNCTION g_type_next_base ##### -->
|
||||
<para>
|
||||
Given a @type and a @base_type which is contained in its anchestry, return
|
||||
the type that @base_type is the direct parent type for.
|
||||
In other words, for a given type branch, e.g. Root-Derived1-Derived2-Leaf, specified
|
||||
through @type=Leaf, return the nextmost child of @base_type. In this example, for
|
||||
@base_type=Derived1, the returned value would be Derived2, for @base_type=Root, the
|
||||
returned value would be Derived1.
|
||||
Given a @leaf_type and a @root_type which is contained in its anchestry, return
|
||||
the type that @root_type is the immediate parent of.
|
||||
In other words, this function determines the type that is derived directly from
|
||||
@root_type which is also a base class of @leaf_type. Given a root type and a
|
||||
leaf type, this function can be used to determine the types and order in which
|
||||
the leaf type is descended from the root type.
|
||||
</para>
|
||||
|
||||
@type: Descendant of @base_type and the type to be returned.
|
||||
@base_type: Direct parent of the returned type.
|
||||
@Returns: Immediate child of @base_type and anchestor of @type.
|
||||
@leaf_type: Descendant of @root_type and the type to be returned.
|
||||
@root_type: Immediate parent of the returned type.
|
||||
@Returns: Immediate child of @root_type and anchestor of @leaf_type.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_type_is_a ##### -->
|
||||
@@ -799,6 +783,7 @@ Bit masks used to check or determine characteristics of a type.
|
||||
|
||||
@G_TYPE_FLAG_ABSTRACT: Indicates an abstract type. No instances can be
|
||||
created for an abstract type.
|
||||
@G_TYPE_FLAG_VALUE_ABSTRACT:
|
||||
|
||||
<!-- ##### ENUM GTypeFundamentalFlags ##### -->
|
||||
<para>
|
||||
@@ -1034,16 +1019,6 @@ the anchestry of @instance.
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_type_value_is_a ##### -->
|
||||
<para>
|
||||
Determines if @value is a #GValue whose type conforms to @type.
|
||||
</para>
|
||||
|
||||
@value: A valid #GValue structure.
|
||||
@type: A #GType value.
|
||||
@Returns: #TRUE if @value is a #GValue of @type or #FALSE if not.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_type_value_table_peek ##### -->
|
||||
<para>
|
||||
Returns the location of the #GTypeValueTable associated with @type.
|
||||
|
@@ -9,12 +9,14 @@ Standard value types
|
||||
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_CHAR ##### -->
|
||||
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_CHAR ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -22,7 +24,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_UCHAR ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_UCHAR ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -30,7 +32,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_BOOLEAN ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_BOOLEAN ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -38,7 +40,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_INT ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_INT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -46,7 +48,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_UINT ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_UINT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -54,7 +56,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_LONG ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_LONG ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -62,7 +64,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_ULONG ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_ULONG ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -70,7 +72,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_FLOAT ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_FLOAT ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -78,7 +80,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_DOUBLE ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_DOUBLE ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -86,7 +88,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_STRING ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_STRING ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -94,7 +96,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_POINTER ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_POINTER ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -102,15 +104,7 @@ Standard value types
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_CCALLBACK ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
|
||||
|
||||
<!-- ##### MACRO G_IS_VALUE_PARAM ##### -->
|
||||
<!-- ##### MACRO G_VALUE_HOLDS_PARAM ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
@@ -298,6 +292,15 @@ Standard value types
|
||||
@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>
|
||||
|
||||
@@ -343,16 +346,6 @@ Standard value types
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_get_ccallback ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@callback_func:
|
||||
@callback_data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_get_pointer ##### -->
|
||||
<para>
|
||||
|
||||
@@ -371,25 +364,6 @@ Standard value types
|
||||
@v_pointer:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_get_as_pointer ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_set_ccallback ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@value:
|
||||
@callback_func:
|
||||
@callback_data:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION g_value_set_instance ##### -->
|
||||
<para>
|
||||
|
||||
|
Reference in New Issue
Block a user