<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>;
<link linkend="void">void</link>        (<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);
<link linkend="void">void</link>        (<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);
<link linkend="void">void</link>        (<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)
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <link linkend="g-object-unref">g_object_unref</link>                  (<link linkend="gpointer">gpointer</link> object);
<link linkend="void">void</link>        (<link linkend="GWeakNotify">*GWeakNotify</link>)                  (<link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GObject">GObject</link> *where_the_object_was);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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,
                                             ...);
<link linkend="void">void</link>        <link linkend="g-object-disconnect">g_object_disconnect</link>             (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);
<link linkend="void">void</link>        <link linkend="g-object-set">g_object_set</link>                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);
<link linkend="void">void</link>        <link linkend="g-object-get">g_object_get</link>                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);
<link linkend="void">void</link>        <link linkend="g-object-notify">g_object_notify</link>                 (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name);
<link linkend="void">void</link>        <link linkend="g-object-freeze-notify">g_object_freeze_notify</link>          (<link linkend="GObject">GObject</link> *object);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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);
<link linkend="void">void</link>        <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,
                                             <link linkend="va-list">va_list</link> var_args);
<link linkend="void">void</link>        <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,
                                             <link linkend="va-list">va_list</link> var_args);
<link linkend="void">void</link>        <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,
                                             <link linkend="va-list">va_list</link> var_args);
<link linkend="void">void</link>        <link linkend="g-object-watch-closure">g_object_watch_closure</link>          (<link linkend="GObject">GObject</link> *object,
                                             <link linkend="GClosure">GClosure</link> *closure);
<link linkend="void">void</link>        <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>
<indexterm><primary>GObject</primary></indexterm><programlisting>struct GObject {

  GTypeInstance g_type_instance;
  
};
</programlisting>
<para>
All the fields in the GObject structure are private to the <link linkend="GObject"><type>GObject</type></link> implementation
and should never be accessed directly.
</para></refsect2>
<refsect2>
<title><anchor id="GObjectClass"/>struct GObjectClass</title>
<indexterm><primary>GObjectClass</primary></indexterm><programlisting>struct GObjectClass {

  GTypeClass   g_type_class;

};
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="GObjectGetPropertyFunc"/>GObjectGetPropertyFunc ()</title>
<indexterm><primary>GObjectGetPropertyFunc</primary></indexterm><programlisting><link linkend="void">void</link>        (*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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pspec</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="GObjectSetPropertyFunc"/>GObjectSetPropertyFunc ()</title>
<indexterm><primary>GObjectSetPropertyFunc</primary></indexterm><programlisting><link linkend="void">void</link>        (*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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pspec</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="GObjectFinalizeFunc"/>GObjectFinalizeFunc ()</title>
<indexterm><primary>GObjectFinalizeFunc</primary></indexterm><programlisting><link linkend="void">void</link>        (*GObjectFinalizeFunc)          (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-TYPE-IS-OBJECT-CAPS"/>G_TYPE_IS_OBJECT()</title>
<indexterm><primary>G_TYPE_IS_OBJECT</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>type</parameter>&nbsp;:</term>
<listitem><simpara>Type id to check for is a <literal>G_TYPE_OBJECT</literal> relationship.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>FALSE</literal> or <literal>TRUE</literal>, indicating whether <parameter>type</parameter> is a <literal>G_TYPE_OBJECT</literal>.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CAPS"/>G_OBJECT()</title>
<indexterm><primary>G_OBJECT</primary></indexterm><programlisting>#define G_OBJECT(object)            (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
</programlisting>
<para>
Cast a <link linkend="GObject"><type>GObject</type></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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>Object which is subject to casting.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-IS-OBJECT-CAPS"/>G_IS_OBJECT()</title>
<indexterm><primary>G_IS_OBJECT</primary></indexterm><programlisting>#define G_IS_OBJECT(object)         (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
</programlisting>
<para>
Check whether a valid <link linkend="GTypeInstance"><type>GTypeInstance</type></link> pointer is of type <literal>G_TYPE_OBJECT</literal>.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>Instance to check for being a <literal>G_TYPE_OBJECT</literal>.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-CAPS"/>G_OBJECT_CLASS()</title>
<indexterm><primary>G_OBJECT_CLASS</primary></indexterm><programlisting>#define G_OBJECT_CLASS(class)       (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>class</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-IS-OBJECT-CLASS-CAPS"/>G_IS_OBJECT_CLASS()</title>
<indexterm><primary>G_IS_OBJECT_CLASS</primary></indexterm><programlisting>#define G_IS_OBJECT_CLASS(class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>class</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-GET-CLASS-CAPS"/>G_OBJECT_GET_CLASS()</title>
<indexterm><primary>G_OBJECT_GET_CLASS</primary></indexterm><programlisting>#define G_OBJECT_GET_CLASS(object)  (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-TYPE-CAPS"/>G_OBJECT_TYPE()</title>
<indexterm><primary>G_OBJECT_TYPE</primary></indexterm><programlisting>#define G_OBJECT_TYPE(object)       (G_TYPE_FROM_INSTANCE (object))
</programlisting>
<para>
Return the type id of an object.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>Object to return the type id for.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>Type id of <parameter>object</parameter>.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-TYPE-NAME-CAPS"/>G_OBJECT_TYPE_NAME()</title>
<indexterm><primary>G_OBJECT_TYPE_NAME</primary></indexterm><programlisting>#define G_OBJECT_TYPE_NAME(object)  (g_type_name (G_OBJECT_TYPE (object)))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-TYPE-CAPS"/>G_OBJECT_CLASS_TYPE()</title>
<indexterm><primary>G_OBJECT_CLASS_TYPE</primary></indexterm><programlisting>#define G_OBJECT_CLASS_TYPE(class)  (G_TYPE_FROM_CLASS (class))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>class</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-CLASS-NAME-CAPS"/>G_OBJECT_CLASS_NAME()</title>
<indexterm><primary>G_OBJECT_CLASS_NAME</primary></indexterm><programlisting>#define G_OBJECT_CLASS_NAME(class)  (g_type_name (G_OBJECT_CLASS_TYPE (class)))
</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>class</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-class-install-property"/>g_object_class_install_property ()</title>
<indexterm><primary>g_object_class_install_property</primary></indexterm><programlisting><link linkend="void">void</link>        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>
Installs a new property. This is usually done in the class initializer.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>oclass</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GObjectClass"><type>GObjectClass</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_id</parameter>&nbsp;:</term>
<listitem><simpara> the id for the new property
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pspec</parameter>&nbsp;:</term>
<listitem><simpara> the <link linkend="GParamSpec"><type>GParamSpec</type></link> for the new property
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-class-find-property"/>g_object_class_find_property ()</title>
<indexterm><primary>g_object_class_find_property</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>oclass</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-class-list-properties"/>g_object_class_list_properties ()</title>
<indexterm><primary>g_object_class_list_properties</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>oclass</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n_properties</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-new"/>g_object_new ()</title>
<indexterm><primary>g_object_new</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>object_type</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-newv"/>g_object_newv ()</title>
<indexterm><primary>g_object_newv</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>object_type</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>n_parameters</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>parameters</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="GParameter"/>struct GParameter</title>
<indexterm><primary>GParameter</primary></indexterm><programlisting>struct GParameter {

  const gchar *name;
  GValue       value;
};
</programlisting>
<para>

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

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-unref"/>g_object_unref ()</title>
<indexterm><primary>g_object_unref</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_unref                  (<link linkend="gpointer">gpointer</link> object);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="GWeakNotify"/>GWeakNotify ()</title>
<indexterm><primary>GWeakNotify</primary></indexterm><programlisting><link linkend="void">void</link>        (*GWeakNotify)                  (<link linkend="gpointer">gpointer</link> data,
                                             <link linkend="GObject">GObject</link> *where_the_object_was);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>where_the_object_was</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-weak-ref"/>g_object_weak_ref ()</title>
<indexterm><primary>g_object_weak_ref</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>notify</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-weak-unref"/>g_object_weak_unref ()</title>
<indexterm><primary>g_object_weak_unref</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>notify</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-add-weak-pointer"/>g_object_add_weak_pointer ()</title>
<indexterm><primary>g_object_add_weak_pointer</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>The object that should be weak referenced.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>weak_pointer_location</parameter>&nbsp;:</term>
<listitem><simpara>The memory address of a pointer.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-remove-weak-pointer"/>g_object_remove_weak_pointer ()</title>
<indexterm><primary>g_object_remove_weak_pointer</primary></indexterm><programlisting><link linkend="void">void</link>        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"><function>g_object_add_weak_pointer()</function></link>. The <parameter>weak_pointer_location</parameter> has
to match the one used with <link linkend="g-object-add-weak-pointer"><function>g_object_add_weak_pointer()</function></link>.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>The object that is weak referenced.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>weak_pointer_location</parameter>&nbsp;:</term>
<listitem><simpara>The memory address of a pointer.


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-connect"/>g_object_connect ()</title>
<indexterm><primary>g_object_connect</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>signal_spec</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-disconnect"/>g_object_disconnect ()</title>
<indexterm><primary>g_object_disconnect</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_disconnect             (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *signal_spec,
                                             ...);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>signal_spec</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set"/>g_object_set ()</title>
<indexterm><primary>g_object_set</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_set                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-get"/>g_object_get ()</title>
<indexterm><primary>g_object_get</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_get                    (<link linkend="gpointer">gpointer</link> object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             ...);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-notify"/>g_object_notify ()</title>
<indexterm><primary>g_object_notify</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_notify                 (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *property_name);</programlisting>
<para>
Emits a "notify" signal for the property <parameter>property_name</parameter> on <parameter>object</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GObject"><type>GObject</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_name</parameter>&nbsp;:</term>
<listitem><simpara> the name of a property installed on the class of <parameter>object</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-freeze-notify"/>g_object_freeze_notify ()</title>
<indexterm><primary>g_object_freeze_notify</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_freeze_notify          (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>
Stops emission of "notify" signals on <parameter>object</parameter>. The signals are
queued until <link linkend="g-object-thaw-notify"><function>g_object_thaw_notify()</function></link> is called on <parameter>object</parameter>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GObject"><type>GObject</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-thaw-notify"/>g_object_thaw_notify ()</title>
<indexterm><primary>g_object_thaw_notify</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_thaw_notify            (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>
Reverts the effect of a previous call to <link linkend="g-object-freeze-notify"><function>g_object_freeze_notify()</function></link>.
This causes all queued "notify" signals on <parameter>object</parameter> to be emitted.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GObject"><type>GObject</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-get-data"/>g_object_get_data ()</title>
<indexterm><primary>g_object_get_data</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-data"/>g_object_set_data ()</title>
<indexterm><primary>g_object_set_data</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-data-full"/>g_object_set_data_full ()</title>
<indexterm><primary>g_object_set_data_full</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>destroy</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-steal-data"/>g_object_steal_data ()</title>
<indexterm><primary>g_object_steal_data</primary></indexterm><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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-get-qdata"/>g_object_get_qdata ()</title>
<indexterm><primary>g_object_get_qdata</primary></indexterm><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"><function>g_object_set_qdata()</function></link>.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> The GObject to get a stored user data pointer from
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>quark</parameter>&nbsp;:</term>
<listitem><simpara>  A <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The user data pointer set, or <literal>NULL</literal>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-qdata"/>g_object_set_qdata ()</title>
<indexterm><primary>g_object_set_qdata</primary></indexterm><programlisting><link linkend="void">void</link>        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"><type>GQuark</type></link> (retrived e.g. via
<link linkend="g-quark-from-static-string"><function>g_quark_from_static_string()</function></link>), and the pointer
can be gotten back from the <parameter>object</parameter> with <link linkend="g-object-get-qdata"><function>g_object_get_qdata()</function></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"><type>NULL</type></link> as pointer essentially
removes the data stored.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>The GObject to set store a user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>quark</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>  An opaque user data pointer


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-qdata-full"/>g_object_set_qdata_full ()</title>
<indexterm><primary>g_object_set_qdata_full</primary></indexterm><programlisting><link linkend="void">void</link>        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"><function>g_object_set_qdata()</function></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"><function>g_object_set_qdata()</function></link>
with the same <parameter>quark</parameter>.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> The GObject to set store a user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>quark</parameter>&nbsp;:</term>
<listitem><simpara>  A <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>   An opaque user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>destroy</parameter>&nbsp;:</term>
<listitem><simpara>Function to invoke with <parameter>data</parameter> as argument, when <parameter>data</parameter> needs to be freed


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-steal-qdata"/>g_object_steal_qdata ()</title>
<indexterm><primary>g_object_steal_qdata</primary></indexterm><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"><function>g_object_set_qdata()</function></link> and removes the <parameter>data</parameter> from object
without invoking it's <link linkend="destroy"><function>destroy()</function></link> function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
<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>
Using <link linkend="g-object-get-qdata"><function>g_object_get_qdata()</function></link> in the above example, instead of <link linkend="g-object-steal-qdata"><function>g_object_steal_qdata()</function></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"><function>g_object_set_qdata_full()</function></link>.
</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> The GObject to get a stored user data pointer from
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>quark</parameter>&nbsp;:</term>
<listitem><simpara>  A <link linkend="GQuark"><type>GQuark</type></link>, naming the user data pointer
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>The user data pointer set, or <literal>NULL</literal>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-property"/>g_object_set_property ()</title>
<indexterm><primary>g_object_set_property</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-get-property"/>g_object_get_property ()</title>
<indexterm><primary>g_object_get_property</primary></indexterm><programlisting><link linkend="void">void</link>        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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-new-valist"/>g_object_new_valist ()</title>
<indexterm><primary>g_object_new_valist</primary></indexterm><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,
                                             <link linkend="va-list">va_list</link> var_args);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object_type</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>var_args</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-set-valist"/>g_object_set_valist ()</title>
<indexterm><primary>g_object_set_valist</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_set_valist             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             <link linkend="va-list">va_list</link> var_args);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>var_args</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-get-valist"/>g_object_get_valist ()</title>
<indexterm><primary>g_object_get_valist</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_get_valist             (<link linkend="GObject">GObject</link> *object,
                                             const <link linkend="gchar">gchar</link> *first_property_name,
                                             <link linkend="va-list">va_list</link> var_args);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>first_property_name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>var_args</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-watch-closure"/>g_object_watch_closure ()</title>
<indexterm><primary>g_object_watch_closure</primary></indexterm><programlisting><link linkend="void">void</link>        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"><function>g_closure_invalidate()</function></link> on it,
in order to prevent invocations of the closure with a finalized (non
existing) object. Also, <link linkend="g-object-ref"><function>g_object_ref()</function></link> and <link linkend="g-object-unref"><function>g_object_unref()</function></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><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara> GObject restricting lifetime of <parameter>closure</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>closure</parameter>&nbsp;:</term>
<listitem><simpara>GClosure to watch


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="g-object-run-dispose"/>g_object_run_dispose ()</title>
<indexterm><primary>g_object_run_dispose</primary></indexterm><programlisting><link linkend="void">void</link>        g_object_run_dispose            (<link linkend="GObject">GObject</link> *object);</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-WARN-INVALID-PSPEC-CAPS"/>G_OBJECT_WARN_INVALID_PSPEC()</title>
<indexterm><primary>G_OBJECT_WARN_INVALID_PSPEC</primary></indexterm><programlisting>#define     G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec)</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pname</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pspec</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="G-OBJECT-WARN-INVALID-PROPERTY-ID-CAPS"/>G_OBJECT_WARN_INVALID_PROPERTY_ID()</title>
<indexterm><primary>G_OBJECT_WARN_INVALID_PROPERTY_ID</primary></indexterm><programlisting>#define     G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec)</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>object</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>property_id</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>pspec</parameter>&nbsp;:</term>
<listitem><simpara>


</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
