<refentry id="gobject-The-Base-Object-Type">
<refmeta>
<refentrytitle>GObject</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GOBJECT Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>GObject</refname><refpurpose>The base object type.</refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>
<synopsis>

#include &lt;gobject.h&gt;


struct      <link linkend="GObject">GObject</link>;
struct      <link linkend="GObjectClass">GObjectClass</link>;
void        (<link linkend="GObjectGetPropertyFunc">*GObjectGetPropertyFunc</link>)       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="guint">guint</link> property_id,
                                             <link linkend="GValue">GValue</link> *value,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);
void        (<link linkend="GObjectSetPropertyFunc">*GObjectSetPropertyFunc</link>)       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="guint">guint</link> property_id,
                                             const <link linkend="GValue">GValue</link> *value,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);
void        (<link linkend="GObjectFinalizeFunc">*GObjectFinalizeFunc</link>)          (<link linkend="GObject">GObject</link> *object);
#define     <link linkend="G-TYPE-IS-OBJECT-CAPS">G_TYPE_IS_OBJECT</link>                (type)
#define     <link linkend="G-OBJECT-CAPS">G_OBJECT</link>                        (object)
#define     <link linkend="G-IS-OBJECT-CAPS">G_IS_OBJECT</link>                     (object)
#define     <link linkend="G-OBJECT-CLASS-CAPS">G_OBJECT_CLASS</link>                  (class)
#define     <link linkend="G-IS-OBJECT-CLASS-CAPS">G_IS_OBJECT_CLASS</link>               (class)
#define     <link linkend="G-OBJECT-GET-CLASS-CAPS">G_OBJECT_GET_CLASS</link>              (object)
#define     <link linkend="G-OBJECT-TYPE-CAPS">G_OBJECT_TYPE</link>                   (object)
#define     <link linkend="G-OBJECT-TYPE-NAME-CAPS">G_OBJECT_TYPE_NAME</link>              (object)
#define     <link linkend="G-OBJECT-CLASS-TYPE-CAPS">G_OBJECT_CLASS_TYPE</link>             (class)
#define     <link linkend="G-OBJECT-CLASS-NAME-CAPS">G_OBJECT_CLASS_NAME</link>             (class)
void        <link linkend="g-object-class-install-property">g_object_class_install_property</link> (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             <link linkend="guint">guint</link> property_id,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);
<link linkend="GParamSpec">GParamSpec</link>* <link linkend="g-object-class-find-property">g_object_class_find_property</link>    (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             const <link linkend="gchar">gchar</link> *property_name);
<link linkend="GParamSpec">GParamSpec</link>** <link linkend="g-object-class-list-properties">g_object_class_list_properties</link> (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             <link linkend="guint">guint</link> *n_properties);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-new">g_object_new</link>                    (<link linkend="GType">GType</link> object_type,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-newv">g_object_newv</link>                   (<link linkend="GType">GType</link> object_type,
                                             <link linkend="guint">guint</link> n_parameters,
                                             <link linkend="GParameter">GParameter</link> *parameters);
struct      <link linkend="GParameter">GParameter</link>;
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-ref">g_object_ref</link>                    (<link linkend="gpointer">gpointer</link> object);
void        <link linkend="g-object-unref">g_object_unref</link>                  (<link linkend="gpointer">gpointer</link> object);
void        (<link linkend="GWeakNotify">*GWeakNotify</link>)                  (<link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GObject">GObject</link> *where_the_object_was);
void        <link linkend="g-object-weak-ref">g_object_weak_ref</link>               (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GWeakNotify">GWeakNotify</link> notify,
                                             <link linkend="gpointer">gpointer</link> data);
void        <link linkend="g-object-weak-unref">g_object_weak_unref</link>             (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GWeakNotify">GWeakNotify</link> notify,
                                             <link linkend="gpointer">gpointer</link> data);
void        <link linkend="g-object-add-weak-pointer">g_object_add_weak_pointer</link>       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="gpointer">gpointer</link> *weak_pointer_location);
void        <link linkend="g-object-remove-weak-pointer">g_object_remove_weak_pointer</link>    (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="gpointer">gpointer</link> *weak_pointer_location);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-connect">g_object_connect</link>                (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);
void        <link linkend="g-object-disconnect">g_object_disconnect</link>             (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);
void        <link linkend="g-object-set">g_object_set</link>                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);
void        <link linkend="g-object-get">g_object_get</link>                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);
void        <link linkend="g-object-notify">g_object_notify</link>                 (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name);
void        <link linkend="g-object-freeze-notify">g_object_freeze_notify</link>          (<link linkend="GObject">GObject</link> *object);
void        <link linkend="g-object-thaw-notify">g_object_thaw_notify</link>            (<link linkend="GObject">GObject</link> *object);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-get-data">g_object_get_data</link>               (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key);
void        <link linkend="g-object-set-data">g_object_set_data</link>               (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key,
                                             <link linkend="gpointer">gpointer</link> data);
void        <link linkend="g-object-set-data-full">g_object_set_data_full</link>          (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-steal-data">g_object_steal_data</link>             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-get-qdata">g_object_get_qdata</link>              (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark);
void        <link linkend="g-object-set-qdata">g_object_set_qdata</link>              (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark,
                                             <link linkend="gpointer">gpointer</link> data);
void        <link linkend="g-object-set-qdata-full">g_object_set_qdata_full</link>         (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);
<link linkend="gpointer">gpointer</link>    <link linkend="g-object-steal-qdata">g_object_steal_qdata</link>            (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark);
void        <link linkend="g-object-set-property">g_object_set_property</link>           (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name,
                                             const <link linkend="GValue">GValue</link> *value);
void        <link linkend="g-object-get-property">g_object_get_property</link>           (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name,
                                             <link linkend="GValue">GValue</link> *value);
<link linkend="GObject">GObject</link>*    <link linkend="g-object-new-valist">g_object_new_valist</link>             (<link linkend="GType">GType</link> object_type,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);
void        <link linkend="g-object-set-valist">g_object_set_valist</link>             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);
void        <link linkend="g-object-get-valist">g_object_get_valist</link>             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);
void        <link linkend="g-object-watch-closure">g_object_watch_closure</link>          (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GClosure">GClosure</link> *closure);
void        <link linkend="g-object-run-dispose">g_object_run_dispose</link>            (<link linkend="GObject">GObject</link> *object);
#define     <link linkend="G-OBJECT-WARN-INVALID-PSPEC-CAPS">G_OBJECT_WARN_INVALID_PSPEC</link>     (object, pname, property_id, pspec)
#define     <link linkend="G-OBJECT-WARN-INVALID-PROPERTY-ID-CAPS">G_OBJECT_WARN_INVALID_PROPERTY_ID</link>(object, property_id, pspec)

</synopsis>
</refsynopsisdiv>





<refsect1>
<title>Description</title>
<para>

</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="GObject">struct GObject</title>
<programlisting>struct GObject
{
  GTypeInstance g_type_instance;
  
  /*&lt; private &gt;*/
  guint         ref_count;
  GData        *qdata;
};
</programlisting>
<para>
All the fields in the GObject structure are private to the <link linkend="GObject">GObject</link> implementation
and should never be accessed directly.
</para></refsect2>
<refsect2>
<title><anchor id="GObjectClass">struct GObjectClass</title>
<programlisting>struct GObjectClass;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="GObjectGetPropertyFunc">GObjectGetPropertyFunc ()</title>
<programlisting>void        (*GObjectGetPropertyFunc)       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="guint">guint</link> property_id,
                                             <link linkend="GValue">GValue</link> *value,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_id</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>value</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pspec</parameter>&nbsp;:</entry>
<entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="GObjectSetPropertyFunc">GObjectSetPropertyFunc ()</title>
<programlisting>void        (*GObjectSetPropertyFunc)       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="guint">guint</link> property_id,
                                             const <link linkend="GValue">GValue</link> *value,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_id</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>value</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pspec</parameter>&nbsp;:</entry>
<entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="GObjectFinalizeFunc">GObjectFinalizeFunc ()</title>
<programlisting>void        (*GObjectFinalizeFunc)          (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-TYPE-IS-OBJECT-CAPS">G_TYPE_IS_OBJECT()</title>
<programlisting>#define G_TYPE_IS_OBJECT(type)      (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
</programlisting>
<para>
Return a boolean value of <literal>FALSE</literal> or <literal>TRUE</literal> indicating whether
the passed in type id is a <literal>G_TYPE_OBJECT</literal> or derived from it.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
<entry>Type id to check for is a <literal>G_TYPE_OBJECT</literal> relationship.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry><literal>FALSE</literal> or <literal>TRUE</literal>, indicating whether <parameter>type</parameter> is a <literal>G_TYPE_OBJECT</literal>.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CAPS">G_OBJECT()</title>
<programlisting>#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
</programlisting>
<para>
Cast a <link linkend="GObject">GObject</link> or derived pointer into a (GObject*) pointer.
Depending on the current debugging level, this function may invoke
certain runtime checks to identify invalid casts.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>Object which is subject to casting.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-IS-OBJECT-CAPS">G_IS_OBJECT()</title>
<programlisting>#define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
</programlisting>
<para>
Check whether a valid <link linkend="GTypeInstance">GTypeInstance</link> pointer is of type <literal>G_TYPE_OBJECT</literal>.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>Instance to check for being a <literal>G_TYPE_OBJECT</literal>.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-CAPS">G_OBJECT_CLASS()</title>
<programlisting>#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>class</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-IS-OBJECT-CLASS-CAPS">G_IS_OBJECT_CLASS()</title>
<programlisting>#define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>class</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-GET-CLASS-CAPS">G_OBJECT_GET_CLASS()</title>
<programlisting>#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-TYPE-CAPS">G_OBJECT_TYPE()</title>
<programlisting>#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
</programlisting>
<para>
Return the type id of an object.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>Object to return the type id for.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>Type id of <parameter>object</parameter>.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-TYPE-NAME-CAPS">G_OBJECT_TYPE_NAME()</title>
<programlisting>#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-TYPE-CAPS">G_OBJECT_CLASS_TYPE()</title>
<programlisting>#define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>class</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-NAME-CAPS">G_OBJECT_CLASS_NAME()</title>
<programlisting>#define G_OBJECT_CLASS_NAME(class)  (g_type_name (G_OBJECT_CLASS_TYPE (class)))
</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>class</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-class-install-property">g_object_class_install_property ()</title>
<programlisting>void        g_object_class_install_property (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             <link linkend="guint">guint</link> property_id,
                                             <link linkend="GParamSpec">GParamSpec</link> *pspec);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>oclass</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_id</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pspec</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-class-find-property">g_object_class_find_property ()</title>
<programlisting><link linkend="GParamSpec">GParamSpec</link>* g_object_class_find_property    (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             const <link linkend="gchar">gchar</link> *property_name);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>oclass</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-class-list-properties">g_object_class_list_properties ()</title>
<programlisting><link linkend="GParamSpec">GParamSpec</link>** g_object_class_list_properties (<link linkend="GObjectClass">GObjectClass</link> *oclass,
                                             <link linkend="guint">guint</link> *n_properties);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>oclass</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>n_properties</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-new">g_object_new ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_new                    (<link linkend="GType">GType</link> object_type,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object_type</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-newv">g_object_newv ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_newv                   (<link linkend="GType">GType</link> object_type,
                                             <link linkend="guint">guint</link> n_parameters,
                                             <link linkend="GParameter">GParameter</link> *parameters);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object_type</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>n_parameters</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>parameters</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="GParameter">struct GParameter</title>
<programlisting>struct GParameter /* auxillary structure for _setv() variants */
{
  const gchar *name;
  GValue       value;
};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="g-object-ref">g_object_ref ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_ref                    (<link linkend="gpointer">gpointer</link> object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-unref">g_object_unref ()</title>
<programlisting>void        g_object_unref                  (<link linkend="gpointer">gpointer</link> object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="GWeakNotify">GWeakNotify ()</title>
<programlisting>void        (*GWeakNotify)                  (<link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GObject">GObject</link> *where_the_object_was);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>where_the_object_was</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-weak-ref">g_object_weak_ref ()</title>
<programlisting>void        g_object_weak_ref               (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GWeakNotify">GWeakNotify</link> notify,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>notify</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-weak-unref">g_object_weak_unref ()</title>
<programlisting>void        g_object_weak_unref             (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GWeakNotify">GWeakNotify</link> notify,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>notify</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-add-weak-pointer">g_object_add_weak_pointer ()</title>
<programlisting>void        g_object_add_weak_pointer       (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="gpointer">gpointer</link> *weak_pointer_location);</programlisting>
<para>
Adds a weak reference from weak_pointer to <parameter>object</parameter> to indicate that
the pointer located at <parameter>weak_pointer_location</parameter> is only valid during the 
lifetime of <parameter>object</parameter>. When the <parameter>object</parameter> is finalized, <parameter>weak_pointer</parameter> will 
be set to <literal>NULL</literal>.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>The object that should be weak referenced.
</entry></row>
<row><entry align="right"><parameter>weak_pointer_location</parameter>&nbsp;:</entry>
<entry>The memory address of a pointer.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-remove-weak-pointer">g_object_remove_weak_pointer ()</title>
<programlisting>void        g_object_remove_weak_pointer    (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="gpointer">gpointer</link> *weak_pointer_location);</programlisting>
<para>
Removes a weak reference from <parameter>object</parameter> that was previously added
using <link linkend="g-object-add-weak-pointer">g_object_add_weak_pointer</link>(). The <parameter>weak_pointer_location</parameter> has
to match the one used with <link linkend="g-object-add-weak-pointer">g_object_add_weak_pointer</link>().
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>The object that is weak referenced.
</entry></row>
<row><entry align="right"><parameter>weak_pointer_location</parameter>&nbsp;:</entry>
<entry>The memory address of a pointer.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-connect">g_object_connect ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_connect                (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>signal_spec</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-disconnect">g_object_disconnect ()</title>
<programlisting>void        g_object_disconnect             (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>signal_spec</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set">g_object_set ()</title>
<programlisting>void        g_object_set                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-get">g_object_get ()</title>
<programlisting>void        g_object_get                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-notify">g_object_notify ()</title>
<programlisting>void        g_object_notify                 (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_name</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-freeze-notify">g_object_freeze_notify ()</title>
<programlisting>void        g_object_freeze_notify          (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-thaw-notify">g_object_thaw_notify ()</title>
<programlisting>void        g_object_thaw_notify            (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-get-data">g_object_get_data ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_get_data               (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-data">g_object_set_data ()</title>
<programlisting>void        g_object_set_data               (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-data-full">g_object_set_data_full ()</title>
<programlisting>void        g_object_set_data_full          (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>destroy</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-steal-data">g_object_steal_data ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_steal_data             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *key);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-get-qdata">g_object_get_qdata ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_get_qdata              (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark);</programlisting>
<para>
This function gets back user data pointers stored via
<link linkend="g-object-set-qdata">g_object_set_qdata</link>().
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry> The GObject to get a stored user data pointer from
</entry></row>
<row><entry align="right"><parameter>quark</parameter>&nbsp;:</entry>
<entry>  A <link linkend="GQuark">GQuark</link>, naming the user data pointer
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>The user data pointer set, or <literal>NULL</literal>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-qdata">g_object_set_qdata ()</title>
<programlisting>void        g_object_set_qdata              (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark,
                                             <link linkend="gpointer">gpointer</link> data);</programlisting>
<para>
This sets an opaque, named pointer on an object.
The name is specified through a <link linkend="GQuark">GQuark</link> (retrived e.g. via
<link linkend="g-quark-from-static-string">g_quark_from_static_string</link>()), and the pointer
can be gotten back from the <parameter>object</parameter> with <link linkend="g-object-get-qdata">g_object_get_qdata</link>()
until the <parameter>object</parameter> is finalized.
Setting a previously set user data pointer, overrides (frees)
the old pointer set, using <link linkend="NULL-CAPS">NULL</link> as pointer essentially
removes the data stored.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>The GObject to set store a user data pointer
</entry></row>
<row><entry align="right"><parameter>quark</parameter>&nbsp;:</entry>
<entry> A <link linkend="GQuark">GQuark</link>, naming the user data pointer
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>  An opaque user data pointer


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-qdata-full">g_object_set_qdata_full ()</title>
<programlisting>void        g_object_set_qdata_full         (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark,
                                             <link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GDestroyNotify">GDestroyNotify</link> destroy);</programlisting>
<para>
This function works like <link linkend="g-object-set-qdata">g_object_set_qdata</link>(), but in addition,
a void (*destroy) (gpointer) function may be specified which is
called with <parameter>data</parameter> as argument when the <parameter>object</parameter> is finalized, or
the data is being overwritten by a call to <link linkend="g-object-set-qdata">g_object_set_qdata</link>()
with the same <parameter>quark</parameter>.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry> The GObject to set store a user data pointer
</entry></row>
<row><entry align="right"><parameter>quark</parameter>&nbsp;:</entry>
<entry>  A <link linkend="GQuark">GQuark</link>, naming the user data pointer
</entry></row>
<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
<entry>   An opaque user data pointer
</entry></row>
<row><entry align="right"><parameter>destroy</parameter>&nbsp;:</entry>
<entry>Function to invoke with <parameter>data</parameter> as argument, when <parameter>data</parameter> needs to be freed


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-steal-qdata">g_object_steal_qdata ()</title>
<programlisting><link linkend="gpointer">gpointer</link>    g_object_steal_qdata            (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GQuark">GQuark</link> quark);</programlisting>
<para>
This function gets back user data pointers stored via
<link linkend="g-object-set-qdata">g_object_set_qdata</link>() and removes the <parameter>data</parameter> from object
without invoking it's <link linkend="destroy">destroy</link>() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
<msgtext><programlisting>
void
object_add_to_user_list (GObject     *object,
                         const gchar *new_string)
{
  /* the quark, naming the object data */
  GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
  /* retrive the old string list */
  GList *list = g_object_steal_qdata (object, quark_string_list);
  
  /* prepend new string */
  list = g_list_prepend (list, g_strdup (new_string));
  /* this changed 'list', so we need to set it again */
  g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
  GList *node, *list = data;
  
  for (node = list; node; node = node->next)
    g_free (node->data);
  g_list_free (list);
}
</programlisting></msgtext>
Using <link linkend="g-object-get-qdata">g_object_get_qdata</link>() in the above example, instead of <link linkend="g-object-steal-qdata">g_object_steal_qdata</link>()
would have left the destroy function set, and thus the partial string list would
have been freed upon <link linkend="g-object-set-qdata-full">g_object_set_qdata_full</link>().
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry> The GObject to get a stored user data pointer from
</entry></row>
<row><entry align="right"><parameter>quark</parameter>&nbsp;:</entry>
<entry>  A <link linkend="GQuark">GQuark</link>, naming the user data pointer
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>The user data pointer set, or <literal>NULL</literal>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-property">g_object_set_property ()</title>
<programlisting>void        g_object_set_property           (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name,
                                             const <link linkend="GValue">GValue</link> *value);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>value</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-get-property">g_object_get_property ()</title>
<programlisting>void        g_object_get_property           (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name,
                                             <link linkend="GValue">GValue</link> *value);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>value</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-new-valist">g_object_new_valist ()</title>
<programlisting><link linkend="GObject">GObject</link>*    g_object_new_valist             (<link linkend="GType">GType</link> object_type,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object_type</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>var_args</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-set-valist">g_object_set_valist ()</title>
<programlisting>void        g_object_set_valist             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>var_args</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-get-valist">g_object_get_valist ()</title>
<programlisting>void        g_object_get_valist             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             va_list var_args);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>first_property_name</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>var_args</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-watch-closure">g_object_watch_closure ()</title>
<programlisting>void        g_object_watch_closure          (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GClosure">GClosure</link> *closure);</programlisting>
<para>
This function essentially limits the life time of the <parameter>closure</parameter>
to the life time of the object. That is, when the object is finalized,
the <parameter>closure</parameter> is invalidated by calling <link linkend="g-closure-invalidate">g_closure_invalidate</link>() on it,
in order to prevent invocations of the closure with a finalized (non
existing) object. Also, <link linkend="g-object-ref">g_object_ref</link>() and <link linkend="g-object-unref">g_object_unref</link>() are added
as marshal guards to the <parameter>closure</parameter>, to ensure that an extra reference
count is held on <parameter>object</parameter> during invocation of the <parameter>closure</parameter>.
Usually, this function will be called on closures that use this <parameter>object</parameter>
as closure data.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry> GObject restricting lifetime of <parameter>closure</parameter>
</entry></row>
<row><entry align="right"><parameter>closure</parameter>&nbsp;:</entry>
<entry>GClosure to watch


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="g-object-run-dispose">g_object_run_dispose ()</title>
<programlisting>void        g_object_run_dispose            (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-WARN-INVALID-PSPEC-CAPS">G_OBJECT_WARN_INVALID_PSPEC()</title>
<programlisting>#define     G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec)</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pname</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_id</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pspec</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-WARN-INVALID-PROPERTY-ID-CAPS">G_OBJECT_WARN_INVALID_PROPERTY_ID()</title>
<programlisting>#define     G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec)</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>object</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>property_id</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>pspec</parameter>&nbsp;:</entry>
<entry>


</entry></row>
</tbody></tgroup></informaltable></refsect2>

</refsect1>




</refentry>
