 c:type="GtkSizeGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widgets"
              c:identifier="gtk_size_group_get_widgets"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtksizegroup.c"
             line="582">Returns the list of widgets associated with @size_group.</doc>
        <source-position filename="gtksizegroup.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksizegroup.c"
               line="588">a #GSList of
  widgets. The list is owned by GTK+ and should not be modified.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="size_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="584">a #GtkSizeGrup</doc>
            <type name="SizeGroup" c:type="GtkSizeGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_widget" c:identifier="gtk_size_group_remove_widget">
        <doc xml:space="preserve"
             filename="gtksizegroup.c"
             line="550">Removes a widget from a #GtkSizeGroup.</doc>
        <source-position filename="gtksizegroup.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="size_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="552">a #GtkSizeGrup</doc>
            <type name="SizeGroup" c:type="GtkSizeGroup*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="553">the #GtkWidget to remove</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ignore_hidden"
              c:identifier="gtk_size_group_set_ignore_hidden"
              glib:set-property="ignore-hidden"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtksizegroup.c"
             line="456">Sets whether unmapped widgets should be ignored when
calculating the size.</doc>
        <source-position filename="gtksizegroup.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="size_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="458">a #GtkSizeGroup</doc>
            <type name="SizeGroup" c:type="GtkSizeGroup*"/>
          </instance-parameter>
          <parameter name="ignore_hidden" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="459">whether unmapped widgets should be ignored
  when calculating the size</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode"
              c:identifier="gtk_size_group_set_mode"
              glib:set-property="mode">
        <doc xml:space="preserve"
             filename="gtksizegroup.c"
             line="410">Sets the #GtkSizeGroupMode of the size group. The mode of the size
group determines whether the widgets in the size group should
all have the same horizontal requisition (%GTK_SIZE_GROUP_MODE_HORIZONTAL)
all have the same vertical requisition (%GTK_SIZE_GROUP_MODE_VERTICAL),
or should all have the same requisition in both directions
(%GTK_SIZE_GROUP_MODE_BOTH).</doc>
        <source-position filename="gtksizegroup.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="size_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="412">a #GtkSizeGroup</doc>
            <type name="SizeGroup" c:type="GtkSizeGroup*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksizegroup.c"
                 line="413">the mode to set for the size group.</doc>
            <type name="SizeGroupMode" c:type="GtkSizeGroupMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="ignore-hidden"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                setter="set_ignore_hidden"
                getter="get_ignore_hidden"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtksizegroup.c"
             line="307">If %TRUE, unmapped widgets are ignored when determining
the size of the group.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mode"
                writable="1"
                transfer-ownership="none"
                setter="set_mode"
                getter="get_mode"
                default-value="GTK_SIZE_GROUP_HORIZONTAL">
        <type name="SizeGroupMode"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="widgets" readable="0" private="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="mode" readable="0" private="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="have_width" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="have_height" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="ignore_hidden" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="requisition" readable="0" private="1">
        <type name="Requisition" c:type="GtkRequisition"/>
      </field>
    </class>
    <record name="SizeGroupClass"
            c:type="GtkSizeGroupClass"
            glib:is-gtype-struct-for="SizeGroup">
      <source-position filename="gtksizegroup.h" line="68"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtksizegroup.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtksizegroup.h" line="65"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtksizegroup.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtksizegroup.h" line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SizeGroupMode"
                 glib:type-name="GtkSizeGroupMode"
                 glib:get-type="gtk_size_group_mode_get_type"
                 c:type="GtkSizeGroupMode">
      <doc xml:space="preserve"
           filename="gtksizegroup.h"
           line="70">The mode of the size group determines the directions in which the size
group affects the requested sizes of its component widgets.</doc>
      <member name="none"
              value="0"
              c:identifier="GTK_SIZE_GROUP_NONE"
              glib:nick="none"
              glib:name="GTK_SIZE_GROUP_NONE">
        <doc xml:space="preserve"
             filename="gtksizegroup.h"
             line="72">group has no effect</doc>
      </member>
      <member name="horizontal"
              value="1"
              c:identifier="GTK_SIZE_GROUP_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="GTK_SIZE_GROUP_HORIZONTAL">
        <doc xml:space="preserve"
             filename="gtksizegroup.h"
             line="73">group affects horizontal requisition</doc>
      </member>
      <member name="vertical"
              value="2"
              c:identifier="GTK_SIZE_GROUP_VERTICAL"
              glib:nick="vertical"
              glib:name="GTK_SIZE_GROUP_VERTICAL">
        <doc xml:space="preserve"
             filename="gtksizegroup.h"
             line="74">group affects vertical requisition</doc>
      </member>
      <member name="both"
              value="3"
              c:identifier="GTK_SIZE_GROUP_BOTH"
              glib:nick="both"
              glib:name="GTK_SIZE_GROUP_BOTH">
        <doc xml:space="preserve"
             filename="gtksizegroup.h"
             line="75">group affects both horizontal and vertical requisition</doc>
      </member>
    </enumeration>
    <class name="Socket"
           c:symbol-prefix="socket"
           c:type="GtkSocket"
           parent="Container"
           glib:type-name="GtkSocket"
           glib:get-type="gtk_socket_get_type"
           glib:type-struct="SocketClass">
      <doc xml:space="preserve"
           filename="gtksocket.c"
           line="44">Together with #GtkPlug, #GtkSocket provides the ability
to embed widgets from one process into another process
in a fashion that is transparent to the user. One
process creates a #GtkSocket widget and passes
that widget's window ID to the other process,
which then creates a #GtkPlug with that window ID.
Any widgets contained in the #GtkPlug then will appear
inside the first application's window.

The socket's window ID is obtained by using
gtk_socket_get_id(). Before using this function,
the socket must have been realized, and for hence,
have been added to its parent.

&lt;example&gt;
&lt;title&gt;Obtaining the window ID of a socket.&lt;/title&gt;
&lt;programlisting&gt;
GtkWidget *socket = gtk_socket_new (&lt;!-- --&gt;);
gtk_widget_show (socket);
gtk_container_add (GTK_CONTAINER (parent), socket);

/&lt;!----&gt;* The following call is only necessary if one of
 * the ancestors of the socket is not yet visible.
 *&lt;!----&gt;/
gtk_widget_realize (socket);
g_print ("The ID of the sockets window is %#x\n",
         gtk_socket_get_id (socket));
&lt;/programlisting&gt;
&lt;/example&gt;

Note that if you pass the window ID of the socket to another
process that will create a plug in the socket, you
must make sure that the socket widget is not destroyed
until that plug is created. Violating this rule will
cause unpredictable consequences, the most likely
consequence being that the plug will appear as a
separate toplevel window. You can check if the plug
has been created by using gtk_socket_get_plug_window(). If
it returns a non-%NULL value, then the plug has been
successfully created inside of the socket.

When GTK+ is notified that the embedded window has been
destroyed, then it will destroy the socket as well. You
should always, therefore, be prepared for your sockets
to be destroyed at any time when the main event loop
is running. To prevent this from happening, you can
connect to the #GtkSocket::plug-removed signal.

The communication between a #GtkSocket and a #GtkPlug follows the
&lt;ulink url="http://www.freedesktop.org/Standards/xembed-spec"&gt;XEmbed&lt;/ulink&gt;
protocol. This protocol has also been implemented in other toolkits, e.g.
&lt;application&gt;Qt&lt;/application&gt;, allowing the same level of integration
when embedding a &lt;application&gt;Qt&lt;/application&gt; widget in GTK or vice versa.

A socket can also be used to swallow arbitrary
pre-existing top-level windows using gtk_socket_steal(),
though the integration when this is done will not be as close
as between a #GtkPlug and a #GtkSocket.

&lt;note&gt;
The #GtkPlug and #GtkSocket widgets are currently not available
on all platforms supported by GTK+.
&lt;/note&gt;</doc>
      <source-position filename="gtksocket.h" line="84"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_socket_new">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="275">Create a new empty #GtkSocket.</doc>
        <source-position filename="gtksocket.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksocket.c"
               line="280">the new #GtkSocket.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="plug_added">
        <source-position filename="gtksocket.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="plug_removed">
        <source-position filename="gtksocket.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_id" c:identifier="gtk_socket_add_id">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="318">Adds an XEMBED client, such as a #GtkPlug, to the #GtkSocket.  The
client may be in the same process or in a different process.

To embed a #GtkPlug in a #GtkSocket, you can either create the
#GtkPlug with &lt;literal&gt;gtk_plug_new (0)&lt;/literal&gt;, call
gtk_plug_get_id() to get the window ID of the plug, and then pass that to the
gtk_socket_add_id(), or you can call gtk_socket_get_id() to get the
window ID for the socket, and call gtk_plug_new() passing in that
ID.

The #GtkSocket must have already be added into a toplevel window
 before you can make this call.</doc>
        <source-position filename="gtksocket.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="320">a #GtkSocket</doc>
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
          <parameter name="window_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="321">the window ID of a client participating in the XEMBED protocol.</doc>
            <type name="Gdk.NativeWindow" c:type="GdkNativeWindow"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gtk_socket_get_id">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="349">Gets the window ID of a #GtkSocket widget, which can then
be used to create a client embedded inside the socket, for
instance with gtk_plug_new().

The #GtkSocket must have already be added into a toplevel window
before you can make this call.</doc>
        <source-position filename="gtksocket.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksocket.c"
               line="360">the window ID for the socket</doc>
          <type name="Gdk.NativeWindow" c:type="GdkNativeWindow"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="351">a #GtkSocket.</doc>
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plug_window"
              c:identifier="gtk_socket_get_plug_window"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="374">Retrieves the window of the plug. Use this to check if the plug has
been created inside of the socket.</doc>
        <source-position filename="gtksocket.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksocket.c"
               line="381">the window of the plug if available, or %NULL</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="376">a #GtkSocket.</doc>
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="steal" c:identifier="gtk_socket_steal">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="292">Reparents a pre-existing toplevel window into a #GtkSocket. This is
meant to embed clients that do not know about embedding into a
#GtkSocket, however doing so is inherently unreliable, and using
this function is not recommended.

The #GtkSocket must have already be added into a toplevel window
 before you can make this call.</doc>
        <source-position filename="gtksocket.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="socket_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="294">a #GtkSocket</doc>
            <type name="Socket" c:type="GtkSocket*"/>
          </instance-parameter>
          <parameter name="wid" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtksocket.c"
                 line="295">the window ID of an existing toplevel window.</doc>
            <type name="Gdk.NativeWindow" c:type="GdkNativeWindow"/>
          </parameter>
        </parameters>
      </method>
      <field name="container">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="request_width">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="request_height">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="current_width">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="current_height">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="plug_window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="plug_widget">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="xembed_version">
        <type name="gshort" c:type="gshort"/>
      </field>
      <field name="same_app" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="focus_in" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="have_size" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_map" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="is_mapped" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="active" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="accel_group">
        <type name="AccelGroup" c:type="GtkAccelGroup*"/>
      </field>
      <field name="toplevel">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <glib:signal name="plug-added" when="last">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="218">This signal is emitted when a client is successfully
added to the socket.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="plug-removed" when="last">
        <doc xml:space="preserve"
             filename="gtksocket.c"
             line="234">This signal is emitted when a client is removed from the socket.
The default action is to destroy the #GtkSocket widget, so if you
want to reuse it you must add a signal handler that returns %TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksocket.c"
               line="242">%TRUE to stop other handlers from being invoked.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SocketClass"
            c:type="GtkSocketClass"
            glib:is-gtype-struct-for="Socket">
      <source-position filename="gtksocket.h" line="84"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="plug_added">
        <callback name="plug_added">
          <source-position filename="gtksocket.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="socket_" transfer-ownership="none">
              <type name="Socket" c:type="GtkSocket*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="plug_removed">
        <callback name="plug_removed">
          <source-position filename="gtksocket.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="socket_" transfer-ownership="none">
              <type name="Socket" c:type="GtkSocket*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtksocket.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtksocket.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtksocket.h" line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtksocket.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SortType"
                 glib:type-name="GtkSortType"
                 glib:get-type="gtk_sort_type_get_type"
                 c:type="GtkSortType">
      <member name="ascending"
              value="0"
              c:identifier="GTK_SORT_ASCENDING"
              glib:nick="ascending"
              glib:name="GTK_SORT_ASCENDING">
      </member>
      <member name="descending"
              value="1"
              c:identifier="GTK_SORT_DESCENDING"
              glib:nick="descending"
              glib:name="GTK_SORT_DESCENDING">
      </member>
    </enumeration>
    <class name="SpinButton"
           c:symbol-prefix="spin_button"
           c:type="GtkSpinButton"
           parent="Entry"
           glib:type-name="GtkSpinButton"
           glib:get-type="gtk_spin_button_get_type"
           glib:type-struct="SpinButtonClass">
      <source-position filename="gtkspinbutton.h" line="120"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="CellEditable"/>
      <implements name="Editable"/>
      <constructor name="new" c:identifier="gtk_spin_button_new">
        <source-position filename="gtkspinbutton.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="adjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="climb_rate" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="digits" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_range"
                   c:identifier="gtk_spin_button_new_with_range">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1701">This is a convenience constructor that allows creation of a numeric
#GtkSpinButton without manually creating an adjustment. The value is
initially set to the minimum value and a page increment of 10 * @step
is the default. The precision of the spin button is equivalent to the
precision of @step.

Note that the way in which the precision is derived works best if @step
is a power of ten. If the resulting precision is not suitable for your
needs, use gtk_spin_button_set_digits() to correct it.</doc>
        <source-position filename="gtkspinbutton.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="1717">The new spin button as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="min" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1703">Minimum allowable value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1704">Maximum allowable value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1705">Increment added or subtracted by spinning the widget</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="change_value">
        <source-position filename="gtkspinbutton.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="scroll" transfer-ownership="none">
            <type name="ScrollType" c:type="GtkScrollType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="input">
        <source-position filename="gtkspinbutton.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="new_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="output">
        <source-position filename="gtkspinbutton.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="value_changed">
        <source-position filename="gtkspinbutton.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="wrapped">
        <source-position filename="gtkspinbutton.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="configure" c:identifier="gtk_spin_button_configure">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1644">Changes the properties of an existing spin button. The adjustment, climb rate,
and number of decimal places are all changed accordingly, after this function call.</doc>
        <source-position filename="gtkspinbutton.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1646">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1647">a #GtkAdjustment.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="climb_rate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1648">the new climb rate.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="digits" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1649">the number of decimal places to display in the spin button.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_adjustment"
              c:identifier="gtk_spin_button_get_adjustment"
              glib:get-property="adjustment">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1817">Get the adjustment associated with a #GtkSpinButton</doc>
        <source-position filename="gtkspinbutton.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="1823">the #GtkAdjustment of @spin_button</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1819">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_digits"
              c:identifier="gtk_spin_button_get_digits"
              glib:get-property="digits">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1858">Fetches the precision of @spin_button. See gtk_spin_button_set_digits().</doc>
        <source-position filename="gtkspinbutton.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="1864">the current precision</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1860">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_increments"
              c:identifier="gtk_spin_button_get_increments">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1894">Gets the current step and page the increments used by @spin_button. See
gtk_spin_button_set_increments().</doc>
        <source-position filename="gtkspinbutton.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1896">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="step"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1897">location to store step increment, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="page"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1898">location to store page increment, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_numeric"
              c:identifier="gtk_spin_button_get_numeric"
              glib:get-property="numeric">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2091">Returns whether non-numeric text can be typed into the spin button.
See gtk_spin_button_set_numeric().</doc>
        <source-position filename="gtkspinbutton.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="2098">%TRUE if only numeric text can be entered</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2093">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_range" c:identifier="gtk_spin_button_get_range">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1946">Gets the range allowed for @spin_button. See
gtk_spin_button_set_range().</doc>
        <source-position filename="gtkspinbutton.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1948">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="min"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1949">location to store minimum allowed value, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1950">location to store maximum allowed value, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_snap_to_ticks"
              c:identifier="gtk_spin_button_get_snap_to_ticks"
              glib:get-property="snap-to-ticks">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2208">Returns whether the values are corrected to the nearest step. See
gtk_spin_button_set_snap_to_ticks().</doc>
        <source-position filename="gtkspinbutton.h" line="186"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="2215">%TRUE if values are snapped to the nearest step.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2210">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_update_policy"
              c:identifier="gtk_spin_button_get_update_policy"
              glib:get-property="update-policy">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2051">Gets the update behavior of a spin button. See
gtk_spin_button_set_update_policy().</doc>
        <source-position filename="gtkspinbutton.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="2058">the current update policy</doc>
          <type name="SpinButtonUpdatePolicy"
                c:type="GtkSpinButtonUpdatePolicy"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2053">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value"
              c:identifier="gtk_spin_button_get_value"
              glib:get-property="value">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1968">Get the value in the @spin_button.</doc>
        <source-position filename="gtkspinbutton.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="1974">the value of @spin_button</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1970">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value_as_int"
              c:identifier="gtk_spin_button_get_value_as_int">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1984">Get the value @spin_button represented as an integer.</doc>
        <source-position filename="gtkspinbutton.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="1990">the value of @spin_button</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1986">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wrap"
              c:identifier="gtk_spin_button_get_wrap"
              glib:get-property="wrap">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2132">Returns whether the spin button's value wraps around to the
opposite limit when the upper or lower limit of the range is
exceeded. See gtk_spin_button_set_wrap().</doc>
        <source-position filename="gtkspinbutton.h" line="182"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="2140">%TRUE if the spin button wraps around</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2134">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_adjustment"
              c:identifier="gtk_spin_button_set_adjustment"
              glib:set-property="adjustment">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1772">Replaces the #GtkAdjustment associated with @spin_button.</doc>
        <source-position filename="gtkspinbutton.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1774">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1775">a #GtkAdjustment to replace the existing adjustment</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_digits"
              c:identifier="gtk_spin_button_set_digits"
              glib:set-property="digits">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1833">Set the precision to be displayed by @spin_button. Up to 20 digit precision
is allowed.</doc>
        <source-position filename="gtkspinbutton.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1835">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="digits" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1836">the number of digits after the decimal point to be displayed for the spin button's value</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_increments"
              c:identifier="gtk_spin_button_set_increments">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1874">Sets the step and page increments for spin_button.  This affects how
quickly the value changes when the spin button's arrows are activated.</doc>
        <source-position filename="gtkspinbutton.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1876">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="step" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1877">increment applied for a button 1 press.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1878">increment applied for a button 2 press.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_numeric"
              c:identifier="gtk_spin_button_set_numeric"
              glib:set-property="numeric">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2068">Sets the flag that determines if non-numeric text can be typed into
the spin button.</doc>
        <source-position filename="gtkspinbutton.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2070">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="numeric" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2071">flag indicating if only numeric entry is allowed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_range" c:identifier="gtk_spin_button_set_range">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="1916">Sets the minimum and maximum allowable values for @spin_button</doc>
        <source-position filename="gtkspinbutton.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1918">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="min" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1919">minimum allowable value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="1920">maximum allowable value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_snap_to_ticks"
              c:identifier="gtk_spin_button_set_snap_to_ticks"
              glib:set-property="snap-to-ticks">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2180">Sets the policy as to whether values are corrected to the nearest step
increment when a spin button is activated after providing an invalid value.</doc>
        <source-position filename="gtkspinbutton.h" line="184"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2182">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="snap_to_ticks" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2183">a flag indicating if invalid values should be corrected.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_update_policy"
              c:identifier="gtk_spin_button_set_update_policy"
              glib:set-property="update-policy">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2030">Sets the update behavior of a spin button. This determines whether the
spin button is always updated or only when a valid value is set.</doc>
        <source-position filename="gtkspinbutton.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2032">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="policy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2033">a #GtkSpinButtonUpdatePolicy value</doc>
            <type name="SpinButtonUpdatePolicy"
                  c:type="GtkSpinButtonUpdatePolicy"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value"
              c:identifier="gtk_spin_button_set_value"
              glib:set-property="value">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2006">Set the value of @spin_button.</doc>
        <source-position filename="gtkspinbutton.h" line="165"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2008">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2009">the new value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap"
              c:identifier="gtk_spin_button_set_wrap"
              glib:set-property="wrap">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2108">Sets the flag that determines if a spin button value wraps around to the
opposite limit when the upper or lower limit of the range is exceeded.</doc>
        <source-position filename="gtkspinbutton.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2110">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="wrap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2111">a flag indicating if wrapping behavior is performed.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="spin" c:identifier="gtk_spin_button_spin">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2225">Increment or decrement a spin button's value in a specified direction
by a specified amount.</doc>
        <source-position filename="gtkspinbutton.h" line="176"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2227">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2228">a #GtkSpinType indicating the direction to spin.</doc>
            <type name="SpinType" c:type="GtkSpinType"/>
          </parameter>
          <parameter name="increment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2229">step increment to apply in the specified direction.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="gtk_spin_button_update">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="2303">Manually force an update of the spin button.</doc>
        <source-position filename="gtkspinbutton.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spin_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinbutton.c"
                 line="2305">a #GtkSpinButton</doc>
            <type name="SpinButton" c:type="GtkSpinButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="adjustment"
                writable="1"
                transfer-ownership="none"
                setter="set_adjustment"
                getter="get_adjustment">
        <type name="Adjustment"/>
      </property>
      <property name="climb-rate"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="digits"
                writable="1"
                transfer-ownership="none"
                setter="set_digits"
                getter="get_digits"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="numeric"
                writable="1"
                transfer-ownership="none"
                setter="set_numeric"
                getter="get_numeric"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="snap-to-ticks"
                writable="1"
                transfer-ownership="none"
                setter="set_snap_to_ticks"
                getter="get_snap_to_ticks"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="update-policy"
                writable="1"
                transfer-ownership="none"
                setter="set_update_policy"
                getter="get_update_policy"
                default-value="GTK_UPDATE_ALWAYS">
        <type name="SpinButtonUpdatePolicy"/>
      </property>
      <property name="value"
                writable="1"
                transfer-ownership="none"
                setter="set_value"
                getter="get_value"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="wrap"
                writable="1"
                transfer-ownership="none"
                setter="set_wrap"
                getter="get_wrap"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="entry">
        <type name="Entry" c:type="GtkEntry"/>
      </field>
      <field name="adjustment">
        <type name="Adjustment" c:type="GtkAdjustment*"/>
      </field>
      <field name="panel">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="timer">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="climb_rate">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="timer_step">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="update_policy">
        <type name="SpinButtonUpdatePolicy"
              c:type="GtkSpinButtonUpdatePolicy"/>
      </field>
      <field name="in_child" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="click_child" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="button" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_timer" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="timer_calls" bits="3">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="digits" bits="10">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="numeric" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="wrap" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="snap_to_ticks" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="change-value" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="ScrollType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="input" when="last">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="output" when="last">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="294">The ::output signal can be used to change to formatting
of the value that is displayed in the spin buttons entry.
|[
/&amp;ast; show leading zeros &amp;ast;/
static gboolean
on_output (GtkSpinButton *spin,
           gpointer       data)
{
   GtkAdjustment *adj;
   gchar *text;
   int value;
   
   adj = gtk_spin_button_get_adjustment (spin);
   value = (int)gtk_adjustment_get_value (adj);
   text = g_strdup_printf ("%02d", value);
   gtk_entry_set_text (GTK_ENTRY (spin), text);
   g_free (text);
   
   return TRUE;
}
]|</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinbutton.c"
               line="320">%TRUE if the value has been displayed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="value-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="wrapped" when="last" version="2.10">
        <doc xml:space="preserve"
             filename="gtkspinbutton.c"
             line="340">The wrapped signal is emitted right after the spinbutton wraps
from its maximum to minimum value or vice-versa.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SpinButtonClass"
            c:type="GtkSpinButtonClass"
            glib:is-gtype-struct-for="SpinButton">
      <source-position filename="gtkspinbutton.h" line="120"/>
      <field name="parent_class">
        <type name="EntryClass" c:type="GtkEntryClass"/>
      </field>
      <field name="input">
        <callback name="input">
          <source-position filename="gtkspinbutton.h" line="105"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="spin_button" transfer-ownership="none">
              <type name="SpinButton" c:type="GtkSpinButton*"/>
            </parameter>
            <parameter name="new_value" transfer-ownership="none">
              <type name="gdouble" c:type="gdouble*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output">
        <callback name="output">
          <source-position filename="gtkspinbutton.h" line="107"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="spin_button" transfer-ownership="none">
              <type name="SpinButton" c:type="GtkSpinButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="value_changed">
        <callback name="value_changed">
          <source-position filename="gtkspinbutton.h" line="108"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="spin_button" transfer-ownership="none">
              <type name="SpinButton" c:type="GtkSpinButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_value">
        <callback name="change_value">
          <source-position filename="gtkspinbutton.h" line="111"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="spin_button" transfer-ownership="none">
              <type name="SpinButton" c:type="GtkSpinButton*"/>
            </parameter>
            <parameter name="scroll" transfer-ownership="none">
              <type name="ScrollType" c:type="GtkScrollType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="wrapped">
        <callback name="wrapped">
          <source-position filename="gtkspinbutton.h" line="114"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="spin_button" transfer-ownership="none">
              <type name="SpinButton" c:type="GtkSpinButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkspinbutton.h" line="117"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkspinbutton.h" line="118"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkspinbutton.h" line="119"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SpinButtonUpdatePolicy"
                 glib:type-name="GtkSpinButtonUpdatePolicy"
                 glib:get-type="gtk_spin_button_update_policy_get_type"
                 c:type="GtkSpinButtonUpdatePolicy">
      <member name="always"
              value="0"
              c:identifier="GTK_UPDATE_ALWAYS"
              glib:nick="always"
              glib:name="GTK_UPDATE_ALWAYS">
      </member>
      <member name="if_valid"
              value="1"
              c:identifier="GTK_UPDATE_IF_VALID"
              glib:nick="if-valid"
              glib:name="GTK_UPDATE_IF_VALID">
      </member>
    </enumeration>
    <enumeration name="SpinType"
                 glib:type-name="GtkSpinType"
                 glib:get-type="gtk_spin_type_get_type"
                 c:type="GtkSpinType">
      <member name="step_forward"
              value="0"
              c:identifier="GTK_SPIN_STEP_FORWARD"
              glib:nick="step-forward"
              glib:name="GTK_SPIN_STEP_FORWARD">
      </member>
      <member name="step_backward"
              value="1"
              c:identifier="GTK_SPIN_STEP_BACKWARD"
              glib:nick="step-backward"
              glib:name="GTK_SPIN_STEP_BACKWARD">
      </member>
      <member name="page_forward"
              value="2"
              c:identifier="GTK_SPIN_PAGE_FORWARD"
              glib:nick="page-forward"
              glib:name="GTK_SPIN_PAGE_FORWARD">
      </member>
      <member name="page_backward"
              value="3"
              c:identifier="GTK_SPIN_PAGE_BACKWARD"
              glib:nick="page-backward"
              glib:name="GTK_SPIN_PAGE_BACKWARD">
      </member>
      <member name="home"
              value="4"
              c:identifier="GTK_SPIN_HOME"
              glib:nick="home"
              glib:name="GTK_SPIN_HOME">
      </member>
      <member name="end"
              value="5"
              c:identifier="GTK_SPIN_END"
              glib:nick="end"
              glib:name="GTK_SPIN_END">
      </member>
      <member name="user_defined"
              value="6"
              c:identifier="GTK_SPIN_USER_DEFINED"
              glib:nick="user-defined"
              glib:name="GTK_SPIN_USER_DEFINED">
      </member>
    </enumeration>
    <class name="Spinner"
           c:symbol-prefix="spinner"
           c:type="GtkSpinner"
           parent="DrawingArea"
           glib:type-name="GtkSpinner"
           glib:get-type="gtk_spinner_get_type"
           glib:type-struct="SpinnerClass">
      <doc xml:space="preserve"
           filename="gtkspinner.c"
           line="42">A GtkSpinner widget displays an icon-size spinning animation.
It is often used as an alternative to a #GtkProgressBar for
displaying indefinite activity, instead of actual progress.

To start the animation, use gtk_spinner_start(), to stop it
use gtk_spinner_stop().</doc>
      <source-position filename="gtkspinner.h" line="56"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_spinner_new" version="2.20">
        <doc xml:space="preserve"
             filename="gtkspinner.c"
             line="582">Returns a new spinner widget. Not yet started.</doc>
        <source-position filename="gtkspinner.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkspinner.c"
               line="587">a new #GtkSpinner</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="start" c:identifier="gtk_spinner_start" version="2.20">
        <doc xml:space="preserve"
             filename="gtkspinner.c"
             line="597">Starts the animation of the spinner.</doc>
        <source-position filename="gtkspinner.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spinner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinner.c"
                 line="599">a #GtkSpinner</doc>
            <type name="Spinner" c:type="GtkSpinner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gtk_spinner_stop" version="2.20">
        <doc xml:space="preserve"
             filename="gtkspinner.c"
             line="613">Stops the animation of the spinner.</doc>
        <source-position filename="gtkspinner.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="spinner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkspinner.c"
                 line="615">a #GtkSpinner</doc>
            <type name="Spinner" c:type="GtkSpinner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="active"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="DrawingArea" c:type="GtkDrawingArea"/>
      </field>
      <field name="priv">
        <type name="SpinnerPrivate" c:type="GtkSpinnerPrivate*"/>
      </field>
    </class>
    <record name="SpinnerClass"
            c:type="GtkSpinnerClass"
            glib:is-gtype-struct-for="Spinner">
      <source-position filename="gtkspinner.h" line="56"/>
      <field name="parent_class">
        <type name="DrawingAreaClass" c:type="GtkDrawingAreaClass"/>
      </field>
    </record>
    <record name="SpinnerPrivate"
            c:type="GtkSpinnerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtkspinner.h" line="45"/>
    </record>
    <enumeration name="StateType"
                 glib:type-name="GtkStateType"
                 glib:get-type="gtk_state_type_get_type"
                 c:type="GtkStateType">
      <member name="normal"
              value="0"
              c:identifier="GTK_STATE_NORMAL"
              glib:nick="normal"
              glib:name="GTK_STATE_NORMAL">
      </member>
      <member name="active"
              value="1"
              c:identifier="GTK_STATE_ACTIVE"
              glib:nick="active"
              glib:name="GTK_STATE_ACTIVE">
      </member>
      <member name="prelight"
              value="2"
              c:identifier="GTK_STATE_PRELIGHT"
              glib:nick="prelight"
              glib:name="GTK_STATE_PRELIGHT">
      </member>
      <member name="selected"
              value="3"
              c:identifier="GTK_STATE_SELECTED"
              glib:nick="selected"
              glib:name="GTK_STATE_SELECTED">
      </member>
      <member name="insensitive"
              value="4"
              c:identifier="GTK_STATE_INSENSITIVE"
              glib:nick="insensitive"
              glib:name="GTK_STATE_INSENSITIVE">
      </member>
    </enumeration>
    <class name="StatusIcon"
           c:symbol-prefix="status_icon"
           c:type="GtkStatusIcon"
           parent="GObject.Object"
           glib:type-name="GtkStatusIcon"
           glib:get-type="gtk_status_icon_get_type"
           glib:type-struct="StatusIconClass">
      <source-position filename="gtkstatusicon.h" line="78"/>
      <constructor name="new"
                   c:identifier="gtk_status_icon_new"
                   version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1195">Creates an empty status icon object.</doc>
        <source-position filename="gtkstatusicon.h" line="82"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1200">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="gtk_status_icon_new_from_file"
                   version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1231">Creates a status icon displaying the file @filename.

The image will be scaled down to fit in the available
space in the notification area, if necessary.</doc>
        <source-position filename="gtkstatusicon.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1240">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1233">a filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_gicon"
                   c:identifier="gtk_status_icon_new_from_gicon"
                   version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1293">Creates a status icon displaying a #GIcon. If the icon is a
themed icon, it will be updated when the theme changes.</doc>
        <source-position filename="gtkstatusicon.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1300">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
        <parameters>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1295">a #GIcon</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_icon_name"
                   c:identifier="gtk_status_icon_new_from_icon_name"
                   version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1273">Creates a status icon displaying an icon from the current icon theme.
If the current icon theme is changed, the icon will be updated
appropriately.</doc>
        <source-position filename="gtkstatusicon.h" line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1281">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
        <parameters>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1275">an icon name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_pixbuf"
                   c:identifier="gtk_status_icon_new_from_pixbuf"
                   version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1210">Creates a status icon displaying @pixbuf.

The image will be scaled down to fit in the available
space in the notification area, if necessary.</doc>
        <source-position filename="gtkstatusicon.h" line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1219">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1212">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_stock"
                   c:identifier="gtk_status_icon_new_from_stock"
                   version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1252">Creates a status icon displaying a stock icon. Sample stock icon
names are #GTK_STOCK_OPEN, #GTK_STOCK_QUIT. You can register your
own stock icon names, see gtk_icon_factory_add_default() and
gtk_icon_factory_add().</doc>
        <source-position filename="gtkstatusicon.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="1261">a new #GtkStatusIcon</doc>
          <type name="StatusIcon" c:type="GtkStatusIcon*"/>
        </return-value>
        <parameters>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1254">a stock icon id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="position_menu"
                c:identifier="gtk_status_icon_position_menu"
                version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2489">Menu positioning function to use with gtk_menu_popup()
to position @menu aligned to the status icon @user_data.</doc>
        <source-position filename="gtkstatusicon.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2491">the #GtkMenu</doc>
            <type name="Menu" c:type="GtkMenu*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2492">return location for the x position</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2493">return location for the y position</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="push_in" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2494">whether the first menu item should be offset (pushed in) to be
          aligned with the menu popup position (only useful for GtkOptionMenu).</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2496">the status icon to position the menu on</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="activate">
        <source-position filename="gtkstatusicon.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="button_press_event">
        <source-position filename="gtkstatusicon.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="button_release_event">
        <source-position filename="gtkstatusicon.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="popup_menu">
        <source-position filename="gtkstatusicon.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="button" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="activate_time" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_tooltip">
        <source-position filename="gtkstatusicon.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="keyboard_mode" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="scroll_event">
        <source-position filename="gtkstatusicon.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_changed">
        <source-position filename="gtkstatusicon.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_blinking"
              c:identifier="gtk_status_icon_get_blinking"
              glib:get-property="blinking"
              version="2.10"
              deprecated="1"
              deprecated-version="2.22">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2431">Returns whether the icon is blinking, see
gtk_status_icon_set_blinking().</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkstatusicon.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2438">%TRUE if the icon is blinking</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2433">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_geometry"
              c:identifier="gtk_status_icon_get_geometry"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2615">Obtains information about the location of the status icon
on screen. This information can be used to e.g. position
popups like notification bubbles.

See gtk_status_icon_position_menu() for a more convenient
alternative for positioning menus.

Note that some platforms do not allow GTK+ to provide
this information, and even on platforms that do allow it,
the information is not reliable unless the status icon
is embedded in a notification area, see
gtk_status_icon_is_embedded().</doc>
        <source-position filename="gtkstatusicon.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2640">%TRUE if the location information has
              been filled in</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2617">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="screen"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2618">return location for the screen, or %NULL if the
         information is not needed</doc>
            <type name="Gdk.Screen" c:type="GdkScreen**"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2620">return location for the area occupied by the status
       icon, or %NULL</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="orientation"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2622">return location for the orientation of the panel
   in which the status icon is embedded, or %NULL. A panel
   at the top or bottom of the screen is horizontal, a panel
   at the left or right is vertical.</doc>
            <type name="Orientation" c:type="GtkOrientation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gicon"
              c:identifier="gtk_status_icon_get_gicon"
              glib:get-property="gicon"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2155">Retrieves the #GIcon being displayed by the #GtkStatusIcon.
The storage type of the status icon must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_GICON (see gtk_status_icon_get_storage_type()).
The caller of this function does not own a reference to the
returned #GIcon.

If this function fails, @icon is left unchanged;</doc>
        <source-position filename="gtkstatusicon.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2167">the displayed icon, or %NULL if the image is empty</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2157">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_tooltip"
              c:identifier="gtk_status_icon_get_has_tooltip"
              glib:get-property="has-tooltip"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2715">Returns the current value of the has-tooltip property.
See #GtkStatusIcon:has-tooltip for more information.</doc>
        <source-position filename="gtkstatusicon.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2722">current value of has-tooltip on @status_icon.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2717">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_status_icon_get_icon_name"
              glib:get-property="icon-name"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2123">Gets the name of the icon being displayed by the #GtkStatusIcon.
The storage type of the status icon must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_ICON_NAME (see gtk_status_icon_get_storage_type()).
The returned string is owned by the #GtkStatusIcon and should not
be freed or modified.</doc>
        <source-position filename="gtkstatusicon.h" line="104"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2133">name of the displayed icon, or %NULL if the image is empty.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2125">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf"
              c:identifier="gtk_status_icon_get_pixbuf"
              glib:get-property="pixbuf"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2057">Gets the #GdkPixbuf being displayed by the #GtkStatusIcon.
The storage type of the status icon must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_PIXBUF (see gtk_status_icon_get_storage_type()).
The caller of this function does not own a reference to the
returned pixbuf.</doc>
        <source-position filename="gtkstatusicon.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2067">the displayed pixbuf,
    or %NULL if the image is empty.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2059">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen"
              c:identifier="gtk_status_icon_get_screen"
              glib:get-property="screen"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2236">Returns the #GdkScreen associated with @status_icon.</doc>
        <source-position filename="gtkstatusicon.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2242">a #GdkScreen.</doc>
          <type name="Gdk.Screen" c:type="GdkScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2238">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="gtk_status_icon_get_size"
              glib:get-property="size"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2189">Gets the size in pixels that is available for the image.
Stock icons and named icons adapt their size automatically
if the size of the notification area changes. For other
storage types, the size-changed signal can be used to
react to size changes.

Note that the returned size is only meaningful while the
status icon is embedded (see gtk_status_icon_is_embedded()).</doc>
        <source-position filename="gtkstatusicon.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2202">the size that is available for the image</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2191">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stock"
              c:identifier="gtk_status_icon_get_stock"
              glib:get-property="stock"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2090">Gets the id of the stock icon being displayed by the #GtkStatusIcon.
The storage type of the status icon must be %GTK_IMAGE_EMPTY or
%GTK_IMAGE_STOCK (see gtk_status_icon_get_storage_type()).
The returned string is owned by the #GtkStatusIcon and should not
be freed or modified.</doc>
        <source-position filename="gtkstatusicon.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2100">stock id of the displayed stock icon,
  or %NULL if the image is empty.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2092">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_storage_type"
              c:identifier="gtk_status_icon_get_storage_type"
              glib:get-property="storage-type"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2038">Gets the type of representation being used by the #GtkStatusIcon
to store image data. If the #GtkStatusIcon has no image data,
the return value will be %GTK_IMAGE_EMPTY.</doc>
        <source-position filename="gtkstatusicon.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2046">the image representation being used</doc>
          <type name="ImageType" c:type="GtkImageType"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2040">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gtk_status_icon_get_title"
              glib:get-property="title"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2995">Gets the title of this tray icon. See gtk_status_icon_set_title().</doc>
        <source-position filename="gtkstatusicon.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="3001">the title of the status icon</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2997">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_markup"
              c:identifier="gtk_status_icon_get_tooltip_markup"
              glib:get-property="tooltip-markup"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2891">Gets the contents of the tooltip for @status_icon.</doc>
        <source-position filename="gtkstatusicon.h" line="151"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2897">the tooltip text, or %NULL. You should free the
  returned string with g_free() when done.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2893">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_text"
              c:identifier="gtk_status_icon_get_tooltip_text"
              glib:get-property="tooltip-text"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2809">Gets the contents of the tooltip for @status_icon.</doc>
        <source-position filename="gtkstatusicon.h" line="150"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2815">the tooltip text, or %NULL. You should free the
  returned string with g_free() when done.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2811">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible"
              c:identifier="gtk_status_icon_get_visible"
              glib:get-property="visible"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2371">Returns whether the status icon is visible or not.
Note that being visible does not guarantee that
the user can actually see the icon, see also
gtk_status_icon_is_embedded().</doc>
        <source-position filename="gtkstatusicon.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2380">%TRUE if the status icon is visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2373">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x11_window_id"
              c:identifier="gtk_status_icon_get_x11_window_id"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2927">This function is only useful on the X11/freedesktop.org platform.
It returns a window ID for the widget in the underlying
status icon implementation.  This is useful for the Galago
notification service, which can send a window ID in the protocol
in order for the server to position notification windows
pointing to a status icon reliably.

This function is not intended for other use cases which are
more likely to be met by one of the non-X11 specific methods, such
as gtk_status_icon_position_menu().</doc>
        <source-position filename="gtkstatusicon.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2942">An 32 bit unsigned integer identifier for the
underlying X11 Window</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2929">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_embedded"
              c:identifier="gtk_status_icon_is_embedded"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2452">Returns whether the status icon is embedded in a notification
area.</doc>
        <source-position filename="gtkstatusicon.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="2459">%TRUE if the status icon is embedded in
  a notification area.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2454">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_blinking"
              c:identifier="gtk_status_icon_set_blinking"
              glib:set-property="blinking"
              version="2.10"
              deprecated="1"
              deprecated-version="2.22">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2392">Makes the status icon start or stop blinking.
Note that blinking user interface elements may be problematic
for some users, and thus may be turned off, in which case
this setting has no effect.</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkstatusicon.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2394">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="blinking" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2395">%TRUE to turn blinking on, %FALSE to turn it off</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_file"
              c:identifier="gtk_status_icon_set_from_file"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1944">Makes @status_icon display the file @filename.
See gtk_status_icon_new_from_file() for details.</doc>
        <source-position filename="gtkstatusicon.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1946">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1947">a filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_gicon"
              c:identifier="gtk_status_icon_set_from_gicon"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2014">Makes @status_icon display the #GIcon.
See gtk_status_icon_new_from_gicon() for details.</doc>
        <source-position filename="gtkstatusicon.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2016">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2017">a GIcon</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_icon_name"
              c:identifier="gtk_status_icon_set_from_icon_name"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1992">Makes @status_icon display the icon named @icon_name from the
current icon theme.
See gtk_status_icon_new_from_icon_name() for details.</doc>
        <source-position filename="gtkstatusicon.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1994">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="icon_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1995">an icon name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_pixbuf"
              c:identifier="gtk_status_icon_set_from_pixbuf"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1920">Makes @status_icon display @pixbuf.
See gtk_status_icon_new_from_pixbuf() for details.</doc>
        <source-position filename="gtkstatusicon.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1922">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="pixbuf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1923">a #GdkPixbuf or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_from_stock"
              c:identifier="gtk_status_icon_set_from_stock"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="1971">Makes @status_icon display the stock icon with the id @stock_id.
See gtk_status_icon_new_from_stock() for details.</doc>
        <source-position filename="gtkstatusicon.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1973">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="1974">a stock icon id</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_has_tooltip"
              c:identifier="gtk_status_icon_set_has_tooltip"
              glib:set-property="has-tooltip"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2682">Sets the has-tooltip property on @status_icon to @has_tooltip.
See #GtkStatusIcon:has-tooltip for more information.</doc>
        <source-position filename="gtkstatusicon.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2684">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="has_tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2685">whether or not @status_icon has a tooltip</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gtk_status_icon_set_name"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="3026">Sets the name of this tray icon.
This should be a string identifying this icon. It is may be
used for sorting the icons in the tray and will not be shown to
the user.</doc>
        <source-position filename="gtkstatusicon.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="3028">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="3029">the name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screen"
              c:identifier="gtk_status_icon_set_screen"
              glib:set-property="screen"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2214">Sets the #GdkScreen where @status_icon is displayed; if
the icon is already mapped, it will be unmapped, and
then remapped on the new screen.</doc>
        <source-position filename="gtkstatusicon.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2216">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2217">a #GdkScreen</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="gtk_status_icon_set_title"
              glib:set-property="title"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2958">Sets the title of this tray icon.
This should be a short, human-readable, localized string
describing the tray icon. It may be used by tools like screen
readers to render the tray icon.</doc>
        <source-position filename="gtkstatusicon.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2960">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2961">the title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip"
              c:identifier="gtk_status_icon_set_tooltip"
              version="2.10"
              deprecated="1"
              deprecated-version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2258">Sets the tooltip of the status icon.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_status_icon_set_tooltip_text() instead.</doc-deprecated>
        <source-position filename="gtkstatusicon.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2260">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="tooltip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2261">the tooltip text, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_markup"
              c:identifier="gtk_status_icon_set_tooltip_markup"
              glib:set-property="tooltip-markup"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2845">Sets @markup as the contents of the tooltip, which is marked up with
 the &lt;link linkend="PangoMarkupFormat"&gt;Pango text markup language&lt;/link&gt;.

This function will take care of setting #GtkStatusIcon:has-tooltip to %TRUE
and of the default handler for the #GtkStatusIcon::query-tooltip signal.

See also the #GtkStatusIcon:tooltip-markup property and
gtk_tooltip_set_markup().</doc>
        <source-position filename="gtkstatusicon.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2847">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="markup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2848">the contents of the tooltip for @status_icon, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_text"
              c:identifier="gtk_status_icon_set_tooltip_text"
              glib:set-property="tooltip-text"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2749">Sets @text as the contents of the tooltip.

This function will take care of setting #GtkStatusIcon:has-tooltip to
%TRUE and of the default handler for the #GtkStatusIcon::query-tooltip
signal.

See also the #GtkStatusIcon:tooltip-text property and
gtk_tooltip_set_text().</doc>
        <source-position filename="gtkstatusicon.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2751">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2752">the contents of the tooltip for @status_icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible"
              c:identifier="gtk_status_icon_set_visible"
              glib:set-property="visible"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="2319">Shows or hides a status icon.</doc>
        <source-position filename="gtkstatusicon.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="status_icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2321">a #GtkStatusIcon</doc>
            <type name="StatusIcon" c:type="GtkStatusIcon*"/>
          </instance-parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="2322">%TRUE to show the status icon, %FALSE to hide it</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="blinking"
                deprecated="1"
                deprecated-version="2.22"
                writable="1"
                transfer-ownership="none"
                setter="set_blinking"
                getter="get_blinking"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="286">Whether or not the status icon is blinking.</doc>
        <doc-deprecated xml:space="preserve">This property will be removed in GTK+ 3</doc-deprecated>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="embedded"
                version="2.12"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="310">%TRUE if the statusicon is embedded in a notification area.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="file"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gicon"
                version="2.14"
                writable="1"
                transfer-ownership="none"
                getter="get_gicon">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="243">The #GIcon displayed in the #GtkStatusIcon. For themed icons,
the image will be updated automatically if the theme changes.</doc>
        <type name="Gio.Icon"/>
      </property>
      <property name="has-tooltip"
                version="2.16"
                writable="1"
                transfer-ownership="none"
                setter="set_has_tooltip"
                getter="get_has_tooltip"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="342">Enables or disables the emission of #GtkStatusIcon::query-tooltip on
@status_icon.  A value of %TRUE indicates that @status_icon can have a
tooltip, in this case the status icon will be queried using
#GtkStatusIcon::query-tooltip to determine whether it will provide a
tooltip or not.

Note that setting this property to %TRUE for the first time will change
the event masks of the windows of this status icon to include leave-notify
and motion-notify events. This will not be undone when the property is set
to %FALSE again.

Whether this property is respected is platform dependent.
For plain text tooltips, use #GtkStatusIcon:tooltip-text in preference.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon-name"
                writable="1"
                transfer-ownership="none"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="orientation"
                version="2.12"
                transfer-ownership="none"
                default-value="GTK_ORIENTATION_HORIZONTAL">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="325">The orientation of the tray in which the statusicon
is embedded.</doc>
        <type name="Orientation"/>
      </property>
      <property name="pixbuf"
                writable="1"
                transfer-ownership="none"
                getter="get_pixbuf">
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="screen"
                writable="1"
                transfer-ownership="none"
                setter="set_screen"
                getter="get_screen">
        <type name="Gdk.Screen"/>
      </property>
      <property name="size"
                transfer-ownership="none"
                getter="get_size"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="stock"
                writable="1"
                transfer-ownership="none"
                getter="get_stock"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="storage-type"
                transfer-ownership="none"
                getter="get_storage_type"
                default-value="GTK_IMAGE_EMPTY">
        <type name="ImageType"/>
      </property>
      <property name="title"
                version="2.18"
                writable="1"
                transfer-ownership="none"
                setter="set_title"
                getter="get_title"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="420">The title of this tray icon. This should be a short, human-readable,
localized string describing the tray icon. It may be used by tools
like screen readers to render the tray icon.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tooltip-markup"
                version="2.16"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_markup"
                getter="get_tooltip_markup"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="394">Sets the text of tooltip to be the given string, which is marked up
with the &lt;link linkend="PangoMarkupFormat"&gt;Pango text markup
language&lt;/link&gt;. Also see gtk_tooltip_set_markup().

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL.
#GtkStatusIcon:has-tooltip will automatically be set to %TRUE and
the default handler for the #GtkStatusIcon::query-tooltip signal
will take care of displaying the tooltip.

On some platforms, embedded markup will be ignored.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tooltip-text"
                version="2.16"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_text"
                getter="get_tooltip_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="368">Sets the text of tooltip to be the given string.

Also see gtk_tooltip_set_text().

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL.
#GtkStatusIcon:has-tooltip will automatically be set to %TRUE and
the default handler for the #GtkStatusIcon::query-tooltip signal
will take care of displaying the tooltip.

Note that some platforms have limitations on the length of tooltips
that they allow on status icons, e.g. Windows only shows the first
64 characters.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="visible"
                writable="1"
                transfer-ownership="none"
                setter="set_visible"
                getter="get_visible"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="StatusIconPrivate" c:type="GtkStatusIconPrivate*"/>
      </field>
      <glib:signal name="activate" when="first" action="1" version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="437">Gets emitted when the user activates the status icon.
If and how status icons can activated is platform-dependent.

Unlike most G_SIGNAL_ACTION signals, this signal is meant to
be used by applications and should be wrapped by language bindings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="button-press-event" when="last" version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="518">The ::button-press-event signal will be emitted when a button
(typically from a mouse) is pressed.

Whether this event is emitted is platform-dependent.  Use the ::activate
and ::popup-menu signals in preference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="529">%TRUE to stop other handlers from being invoked
for the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="521">the #GdkEventButton which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="button-release-event" when="last" version="2.14">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="544">The ::button-release-event signal will be emitted when a button
(typically from a mouse) is released.

Whether this event is emitted is platform-dependent.  Use the ::activate
and ::popup-menu signals in preference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="555">%TRUE to stop other handlers from being invoked
for the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="547">the #GdkEventButton which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="popup-menu" when="first" action="1" version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="460">Gets emitted when the user brings up the context menu
of the status icon. Whether status icons can have context
menus and how these are activated is platform-dependent.

The @button and @activate_time parameters should be
passed as the last to arguments to gtk_menu_popup().

Unlike most G_SIGNAL_ACTION signals, this signal is meant to
be used by applications and should be wrapped by language bindings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="463">the button that was pressed, or 0 if the
  signal is not emitted in response to a button press event</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="activate_time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="465">the timestamp of the event that
  triggered the signal emission</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-tooltip" when="last" version="2.16">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="594">Emitted when the #GtkSettings:gtk-tooltip-timeout has expired with the
cursor hovering above @status_icon; or emitted when @status_icon got
focus in keyboard mode.

Using the given coordinates, the signal handler should determine
whether a tooltip should be shown for @status_icon. If this is
the case %TRUE should be returned, %FALSE otherwise. Note that if
@keyboard_mode is %TRUE, the values of @x and @y are undefined and
should not be used.

The signal handler is free to manipulate @tooltip with the therefore
destined function calls.

Whether this signal is emitted is platform-dependent.
For plain text tooltips, use #GtkStatusIcon:tooltip-text in preference.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="620">%TRUE if @tooltip should be shown right now, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="597">the x coordinate of the cursor position where the request has been
    emitted, relative to @status_icon</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="599">the y coordinate of the cursor position where the request has been
    emitted, relative to @status_icon</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="keyboard_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="601">%TRUE if the tooltip was trigged using the keyboard</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="602">a #GtkTooltip</doc>
            <type name="Tooltip"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="scroll-event" when="last">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="570">The ::scroll-event signal is emitted when a button in the 4 to 7
range is pressed. Wheel mice are usually configured to generate
button press events for buttons 4 and 5 when the wheel is turned.

Whether this event is emitted is platform-dependent.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="581">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="573">the #GdkEventScroll which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="size-changed" when="last" version="2.10">
        <doc xml:space="preserve"
             filename="gtkstatusicon.c"
             line="493">Gets emitted when the size available for the image
changes, e.g. because the notification area got resized.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusicon.c"
               line="501">%TRUE if the icon was updated for the new
size. Otherwise, GTK+ will scale the icon as necessary.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusicon.c"
                 line="496">the new size</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="StatusIconClass"
            c:type="GtkStatusIconClass"
            glib:is-gtype-struct-for="StatusIcon">
      <source-position filename="gtkstatusicon.h" line="78"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="activate">
        <callback name="activate">
          <source-position filename="gtkstatusicon.h" line="58"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="popup_menu">
        <callback name="popup_menu">
          <source-position filename="gtkstatusicon.h" line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="button" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="activate_time" transfer-ownership="none">
              <type name="guint32" c:type="guint32"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_changed">
        <callback name="size_changed">
          <source-position filename="gtkstatusicon.h" line="62"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="button_press_event">
        <callback name="button_press_event">
          <source-position filename="gtkstatusicon.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="button_release_event">
        <callback name="button_release_event">
          <source-position filename="gtkstatusicon.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="scroll_event">
        <callback name="scroll_event">
          <source-position filename="gtkstatusicon.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_tooltip">
        <callback name="query_tooltip">
          <source-position filename="gtkstatusicon.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="status_icon" transfer-ownership="none">
              <type name="StatusIcon" c:type="GtkStatusIcon*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="keyboard_mode" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="tooltip" transfer-ownership="none">
              <type name="Tooltip" c:type="GtkTooltip*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="__gtk_reserved1">
        <type name="gpointer" c:type="void*"/>
      </field>
      <field name="__gtk_reserved2">
        <type name="gpointer" c:type="void*"/>
      </field>
    </record>
    <record name="StatusIconPrivate"
            c:type="GtkStatusIconPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtkstatusicon.h" line="45"/>
    </record>
    <class name="Statusbar"
           c:symbol-prefix="statusbar"
           c:type="GtkStatusbar"
           parent="HBox"
           glib:type-name="GtkStatusbar"
           glib:get-type="gtk_statusbar_get_type"
           glib:type-struct="StatusbarClass">
      <source-position filename="gtkstatusbar.h" line="86"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_statusbar_new">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="264">Creates a new #GtkStatusbar ready for messages.</doc>
        <source-position filename="gtkstatusbar.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusbar.c"
               line="269">the new #GtkStatusbar</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="text_popped">
        <source-position filename="gtkstatusbar.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="text_pushed">
        <source-position filename="gtkstatusbar.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_context_id"
              c:identifier="gtk_statusbar_get_context_id">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="290">Returns a new context identifier, given a description
of the actual context. Note that the description is
&lt;emphasis&gt;not&lt;/emphasis&gt; shown in the UI.</doc>
        <source-position filename="gtkstatusbar.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusbar.c"
               line="300">an integer id</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="292">a #GtkStatusbar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="293">textual description of what context
                      the new message is being used in</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_has_resize_grip"
              c:identifier="gtk_statusbar_get_has_resize_grip"
              glib:get-property="has-resize-grip">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="572">Returns whether the statusbar has a resize grip.</doc>
        <source-position filename="gtkstatusbar.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusbar.c"
               line="578">%TRUE if the statusbar has a resize grip.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="574">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_message_area"
              c:identifier="gtk_statusbar_get_message_area"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="588">Retrieves the box containing the label widget.</doc>
        <source-position filename="gtkstatusbar.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusbar.c"
               line="594">a #GtkBox</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="590">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pop" c:identifier="gtk_statusbar_pop">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="366">Removes the first message in the #GtkStatusBar's stack
with the given context id.

Note that this may not change the displayed message, if
the message at the top of the stack has a different
context id.</doc>
        <source-position filename="gtkstatusbar.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="368">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="369">a context identifier</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="push" c:identifier="gtk_statusbar_push">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="328">Pushes a new message onto a statusbar's stack.</doc>
        <source-position filename="gtkstatusbar.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstatusbar.c"
               line="337">a message id that can be used with
         gtk_statusbar_remove().</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="330">a #GtkStatusbar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="331">the message's context id, as returned by
             gtk_statusbar_get_context_id()</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="333">the message to add to the statusbar</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_statusbar_remove">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="415">Forces the removal of a message from a statusbar's stack.
The exact @context_id and @message_id must be specified.</doc>
        <source-position filename="gtkstatusbar.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="417">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="418">a context identifier</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="message_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="419">a message identifier, as returned by gtk_statusbar_push()</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all"
              c:identifier="gtk_statusbar_remove_all"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="465">Forces the removal of all messages from a statusbar's
stack with the exact @context_id.</doc>
        <source-position filename="gtkstatusbar.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="467">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="468">a context identifier</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_has_resize_grip"
              c:identifier="gtk_statusbar_set_has_resize_grip"
              glib:set-property="has-resize-grip">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="534">Sets whether the statusbar has a resize grip.
%TRUE by default.</doc>
        <source-position filename="gtkstatusbar.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="statusbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="536">a #GtkStatusBar</doc>
            <type name="Statusbar" c:type="GtkStatusbar*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="537">%TRUE to have a resize grip</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="has-resize-grip"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_has_resize_grip"
                getter="get_has_resize_grip"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="138">Whether the statusbar has a grip for resizing the toplevel window.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_widget">
        <type name="HBox" c:type="GtkHBox"/>
      </field>
      <field name="frame">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="label">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="messages">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="keys">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="seq_context_id">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="seq_message_id">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="grip_window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="has_resize_grip" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="text-popped" when="last">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="172">Is emitted whenever a new message is popped off a statusbar's stack.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="175">the context id of the relevant message/statusbar.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="176">the message that was just popped.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="text-pushed" when="last">
        <doc xml:space="preserve"
             filename="gtkstatusbar.c"
             line="153">Is emitted whenever a new message gets pushed onto a statusbar's stack.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="context_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="156">the context id of the relevant message/statusbar.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstatusbar.c"
                 line="157">the message that was pushed.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="StatusbarClass"
            c:type="GtkStatusbarClass"
            glib:is-gtype-struct-for="Statusbar">
      <source-position filename="gtkstatusbar.h" line="86"/>
      <field name="parent_class">
        <type name="HBoxClass" c:type="GtkHBoxClass"/>
      </field>
      <field name="reserved">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="text_pushed">
        <callback name="text_pushed">
          <source-position filename="gtkstatusbar.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="statusbar" transfer-ownership="none">
              <type name="Statusbar" c:type="GtkStatusbar*"/>
            </parameter>
            <parameter name="context_id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="text_popped">
        <callback name="text_popped">
          <source-position filename="gtkstatusbar.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="statusbar" transfer-ownership="none">
              <type name="Statusbar" c:type="GtkStatusbar*"/>
            </parameter>
            <parameter name="context_id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkstatusbar.h" line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkstatusbar.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkstatusbar.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtkstatusbar.h" line="85"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="StockItem" c:type="GtkStockItem">
      <source-position filename="gtkstock.h" line="49"/>
      <field name="stock_id" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="label" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="modifier" writable="1">
        <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
      </field>
      <field name="keyval" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="translation_domain" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy"
              c:identifier="gtk_stock_item_copy"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkstock.c"
             line="264">Copies a stock item, mostly useful for language bindings and not in applications.</doc>
        <source-position filename="gtkstock.h" line="63"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="270">a new #GtkStockItem</doc>
          <type name="StockItem" c:type="GtkStockItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstock.c"
                 line="266">a #GtkStockItem</doc>
            <type name="StockItem" c:type="const GtkStockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_stock_item_free">
        <doc xml:space="preserve"
             filename="gtkstock.c"
             line="290">Frees a stock item allocated on the heap, such as one returned by
gtk_stock_item_copy(). Also frees the fields inside the stock item,
if they are not %NULL.</doc>
        <source-position filename="gtkstock.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstock.c"
                 line="292">a #GtkStockItem</doc>
            <type name="StockItem" c:type="GtkStockItem*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="Style"
           c:symbol-prefix="style"
           c:type="GtkStyle"
           parent="GObject.Object"
           glib:type-name="GtkStyle"
           glib:get-type="gtk_style_get_type"
           glib:type-struct="StyleClass">
      <source-position filename="gtkstyle.h" line="430"/>
      <constructor name="new" c:identifier="gtk_style_new">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="683">Creates a new #GtkStyle.</doc>
        <source-position filename="gtkstyle.h" line="441"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="685">a new #GtkStyle.</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
      </constructor>
      <virtual-method name="clone" introspectable="0">
        <source-position filename="gtkstyle.h" line="150"/>
        <return-value>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="copy">
        <source-position filename="gtkstyle.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="src" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_arrow">
        <source-position filename="gtkstyle.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="arrow_type" transfer-ownership="none">
            <type name="ArrowType" c:type="GtkArrowType"/>
          </parameter>
          <parameter name="fill" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_box">
        <source-position filename="gtkstyle.h" line="246"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_box_gap">
        <source-position filename="gtkstyle.h" line="315"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="gap_side" transfer-ownership="none">
            <type name="PositionType" c:type="GtkPositionType"/>
          </parameter>
          <parameter name="gap_x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="gap_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_check">
        <source-position filename="gtkstyle.h" line="268"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_diamond">
        <source-position filename="gtkstyle.h" line="226"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_expander">
        <source-position filename="gtkstyle.h" line="376"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="expander_style" transfer-ownership="none">
            <type name="ExpanderStyle" c:type="GtkExpanderStyle"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_extension">
        <source-position filename="gtkstyle.h" line="329"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="gap_side" transfer-ownership="none">
            <type name="PositionType" c:type="GtkPositionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_flat_box">
        <source-position filename="gtkstyle.h" line="257"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_focus">
        <source-position filename="gtkstyle.h" line="341"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_handle">
        <source-position filename="gtkstyle.h" line="363"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <type name="Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_hline">
        <source-position filename="gtkstyle.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="x2" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_layout">
        <source-position filename="gtkstyle.h" line="385"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="use_text" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="layout" transfer-ownership="none">
            <type name="Pango.Layout" c:type="PangoLayout*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_option">
        <source-position filename="gtkstyle.h" line="279"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_polygon">
        <source-position filename="gtkstyle.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="point" transfer-ownership="none">
            <type name="Gdk.Point" c:type="GdkPoint*"/>
          </parameter>
          <parameter name="npoints" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="fill" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_resize_grip">
        <source-position filename="gtkstyle.h" line="395"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="edge" transfer-ownership="none">
            <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_shadow">
        <source-position filename="gtkstyle.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_shadow_gap">
        <source-position filename="gtkstyle.h" line="301"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="gap_side" transfer-ownership="none">
            <type name="PositionType" c:type="GtkPositionType"/>
          </parameter>
          <parameter name="gap_x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="gap_width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_slider">
        <source-position filename="gtkstyle.h" line="351"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="orientation" transfer-ownership="none">
            <type name="Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_spinner">
        <source-position filename="gtkstyle.h" line="406"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="step" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_string">
        <source-position filename="gtkstyle.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_tab">
        <source-position filename="gtkstyle.h" line="290"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="draw_vline">
        <source-position filename="gtkstyle.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="y1_" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y2_" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="init_from_rc">
        <source-position filename="gtkstyle.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="rc_style" transfer-ownership="none">
            <type name="RcStyle" c:type="GtkRcStyle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="realize">
        <source-position filename="gtkstyle.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render_icon" invoker="render_icon">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="2165">Renders the icon specified by @source at the given @size
according to the given parameters and returns the result in a
pixbuf.</doc>
        <source-position filename="gtkstyle.h" line="163"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="2181">a newly-created #GdkPixbuf
    containing the rendered icon</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2167">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2168">the #GtkIconSource specifying the icon to render</doc>
            <type name="IconSource" c:type="const GtkIconSource*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2169">a text direction</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2170">a state</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2171">the size to render the icon at. A size of
    (GtkIconSize)-1 means render at the size of the source and
    don't scale.</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2174">the widget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2175">a style detail</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_background" invoker="set_background">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="1621">Sets the background of @window to the background color or pixmap
specified by @style for the given state.</doc>
        <source-position filename="gtkstyle.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1623">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1624">a #GdkWindow</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1625">a state</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unrealize">
        <source-position filename="gtkstyle.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="apply_default_background"
              c:identifier="gtk_style_apply_default_background">
        <source-position filename="gtkstyle.h" line="459"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="set_bg" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="area"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="attach" c:identifier="gtk_style_attach" introspectable="0">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="699">Attaches a style to a window; this process allocates the
colors and creates the GC's for the style - it specializes
it to a particular visual and colormap. The process may
involve the creation of a new style if the style has already
been attached to a window with a different style and colormap.

Since this function may return a new object, you have to use it
in the following way:
&lt;literal&gt;style = gtk_style_attach (style, window)&lt;/literal&gt;</doc>
        <source-position filename="gtkstyle.h" line="443"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="714">Either @style, or a newly-created #GtkStyle.
  If the style is newly created, the style parameter
  will be unref'ed, and the new style will have
  a reference count belonging to the caller.</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="701">a #GtkStyle.</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="702">a #GdkWindow.</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gtk_style_copy">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="642">Creates a copy of the passed in #GtkStyle object.</doc>
        <source-position filename="gtkstyle.h" line="442"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="648">a copy of @style</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="644">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="detach" c:identifier="gtk_style_detach">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="794">Detaches a style from a window. If the style is not attached
to any windows anymore, it is unrealized. See gtk_style_attach().</doc>
        <source-position filename="gtkstyle.h" line="445"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="796">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get"
              c:identifier="gtk_style_get"
              version="2.16"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="1873">Gets the values of a multiple style properties for @widget_type
from @style.</doc>
        <source-position filename="gtkstyle.h" line="894"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1875">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="widget_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1876">the #GType of a descendant of #GtkWidget</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1877">the name of the first style property to get</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1878">pairs of property names and locations to
  return the property values, starting with the location for
  @first_property_name, terminated by %NULL.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="get_font" c:identifier="gtk_style_get_font">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="6900">Gets the #GdkFont to use for the given style. This is
meant only as a replacement for direct access to @style-&gt;font
and should not be used in new code. New code should
use @style-&gt;font_desc instead.</doc>
        <source-position filename="gtkstyle.h" line="451"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6909">the #GdkFont for the style. This font is owned
  by the style; if you want to keep around a copy, you must
  call gdk_font_ref().</doc>
          <type name="Gdk.Font" c:type="GdkFont*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="6902">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style_property"
              c:identifier="gtk_style_get_style_property"
              version="2.16">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="1756">Queries the value of a style property corresponding to a
widget class is in the given style.</doc>
        <source-position filename="gtkstyle.h" line="886"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1758">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="widget_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1759">the #GType of a descendant of #GtkWidget</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1760">the name of the style property to get</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1761">a #GValue where the value of the property being
    queried will be stored</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_valist"
              c:identifier="gtk_style_get_valist"
              version="2.16"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="1809">Non-vararg variant of gtk_style_get().
Used primarily by language bindings.</doc>
        <source-position filename="gtkstyle.h" line="890"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1811">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="widget_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1812">the #GType of a descendant of #GtkWidget</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1813">the name of the first style property to get</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1814">a &lt;type&gt;va_list&lt;/type&gt; of pairs of property names and
    locations to return the property values, starting with the
    location for @first_property_name.</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_color"
              c:identifier="gtk_style_lookup_color"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="905">Looks up @color_name in the style's logical color mappings,
filling in @color and returning %TRUE if found, otherwise
returning %FALSE. Do not cache the found mapping, because
it depends on the #GtkStyle and might change when a theme
switch occurs.</doc>
        <source-position filename="gtkstyle.h" line="471"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="917">%TRUE if the mapping was found.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="907">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="color_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="908">the name of the logical color to look up</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="color"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="909">the #GdkColor to fill in</doc>
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_icon_set" c:identifier="gtk_style_lookup_icon_set">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="871">Looks up @stock_id in the icon factories associated with @style
and the default icon factory, returning an icon set if found,
otherwise %NULL.</doc>
        <source-position filename="gtkstyle.h" line="469"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="880">icon set of @stock_id</doc>
          <type name="IconSet" c:type="GtkIconSet*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="873">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="874">an icon name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref"
              c:identifier="gtk_style_ref"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="832">Increase the reference count of @style.</doc>
        <doc-deprecated xml:space="preserve">use g_object_ref() instead.</doc-deprecated>
        <source-position filename="gtkstyle.h" line="448"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="835">@style.</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="834">a #GtkStyle.</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="render_icon" c:identifier="gtk_style_render_icon">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="2165">Renders the icon specified by @source at the given @size
according to the given parameters and returns the result in a
pixbuf.</doc>
        <source-position filename="gtkstyle.h" line="475"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="2181">a newly-created #GdkPixbuf
    containing the rendered icon</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2167">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2168">the #GtkIconSource specifying the icon to render</doc>
            <type name="IconSource" c:type="const GtkIconSource*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2169">a text direction</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2170">a state</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2171">the size to render the icon at. A size of
    (GtkIconSize)-1 means render at the size of the source and
    don't scale.</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2174">the widget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="detail"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2175">a style detail</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_background" c:identifier="gtk_style_set_background">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="1621">Sets the background of @window to the background color or pixmap
specified by @style for the given state.</doc>
        <source-position filename="gtkstyle.h" line="456"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1623">a #GtkStyle</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1624">a #GdkWindow</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="state_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="1625">a state</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_font" c:identifier="gtk_style_set_font">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="6921">Sets the #GdkFont to use for a given style. This is
meant only as a replacement for direct access to style-&gt;font
and should not be used in new code. New code should
use style-&gt;font_desc instead.</doc>
        <source-position filename="gtkstyle.h" line="452"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="6923">a #GtkStyle.</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
          <parameter name="font"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="6924">a #GdkFont, or %NULL to use the #GdkFont corresponding
  to style-&gt;font_desc.</doc>
            <type name="Gdk.Font" c:type="GdkFont*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref"
              c:identifier="gtk_style_unref"
              deprecated="1"
              deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="847">Decrease the reference count of @style.</doc>
        <doc-deprecated xml:space="preserve">use g_object_unref() instead.</doc-deprecated>
        <source-position filename="gtkstyle.h" line="449"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="849">a #GtkStyle.</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="fg">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="bg">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="light">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="dark">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="mid">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="text">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="base">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="text_aa">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Color" c:type="GdkColor"/>
        </array>
      </field>
      <field name="black">
        <type name="Gdk.Color" c:type="GdkColor"/>
      </field>
      <field name="white">
        <type name="Gdk.Color" c:type="GdkColor"/>
      </field>
      <field name="font_desc">
        <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
      </field>
      <field name="xthickness">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="ythickness">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="fg_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="bg_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="light_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="dark_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="mid_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="text_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="base_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="text_aa_gc">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </array>
      </field>
      <field name="black_gc">
        <type name="Gdk.GC" c:type="GdkGC*"/>
      </field>
      <field name="white_gc">
        <type name="Gdk.GC" c:type="GdkGC*"/>
      </field>
      <field name="bg_pixmap">
        <array zero-terminated="0" fixed-size="5">
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </array>
      </field>
      <field name="attach_count" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="depth" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="colormap" readable="0" private="1">
        <type name="Gdk.Colormap" c:type="GdkColormap*"/>
      </field>
      <field name="private_font" readable="0" private="1">
        <type name="Gdk.Font" c:type="GdkFont*"/>
      </field>
      <field name="private_font_desc" readable="0" private="1">
        <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
      </field>
      <field name="rc_style" readable="0" private="1">
        <type name="RcStyle" c:type="GtkRcStyle*"/>
      </field>
      <field name="styles" readable="0" private="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="property_cache" readable="0" private="1">
        <array name="GLib.Array" c:type="GArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="icon_factories" readable="0" private="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <glib:signal name="realize" when="first" version="2.4">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="530">Emitted when the style has been initialized for a particular
colormap and depth. Connecting to this signal is probably seldom
useful since most of the time applications and widgets only
deal with styles that have been already realized.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unrealize" when="first" version="2.4">
        <doc xml:space="preserve"
             filename="gtkstyle.c"
             line="548">Emitted when the aspects of the style specific to a particular colormap
and depth are being cleaned up. A connection to this signal can be useful
if a widget wants to cache objects like a #GdkGC as object data on #GtkStyle.
This signal provides a convenient place to free such cached objects.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="StyleClass"
            c:type="GtkStyleClass"
            glib:is-gtype-struct-for="Style">
      <source-position filename="gtkstyle.h" line="430"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="realize">
        <callback name="realize">
          <source-position filename="gtkstyle.h" line="133"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unrealize">
        <callback name="unrealize">
          <source-position filename="gtkstyle.h" line="138"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="copy">
        <callback name="copy">
          <source-position filename="gtkstyle.h" line="142"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="src" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="clone" introspectable="0">
        <callback name="clone" introspectable="0">
          <source-position filename="gtkstyle.h" line="150"/>
          <return-value>
            <type name="Style" c:type="GtkStyle*"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="init_from_rc">
        <callback name="init_from_rc">
          <source-position filename="gtkstyle.h" line="155"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="rc_style" transfer-ownership="none">
              <type name="RcStyle" c:type="GtkRcStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_background">
        <callback name="set_background">
          <source-position filename="gtkstyle.h" line="158"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="1623">a #GtkStyle</doc>
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="1624">a #GdkWindow</doc>
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="1625">a state</doc>
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_icon">
        <callback name="render_icon">
          <source-position filename="gtkstyle.h" line="163"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtkstyle.c"
                 line="2181">a newly-created #GdkPixbuf
    containing the rendered icon</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2167">a #GtkStyle</doc>
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2168">the #GtkIconSource specifying the icon to render</doc>
              <type name="IconSource" c:type="const GtkIconSource*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2169">a text direction</doc>
              <type name="TextDirection" c:type="GtkTextDirection"/>
            </parameter>
            <parameter name="state" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2170">a state</doc>
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="size" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2171">the size to render the icon at. A size of
    (GtkIconSize)-1 means render at the size of the source and
    don't scale.</doc>
              <type name="gint" c:type="GtkIconSize"/>
            </parameter>
            <parameter name="widget"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2174">the widget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtkstyle.c"
                   line="2175">a style detail</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_hline">
        <callback name="draw_hline">
          <source-position filename="gtkstyle.h" line="174"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x1" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="x2" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_vline">
        <callback name="draw_vline">
          <source-position filename="gtkstyle.h" line="183"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="y1_" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y2_" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_shadow">
        <callback name="draw_shadow">
          <source-position filename="gtkstyle.h" line="192"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_polygon">
        <callback name="draw_polygon">
          <source-position filename="gtkstyle.h" line="203"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="point" transfer-ownership="none">
              <type name="Gdk.Point" c:type="GdkPoint*"/>
            </parameter>
            <parameter name="npoints" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="fill" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_arrow">
        <callback name="draw_arrow">
          <source-position filename="gtkstyle.h" line="213"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="arrow_type" transfer-ownership="none">
              <type name="ArrowType" c:type="GtkArrowType"/>
            </parameter>
            <parameter name="fill" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_diamond">
        <callback name="draw_diamond">
          <source-position filename="gtkstyle.h" line="226"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_string">
        <callback name="draw_string">
          <source-position filename="gtkstyle.h" line="237"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="string" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_box">
        <callback name="draw_box">
          <source-position filename="gtkstyle.h" line="246"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_flat_box">
        <callback name="draw_flat_box">
          <source-position filename="gtkstyle.h" line="257"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_check">
        <callback name="draw_check">
          <source-position filename="gtkstyle.h" line="268"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_option">
        <callback name="draw_option">
          <source-position filename="gtkstyle.h" line="279"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_tab">
        <callback name="draw_tab">
          <source-position filename="gtkstyle.h" line="290"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_shadow_gap">
        <callback name="draw_shadow_gap">
          <source-position filename="gtkstyle.h" line="301"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="gap_side" transfer-ownership="none">
              <type name="PositionType" c:type="GtkPositionType"/>
            </parameter>
            <parameter name="gap_x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="gap_width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_box_gap">
        <callback name="draw_box_gap">
          <source-position filename="gtkstyle.h" line="315"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="gap_side" transfer-ownership="none">
              <type name="PositionType" c:type="GtkPositionType"/>
            </parameter>
            <parameter name="gap_x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="gap_width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_extension">
        <callback name="draw_extension">
          <source-position filename="gtkstyle.h" line="329"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="gap_side" transfer-ownership="none">
              <type name="PositionType" c:type="GtkPositionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_focus">
        <callback name="draw_focus">
          <source-position filename="gtkstyle.h" line="341"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_slider">
        <callback name="draw_slider">
          <source-position filename="gtkstyle.h" line="351"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="orientation" transfer-ownership="none">
              <type name="Orientation" c:type="GtkOrientation"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_handle">
        <callback name="draw_handle">
          <source-position filename="gtkstyle.h" line="363"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="shadow_type" transfer-ownership="none">
              <type name="ShadowType" c:type="GtkShadowType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="orientation" transfer-ownership="none">
              <type name="Orientation" c:type="GtkOrientation"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_expander">
        <callback name="draw_expander">
          <source-position filename="gtkstyle.h" line="376"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="expander_style" transfer-ownership="none">
              <type name="ExpanderStyle" c:type="GtkExpanderStyle"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_layout">
        <callback name="draw_layout">
          <source-position filename="gtkstyle.h" line="385"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="use_text" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="layout" transfer-ownership="none">
              <type name="Pango.Layout" c:type="PangoLayout*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_resize_grip">
        <callback name="draw_resize_grip">
          <source-position filename="gtkstyle.h" line="395"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="edge" transfer-ownership="none">
              <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw_spinner">
        <callback name="draw_spinner">
          <source-position filename="gtkstyle.h" line="406"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
            <parameter name="state_type" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
            <parameter name="area" transfer-ownership="none">
              <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="detail" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkstyle.h" line="419"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkstyle.h" line="420"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkstyle.h" line="421"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtkstyle.h" line="422"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved5" introspectable="0">
        <callback name="_gtk_reserved5">
          <source-position filename="gtkstyle.h" line="423"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved6" introspectable="0">
        <callback name="_gtk_reserved6">
          <source-position filename="gtkstyle.h" line="424"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved7" introspectable="0">
        <callback name="_gtk_reserved7">
          <source-position filename="gtkstyle.h" line="425"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved8" introspectable="0">
        <callback name="_gtk_reserved8">
          <source-position filename="gtkstyle.h" line="426"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved9" introspectable="0">
        <callback name="_gtk_reserved9">
          <source-position filename="gtkstyle.h" line="427"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved10" introspectable="0">
        <callback name="_gtk_reserved10">
          <source-position filename="gtkstyle.h" line="428"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved11" introspectable="0">
        <callback name="_gtk_reserved11">
          <source-position filename="gtkstyle.h" line="429"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="SubmenuDirection"
                 glib:type-name="GtkSubmenuDirection"
                 glib:get-type="gtk_submenu_direction_get_type"
                 c:type="GtkSubmenuDirection">
      <member name="left"
              value="0"
              c:identifier="GTK_DIRECTION_LEFT"
              glib:nick="left"
              glib:name="GTK_DIRECTION_LEFT">
      </member>
      <member name="right"
              value="1"
              c:identifier="GTK_DIRECTION_RIGHT"
              glib:nick="right"
              glib:name="GTK_DIRECTION_RIGHT">
      </member>
    </enumeration>
    <enumeration name="SubmenuPlacement"
                 glib:type-name="GtkSubmenuPlacement"
                 glib:get-type="gtk_submenu_placement_get_type"
                 c:type="GtkSubmenuPlacement">
      <member name="top_bottom"
              value="0"
              c:identifier="GTK_TOP_BOTTOM"
              glib:nick="top-bottom"
              glib:name="GTK_TOP_BOTTOM">
      </member>
      <member name="left_right"
              value="1"
              c:identifier="GTK_LEFT_RIGHT"
              glib:nick="left-right"
              glib:name="GTK_LEFT_RIGHT">
      </member>
    </enumeration>
    <function-macro name="TABLE" c:identifier="GTK_TABLE" introspectable="0">
      <source-position filename="gtktable.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TABLE_CLASS"
                    c:identifier="GTK_TABLE_CLASS"
                    introspectable="0">
      <source-position filename="gtktable.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TABLE_GET_CLASS"
                    c:identifier="GTK_TABLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktable.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEAROFF_MENU_ITEM"
                    c:identifier="GTK_TEAROFF_MENU_ITEM"
                    introspectable="0">
      <source-position filename="gtktearoffmenuitem.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEAROFF_MENU_ITEM_CLASS"
                    c:identifier="GTK_TEAROFF_MENU_ITEM_CLASS"
                    introspectable="0">
      <source-position filename="gtktearoffmenuitem.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEAROFF_MENU_ITEM_GET_CLASS"
                    c:identifier="GTK_TEAROFF_MENU_ITEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktearoffmenuitem.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT" c:identifier="GTK_TEXT" introspectable="0">
      <source-position filename="gtktext.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_BUFFER"
                    c:identifier="GTK_TEXT_BUFFER"
                    introspectable="0">
      <source-position filename="gtktextbuffer.h" line="66"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_BUFFER_CLASS"
                    c:identifier="GTK_TEXT_BUFFER_CLASS"
                    introspectable="0">
      <source-position filename="gtktextbuffer.h" line="67"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_BUFFER_GET_CLASS"
                    c:identifier="GTK_TEXT_BUFFER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktextbuffer.h" line="70"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_CHILD_ANCHOR"
                    c:identifier="GTK_TEXT_CHILD_ANCHOR"
                    introspectable="0">
      <source-position filename="gtktextchild.h" line="49"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_CHILD_ANCHOR_CLASS"
                    c:identifier="GTK_TEXT_CHILD_ANCHOR_CLASS"
                    introspectable="0">
      <source-position filename="gtktextchild.h" line="50"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_CHILD_ANCHOR_GET_CLASS"
                    c:identifier="GTK_TEXT_CHILD_ANCHOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktextchild.h" line="53"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_CLASS"
                    c:identifier="GTK_TEXT_CLASS"
                    introspectable="0">
      <source-position filename="gtktext.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_GET_CLASS"
                    c:identifier="GTK_TEXT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktext.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_INDEX"
                    c:identifier="GTK_TEXT_INDEX"
                    introspectable="0">
      <source-position filename="gtktext.h" line="207"/>
      <parameters>
        <parameter name="t">
        </parameter>
        <parameter name="index">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_LAYOUT"
                    c:identifier="GTK_TEXT_LAYOUT"
                    introspectable="0">
      <source-position filename="gtktextlayout.h" line="103"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_LAYOUT_CLASS"
                    c:identifier="GTK_TEXT_LAYOUT_CLASS"
                    introspectable="0">
      <source-position filename="gtktextlayout.h" line="104"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_LAYOUT_GET_CLASS"
                    c:identifier="GTK_TEXT_LAYOUT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktextlayout.h" line="107"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_MARK"
                    c:identifier="GTK_TEXT_MARK"
                    introspectable="0">
      <source-position filename="gtktextmark.h" line="65"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_MARK_CLASS"
                    c:identifier="GTK_TEXT_MARK_CLASS"
                    introspectable="0">
      <source-position filename="gtktextmark.h" line="66"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_MARK_GET_CLASS"
                    c:identifier="GTK_TEXT_MARK_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktextmark.h" line="69"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG"
                    c:identifier="GTK_TEXT_TAG"
                    introspectable="0">
      <source-position filename="gtktexttag.h" line="73"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG_CLASS"
                    c:identifier="GTK_TEXT_TAG_CLASS"
                    introspectable="0">
      <source-position filename="gtktexttag.h" line="74"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG_GET_CLASS"
                    c:identifier="GTK_TEXT_TAG_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktexttag.h" line="77"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG_TABLE"
                    c:identifier="GTK_TEXT_TAG_TABLE"
                    introspectable="0">
      <source-position filename="gtktexttagtable.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG_TABLE_CLASS"
                    c:identifier="GTK_TEXT_TAG_TABLE_CLASS"
                    introspectable="0">
      <source-position filename="gtktexttagtable.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_TAG_TABLE_GET_CLASS"
                    c:identifier="GTK_TEXT_TAG_TABLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktexttagtable.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_VIEW"
                    c:identifier="GTK_TEXT_VIEW"
                    introspectable="0">
      <source-position filename="gtktextview.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_VIEW_CLASS"
                    c:identifier="GTK_TEXT_VIEW_CLASS"
                    introspectable="0">
      <source-position filename="gtktextview.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEXT_VIEW_GET_CLASS"
                    c:identifier="GTK_TEXT_VIEW_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktextview.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TEXT_VIEW_PRIORITY_VALIDATE"
              value="5"
              c:type="GTK_TEXT_VIEW_PRIORITY_VALIDATE">
      <source-position filename="gtktextview.h" line="59"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="TIPS_QUERY"
                    c:identifier="GTK_TIPS_QUERY"
                    introspectable="0">
      <source-position filename="gtktipsquery.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TIPS_QUERY_CLASS"
                    c:identifier="GTK_TIPS_QUERY_CLASS"
                    introspectable="0">
      <source-position filename="gtktipsquery.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TIPS_QUERY_GET_CLASS"
                    c:identifier="GTK_TIPS_QUERY_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktipsquery.h" line="47"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_ACTION"
                    c:identifier="GTK_TOGGLE_ACTION"
                    introspectable="0">
      <source-position filename="gtktoggleaction.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_ACTION_CLASS"
                    c:identifier="GTK_TOGGLE_ACTION_CLASS"
                    introspectable="0">
      <source-position filename="gtktoggleaction.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_ACTION_GET_CLASS"
                    c:identifier="GTK_TOGGLE_ACTION_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoggleaction.h" line="47"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_BUTTON"
                    c:identifier="GTK_TOGGLE_BUTTON"
                    introspectable="0">
      <source-position filename="gtktogglebutton.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_BUTTON_CLASS"
                    c:identifier="GTK_TOGGLE_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="gtktogglebutton.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_BUTTON_GET_CLASS"
                    c:identifier="GTK_TOGGLE_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktogglebutton.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TOGGLE_GROUP_MOD_MASK"
              value="0"
              c:type="GTK_TOGGLE_GROUP_MOD_MASK">
      <source-position filename="gtkprivate.h" line="137"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="TOGGLE_TOOL_BUTTON"
                    c:identifier="GTK_TOGGLE_TOOL_BUTTON"
                    introspectable="0">
      <source-position filename="gtktoggletoolbutton.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_TOOL_BUTTON_CLASS"
                    c:identifier="GTK_TOGGLE_TOOL_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="gtktoggletoolbutton.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOGGLE_TOOL_BUTTON_GET_CLASS"
                    c:identifier="GTK_TOGGLE_TOOL_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoggletoolbutton.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLBAR"
                    c:identifier="GTK_TOOLBAR"
                    introspectable="0">
      <source-position filename="gtktoolbar.h" line="55"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLBAR_CLASS"
                    c:identifier="GTK_TOOLBAR_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolbar.h" line="56"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLBAR_GET_CLASS"
                    c:identifier="GTK_TOOLBAR_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolbar.h" line="59"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLTIP"
                    c:identifier="GTK_TOOLTIP"
                    introspectable="0">
      <source-position filename="gtktooltip.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLTIPS"
                    c:identifier="GTK_TOOLTIPS"
                    introspectable="0">
      <source-position filename="gtktooltips.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLTIPS_CLASS"
                    c:identifier="GTK_TOOLTIPS_CLASS"
                    introspectable="0">
      <source-position filename="gtktooltips.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOLTIPS_GET_CLASS"
                    c:identifier="GTK_TOOLTIPS_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktooltips.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_BUTTON"
                    c:identifier="GTK_TOOL_BUTTON"
                    introspectable="0">
      <source-position filename="gtktoolbutton.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_BUTTON_CLASS"
                    c:identifier="GTK_TOOL_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolbutton.h" line="36"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_BUTTON_GET_CLASS"
                    c:identifier="GTK_TOOL_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolbutton.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM"
                    c:identifier="GTK_TOOL_ITEM"
                    introspectable="0">
      <source-position filename="gtktoolitem.h" line="38"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM_CLASS"
                    c:identifier="GTK_TOOL_ITEM_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolitem.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM_GET_CLASS"
                    c:identifier="GTK_TOOL_ITEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolitem.h" line="42"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM_GROUP"
                    c:identifier="GTK_TOOL_ITEM_GROUP"
                    introspectable="0">
      <source-position filename="gtktoolitemgroup.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM_GROUP_CLASS"
                    c:identifier="GTK_TOOL_ITEM_GROUP_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolitemgroup.h" line="36"/>
      <parameters>
        <parameter name="cls">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_ITEM_GROUP_GET_CLASS"
                    c:identifier="GTK_TOOL_ITEM_GROUP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolitemgroup.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_PALETTE"
                    c:identifier="GTK_TOOL_PALETTE"
                    introspectable="0">
      <source-position filename="gtktoolpalette.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_PALETTE_CLASS"
                    c:identifier="GTK_TOOL_PALETTE_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolpalette.h" line="37"/>
      <parameters>
        <parameter name="cls">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_PALETTE_GET_CLASS"
                    c:identifier="GTK_TOOL_PALETTE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktoolpalette.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_SHELL"
                    c:identifier="GTK_TOOL_SHELL"
                    introspectable="0">
      <source-position filename="gtktoolshell.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TOOL_SHELL_GET_IFACE"
                    c:identifier="GTK_TOOL_SHELL_GET_IFACE"
                    introspectable="0">
      <source-position filename="gtktoolshell.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE" c:identifier="GTK_TREE" introspectable="0">
      <source-position filename="gtktree.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_CLASS"
                    c:identifier="GTK_TREE_CLASS"
                    introspectable="0">
      <source-position filename="gtktree.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_DRAG_DEST"
                    c:identifier="GTK_TREE_DRAG_DEST"
                    introspectable="0">
      <source-position filename="gtktreednd.h" line="75"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_DRAG_DEST_GET_IFACE"
                    c:identifier="GTK_TREE_DRAG_DEST_GET_IFACE"
                    introspectable="0">
      <source-position filename="gtktreednd.h" line="77"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_DRAG_SOURCE"
                    c:identifier="GTK_TREE_DRAG_SOURCE"
                    introspectable="0">
      <source-position filename="gtktreednd.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_DRAG_SOURCE_GET_IFACE"
                    c:identifier="GTK_TREE_DRAG_SOURCE_GET_IFACE"
                    introspectable="0">
      <source-position filename="gtktreednd.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_GET_CLASS"
                    c:identifier="GTK_TREE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktree.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ITEM"
                    c:identifier="GTK_TREE_ITEM"
                    introspectable="0">
      <source-position filename="gtktreeitem.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ITEM_CLASS"
                    c:identifier="GTK_TREE_ITEM_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeitem.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ITEM_GET_CLASS"
                    c:identifier="GTK_TREE_ITEM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeitem.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ITEM_SUBTREE"
                    c:identifier="GTK_TREE_ITEM_SUBTREE"
                    introspectable="0">
      <source-position filename="gtktreeitem.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL"
                    c:identifier="GTK_TREE_MODEL"
                    introspectable="0">
      <source-position filename="gtktreemodel.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_FILTER"
                    c:identifier="GTK_TREE_MODEL_FILTER"
                    introspectable="0">
      <source-position filename="gtktreemodelfilter.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_FILTER_CLASS"
                    c:identifier="GTK_TREE_MODEL_FILTER_CLASS"
                    introspectable="0">
      <source-position filename="gtktreemodelfilter.h" line="35"/>
      <parameters>
        <parameter name="vtable">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_FILTER_GET_CLASS"
                    c:identifier="GTK_TREE_MODEL_FILTER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreemodelfilter.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_GET_IFACE"
                    c:identifier="GTK_TREE_MODEL_GET_IFACE"
                    introspectable="0">
      <source-position filename="gtktreemodel.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_SORT"
                    c:identifier="GTK_TREE_MODEL_SORT"
                    introspectable="0">
      <source-position filename="gtktreemodelsort.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_SORT_CLASS"
                    c:identifier="GTK_TREE_MODEL_SORT_CLASS"
                    introspectable="0">
      <source-position filename="gtktreemodelsort.h" line="35"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_MODEL_SORT_GET_CLASS"
                    c:identifier="GTK_TREE_MODEL_SORT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreemodelsort.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_ROOT_TREE"
                    c:identifier="GTK_TREE_ROOT_TREE"
                    introspectable="0">
      <source-position filename="gtktree.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SELECTION"
                    c:identifier="GTK_TREE_SELECTION"
                    introspectable="0">
      <source-position filename="gtktreeselection.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SELECTION_CLASS"
                    c:identifier="GTK_TREE_SELECTION_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeselection.h" line="34"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SELECTION_GET_CLASS"
                    c:identifier="GTK_TREE_SELECTION_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeselection.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SELECTION_OLD"
                    c:identifier="GTK_TREE_SELECTION_OLD"
                    introspectable="0">
      <source-position filename="gtktree.h" line="51"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SORTABLE"
                    c:identifier="GTK_TREE_SORTABLE"
                    introspectable="0">
      <source-position filename="gtktreesortable.h" line="35"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SORTABLE_CLASS"
                    c:identifier="GTK_TREE_SORTABLE_CLASS"
                    introspectable="0">
      <source-position filename="gtktreesortable.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_SORTABLE_GET_IFACE"
                    c:identifier="GTK_TREE_SORTABLE_GET_IFACE"
                    introspectable="0">
      <source-position filename="gtktreesortable.h" line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_STORE"
                    c:identifier="GTK_TREE_STORE"
                    introspectable="0">
      <source-position filename="gtktreestore.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_STORE_CLASS"
                    c:identifier="GTK_TREE_STORE_CLASS"
                    introspectable="0">
      <source-position filename="gtktreestore.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_STORE_GET_CLASS"
                    c:identifier="GTK_TREE_STORE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreestore.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW"
                    c:identifier="GTK_TREE_VIEW"
                    introspectable="0">
      <source-position filename="gtktreeview.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW_CLASS"
                    c:identifier="GTK_TREE_VIEW_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeview.h" line="50"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW_COLUMN"
                    c:identifier="GTK_TREE_VIEW_COLUMN"
                    introspectable="0">
      <source-position filename="gtktreeviewcolumn.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW_COLUMN_CLASS"
                    c:identifier="GTK_TREE_VIEW_COLUMN_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeviewcolumn.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW_COLUMN_GET_CLASS"
                    c:identifier="GTK_TREE_VIEW_COLUMN_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeviewcolumn.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TREE_VIEW_GET_CLASS"
                    c:identifier="GTK_TREE_VIEW_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtktreeview.h" line="53"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="TYPE_FUNDAMENTAL_LAST"
              value="-1"
              c:type="GTK_TYPE_FUNDAMENTAL_LAST">
      <source-position filename="gtktypeutils.h" line="104"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="TYPE_IS_OBJECT"
                    c:identifier="GTK_TYPE_IS_OBJECT"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="99"/>
      <parameters>
        <parameter name="type">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Table"
           c:symbol-prefix="table"
           c:type="GtkTable"
           parent="Container"
           glib:type-name="GtkTable"
           glib:get-type="gtk_table_get_type"
           glib:type-struct="TableClass">
      <source-position filename="gtktable.h" line="70"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_table_new">
        <source-position filename="gtktable.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="rows" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="homogeneous" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="attach" c:identifier="gtk_table_attach">
        <source-position filename="gtktable.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="left_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="right_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="top_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="bottom_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="xoptions" transfer-ownership="none">
            <type name="AttachOptions" c:type="GtkAttachOptions"/>
          </parameter>
          <parameter name="yoptions" transfer-ownership="none">
            <type name="AttachOptions" c:type="GtkAttachOptions"/>
          </parameter>
          <parameter name="xpadding" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="ypadding" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="attach_defaults" c:identifier="gtk_table_attach_defaults">
        <source-position filename="gtktable.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="left_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="right_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="top_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="bottom_attach" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_col_spacing" c:identifier="gtk_table_get_col_spacing">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="672">Gets the amount of space between column @col, and
column @col + 1. See gtk_table_set_col_spacing().</doc>
        <source-position filename="gtktable.h" line="133"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktable.c"
               line="680">the column spacing</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="674">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="675">a column in the table, 0 indicates the first column</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_col_spacing"
              c:identifier="gtk_table_get_default_col_spacing">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="746">Gets the default column spacing for the table. This is
the spacing that will be used for newly added columns.
(See gtk_table_set_col_spacings())</doc>
        <source-position filename="gtktable.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktable.c"
               line="754">the default column spacing</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="748">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_row_spacing"
              c:identifier="gtk_table_get_default_row_spacing">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="710">Gets the default row spacing for the table. This is
the spacing that will be used for newly added rows.
(See gtk_table_set_row_spacings())</doc>
        <source-position filename="gtktable.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktable.c"
               line="718">the default row spacing</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="712">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_homogeneous"
              c:identifier="gtk_table_get_homogeneous"
              glib:get-property="homogeneous">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="782">Returns whether the table cells are all constrained to the same
width and height. (See gtk_table_set_homogenous ())</doc>
        <source-position filename="gtktable.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktable.c"
               line="789">%TRUE if the cells are all constrained to the same size</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="784">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_spacing"
              c:identifier="gtk_table_get_row_spacing"
              glib:get-property="row-spacing">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="635">Gets the amount of space between row @row, and
row @row + 1. See gtk_table_set_row_spacing().</doc>
        <source-position filename="gtktable.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktable.c"
               line="643">the row spacing</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="637">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="638">a row in the table, 0 indicates the first row</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gtk_table_get_size" version="2.22">
        <doc xml:space="preserve"
             filename="gtktable.c"
             line="799">Returns the number of rows and columns in the table.</doc>
        <source-position filename="gtktable.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="801">a #GtkTable</doc>
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="rows"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="802">return location for the number of
  rows, or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="columns"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktable.c"
                 line="804">return location for the number
  of columns, or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resize" c:identifier="gtk_table_resize">
        <source-position filename="gtktable.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="rows" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_col_spacing" c:identifier="gtk_table_set_col_spacing">
        <source-position filename="gtktable.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="spacing" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_col_spacings"
              c:identifier="gtk_table_set_col_spacings">
        <source-position filename="gtktable.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="spacing" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_homogeneous"
              c:identifier="gtk_table_set_homogeneous"
              glib:set-property="homogeneous">
        <source-position filename="gtktable.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="homogeneous" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_row_spacing"
              c:identifier="gtk_table_set_row_spacing"
              glib:set-property="row-spacing">
        <source-position filename="gtktable.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="row" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="spacing" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_row_spacings"
              c:identifier="gtk_table_set_row_spacings">
        <source-position filename="gtktable.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="Table" c:type="GtkTable*"/>
          </instance-parameter>
          <parameter name="spacing" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="column-spacing"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="homogeneous"
                writable="1"
                transfer-ownership="none"
                setter="set_homogeneous"
                getter="get_homogeneous"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="n-columns"
                writable="1"
                transfer-ownership="none"
                default-value="1">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="n-rows"
                writable="1"
                transfer-ownership="none"
                default-value="1">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="row-spacing"
                writable="1"
                transfer-ownership="none"
                setter="set_row_spacing"
                getter="get_row_spacing"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="container">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="children">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="rows">
        <type name="TableRowCol" c:type="GtkTableRowCol*"/>
      </field>
      <field name="cols">
        <type name="TableRowCol" c:type="GtkTableRowCol*"/>
      </field>
      <field name="nrows">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="ncols">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="column_spacing">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="row_spacing">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="homogeneous" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="TableChild" c:type="GtkTableChild">
      <source-position filename="gtktable.h" line="87"/>
      <field name="widget" writable="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="left_attach" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="right_attach" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="top_attach" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="bottom_attach" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="xpadding" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="ypadding" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="xexpand" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="yexpand" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="xshrink" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="yshrink" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="xfill" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="yfill" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="TableClass"
            c:type="GtkTableClass"
            glib:is-gtype-struct-for="Table">
      <source-position filename="gtktable.h" line="70"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
    </record>
    <record name="TableRowCol" c:type="GtkTableRowCol">
      <source-position filename="gtktable.h" line="99"/>
      <field name="requisition" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="allocation" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="spacing" writable="1">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="need_expand" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_shrink" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="expand" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="shrink" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="empty" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="TargetEntry" c:type="GtkTargetEntry">
      <source-position filename="gtkselection.h" line="73"/>
      <field name="target" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="flags" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="info" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <bitfield name="TargetFlags"
              glib:type-name="GtkTargetFlags"
              glib:get-type="gtk_target_flags_get_type"
              c:type="GtkTargetFlags">
      <member name="same_app"
              value="1"
              c:identifier="GTK_TARGET_SAME_APP"
              glib:nick="same-app"
              glib:name="GTK_TARGET_SAME_APP">
      </member>
      <member name="same_widget"
              value="2"
              c:identifier="GTK_TARGET_SAME_WIDGET"
              glib:nick="same-widget"
              glib:name="GTK_TARGET_SAME_WIDGET">
      </member>
      <member name="other_app"
              value="4"
              c:identifier="GTK_TARGET_OTHER_APP"
              glib:nick="other-app"
              glib:name="GTK_TARGET_OTHER_APP">
      </member>
      <member name="other_widget"
              value="8"
              c:identifier="GTK_TARGET_OTHER_WIDGET"
              glib:nick="other-widget"
              glib:name="GTK_TARGET_OTHER_WIDGET">
      </member>
    </bitfield>
    <record name="TargetList"
            c:type="GtkTargetList"
            glib:type-name="GtkTargetList"
            glib:get-type="gtk_target_list_get_type"
            c:symbol-prefix="target_list">
      <source-position filename="gtkselection.h" line="85"/>
      <field name="list" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="ref_count" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="new" c:identifier="gtk_target_list_new">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="189">Creates a new #GtkTargetList from an array of #GtkTargetEntry.</doc>
        <source-position filename="gtkselection.h" line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="196">the new #GtkTargetList.</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </return-value>
        <parameters>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="191">Pointer to an array of #GtkTargetEntry</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="const GtkTargetEntry*">
              <type name="TargetEntry" c:type="GtkTargetEntry"/>
            </array>
          </parameter>
          <parameter name="ntargets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="192">number of entries in @targets.</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add" c:identifier="gtk_target_list_add">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="260">Appends another target to a #GtkTargetList.</doc>
        <source-position filename="gtkselection.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="262">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="263">the interned atom representing the target</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="264">the flags for this target</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="265">an ID that will be passed back to the application</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_image_targets"
              c:identifier="gtk_target_list_add_image_targets"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="386">Appends the image targets supported by #GtkSelection to
the target list. All targets are added with the same @info.</doc>
        <source-position filename="gtkselection.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="388">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="389">an ID that will be passed back to the application</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="writable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="390">whether to add only targets for which GTK+ knows
  how to convert a pixbuf into the format</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_rich_text_targets"
              c:identifier="gtk_target_list_add_rich_text_targets"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="347">Appends the rich text targets registered with
gtk_text_buffer_register_serialize_format() or
gtk_text_buffer_register_deserialize_format() to the target list. All
targets are added with the same @info.</doc>
        <source-position filename="gtkselection.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="349">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="350">an ID that will be passed back to the application</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="deserializable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="351">if %TRUE, then deserializable rich text formats
                 will be added, serializable formats otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="353">a #GtkTextBuffer.</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_table" c:identifier="gtk_target_list_add_table">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="471">Prepends a table of #GtkTargetEntry to a target list.</doc>
        <source-position filename="gtkselection.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="473">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="474">the table of #GtkTargetEntry</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="const GtkTargetEntry*">
              <type name="TargetEntry" c:type="GtkTargetEntry"/>
            </array>
          </parameter>
          <parameter name="ntargets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="475">number of targets in the table</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_text_targets"
              c:identifier="gtk_target_list_add_text_targets"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="317">Appends the text targets supported by #GtkSelection to
the target list. All targets are added with the same @info.</doc>
        <source-position filename="gtkselection.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="319">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="320">an ID that will be passed back to the application</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_uri_targets"
              c:identifier="gtk_target_list_add_uri_targets"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="450">Appends the URI targets supported by #GtkSelection to
the target list. All targets are added with the same @info.</doc>
        <source-position filename="gtkselection.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="452">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="453">an ID that will be passed back to the application</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="find" c:identifier="gtk_target_list_find">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="531">Looks up a given target in a #GtkTargetList.</doc>
        <source-position filename="gtkselection.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="540">%TRUE if the target was found, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="533">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="534">an interned atom representing the target to search for</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="535">a pointer to the location to store application info for target,
       or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gtk_target_list_ref">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="212">Increases the reference count of a #GtkTargetList by one.</doc>
        <source-position filename="gtkselection.h" line="95"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="218">the passed in #GtkTargetList.</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="214">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_target_list_remove">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="497">Removes a target from a target list.</doc>
        <source-position filename="gtkselection.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="499">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="500">the interned atom representing the target</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gtk_target_list_unref">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="230">Decreases the reference count of a #GtkTargetList by one.
If the resulting reference count is zero, frees the list.</doc>
        <source-position filename="gtkselection.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkselection.c"
                 line="232">a #GtkTargetList</doc>
            <type name="TargetList" c:type="GtkTargetList*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="TargetPair" c:type="GtkTargetPair">
      <source-position filename="gtkselection.h" line="91"/>
      <field name="target" writable="1">
        <type name="Gdk.Atom" c:type="GdkAtom"/>
      </field>
      <field name="flags" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="info" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <class name="TearoffMenuItem"
           c:symbol-prefix="tearoff_menu_item"
           c:type="GtkTearoffMenuItem"
           parent="MenuItem"
           glib:type-name="GtkTearoffMenuItem"
           glib:get-type="gtk_tearoff_menu_item_get_type"
           glib:type-struct="TearoffMenuItemClass">
      <source-position filename="gtktearoffmenuitem.h" line="67"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_tearoff_menu_item_new">
        <source-position filename="gtktearoffmenuitem.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="menu_item">
        <type name="MenuItem" c:type="GtkMenuItem"/>
      </field>
      <field name="torn_off" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="TearoffMenuItemClass"
            c:type="GtkTearoffMenuItemClass"
            glib:is-gtype-struct-for="TearoffMenuItem">
      <source-position filename="gtktearoffmenuitem.h" line="67"/>
      <field name="parent_class">
        <type name="MenuItemClass" c:type="GtkMenuItemClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktearoffmenuitem.h" line="63"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktearoffmenuitem.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktearoffmenuitem.h" line="65"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktearoffmenuitem.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TextAppearance" c:type="GtkTextAppearance">
      <source-position filename="gtktexttag.h" line="212"/>
      <field name="bg_color" writable="1">
        <type name="Gdk.Color" c:type="GdkColor"/>
      </field>
      <field name="fg_color" writable="1">
        <type name="Gdk.Color" c:type="GdkColor"/>
      </field>
      <field name="bg_stipple" writable="1">
        <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
      </field>
      <field name="fg_stipple" writable="1">
        <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
      </field>
      <field name="rise" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="padding1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="underline" writable="1" bits="4">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="strikethrough" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="draw_bg" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="inside_selection" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="is_text" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad1" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad2" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad3" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad4" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="TextAttrAppearance" c:type="GtkTextAttrAppearance">
      <source-position filename="gtktextlayout.h" line="227"/>
      <field name="attr" writable="1">
        <type name="Pango.Attribute" c:type="PangoAttribute"/>
      </field>
      <field name="appearance" writable="1">
        <type name="TextAppearance" c:type="GtkTextAppearance"/>
      </field>
    </record>
    <record name="TextAttributes"
            c:type="GtkTextAttributes"
            glib:type-name="GtkTextAttributes"
            glib:get-type="gtk_text_attributes_get_type"
            c:symbol-prefix="text_attributes">
      <source-position filename="gtktexttag.h" line="274"/>
      <field name="refcount" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="appearance" writable="1">
        <type name="TextAppearance" c:type="GtkTextAppearance"/>
      </field>
      <field name="justification" writable="1">
        <type name="Justification" c:type="GtkJustification"/>
      </field>
      <field name="direction" writable="1">
        <type name="TextDirection" c:type="GtkTextDirection"/>
      </field>
      <field name="font" writable="1">
        <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
      </field>
      <field name="font_scale" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="left_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="indent" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="right_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="pixels_above_lines" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="pixels_below_lines" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="pixels_inside_wrap" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="tabs" writable="1">
        <type name="Pango.TabArray" c:type="PangoTabArray*"/>
      </field>
      <field name="wrap_mode" writable="1">
        <type name="WrapMode" c:type="GtkWrapMode"/>
      </field>
      <field name="language" writable="1">
        <type name="Pango.Language" c:type="PangoLanguage*"/>
      </field>
      <field name="pg_bg_color" readable="0" private="1">
        <type name="Gdk.Color" c:type="GdkColor*"/>
      </field>
      <field name="invisible" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="bg_full_height" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="editable" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="realized" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad1" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad2" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad3" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad4" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="new" c:identifier="gtk_text_attributes_new">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1953">Creates a #GtkTextAttributes, which describes
a set of properties on some text.</doc>
        <source-position filename="gtktexttag.h" line="276"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="1959">a new #GtkTextAttributes</doc>
          <type name="TextAttributes" c:type="GtkTextAttributes*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="gtk_text_attributes_copy">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1981">Copies @src and returns a new #GtkTextAttributes.</doc>
        <source-position filename="gtktexttag.h" line="277"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="1987">a copy of @src</doc>
          <type name="TextAttributes" c:type="GtkTextAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="src" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1983">a #GtkTextAttributes to be copied</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy_values"
              c:identifier="gtk_text_attributes_copy_values">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="2013">Copies the values from @src to @dest so that @dest has the same values
as @src. Frees existing values in @dest.</doc>
        <source-position filename="gtktexttag.h" line="278"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="src" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="2015">a #GtkTextAttributes</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="2016">another #GtkTextAttributes</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gtk_text_attributes_ref">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="2071">Increments the reference count on @values.</doc>
        <source-position filename="gtktexttag.h" line="281"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="2077">the #GtkTextAttributes that were passed in</doc>
          <type name="TextAttributes" c:type="GtkTextAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="2073">a #GtkTextAttributes</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gtk_text_attributes_unref">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="2089">Decrements the reference count on @values, freeing the structure
if the reference count reaches 0.</doc>
        <source-position filename="gtktexttag.h" line="280"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="2091">a #GtkTextAttributes</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="TextBTree" c:type="GtkTextBTree" disguised="1" opaque="1">
      <source-position filename="gtktextbuffer.h" line="61"/>
    </record>
    <class name="TextBuffer"
           c:symbol-prefix="text_buffer"
           c:type="GtkTextBuffer"
           parent="GObject.Object"
           glib:type-name="GtkTextBuffer"
           glib:get-type="gtk_text_buffer_get_type"
           glib:type-struct="TextBufferClass">
      <source-position filename="gtktextbuffer.h" line="155"/>
      <constructor name="new" c:identifier="gtk_text_buffer_new">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="736">Creates a new text buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="162"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="742">a new text buffer</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <parameter name="table"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="738">a tag table, or %NULL to create a new one</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="apply_tag" invoker="apply_tag">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2568">Emits the "apply-tag" signal on @buffer. The default
handler for the signal applies @tag to the given range.
@start and @end do not have to be in order.</doc>
        <source-position filename="gtktextbuffer.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2570">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2571">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="start_char" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end_char" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="begin_user_action" invoker="begin_user_action">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4056">Called to indicate that the buffer operations between here and a
call to gtk_text_buffer_end_user_action() are part of a single
user-visible operation. The operations between
gtk_text_buffer_begin_user_action() and
gtk_text_buffer_end_user_action() can then be grouped when creating
an undo stack. #GtkTextBuffer maintains a count of calls to
gtk_text_buffer_begin_user_action() that have not been closed with
a call to gtk_text_buffer_end_user_action(), and emits the
"begin-user-action" and "end-user-action" signals only for the
outermost pair of calls. This allows you to build user actions
from other user actions.

The "interactive" buffer mutation functions, such as
gtk_text_buffer_insert_interactive(), automatically call begin/end
user action around the buffer operations they perform, so there's
no need to add extra calls if you user action consists solely of a
single call to one of those functions.</doc>
        <source-position filename="gtktextbuffer.h" line="143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4058">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="changed">
        <source-position filename="gtktextbuffer.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="delete_range">
        <source-position filename="gtktextbuffer.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="end_user_action" invoker="end_user_action">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4092">Should be paired with a call to gtk_text_buffer_begin_user_action().
See that function for a full explanation.</doc>
        <source-position filename="gtktextbuffer.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4094">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_child_anchor" invoker="insert_child_anchor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1922">Inserts a child widget anchor into the text buffer at @iter. The
anchor will be counted as one character in character counts, and
when obtaining the buffer contents as a string, will be represented
by the Unicode "object replacement character" 0xFFFC. Note that the
"slice" variants for obtaining portions of the buffer as a string
include this character for child anchors, but the "text" variants do
not. E.g. see gtk_text_buffer_get_slice() and
gtk_text_buffer_get_text(). Consider
gtk_text_buffer_create_child_anchor() as a more convenient
alternative to this function. The buffer will add a reference to
the anchor, so you can unref it after insertion.</doc>
        <source-position filename="gtktextbuffer.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1924">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="pos" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1926">a #GtkTextChildAnchor</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_pixbuf" invoker="insert_pixbuf">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1878">Inserts an image into the text buffer at @iter. The image will be
counted as one character in character counts, and when obtaining
the buffer contents as a string, will be represented by the Unicode
"object replacement character" 0xFFFC. Note that the "slice"
variants for obtaining portions of the buffer as a string include
this character for pixbufs, but the "text" variants do
not. e.g. see gtk_text_buffer_get_slice() and
gtk_text_buffer_get_text().</doc>
        <source-position filename="gtktextbuffer.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1880">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="pos" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1882">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_text">
        <source-position filename="gtktextbuffer.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="pos" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mark_deleted">
        <source-position filename="gtktextbuffer.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mark_set">
        <source-position filename="gtktextbuffer.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="mark" transfer-ownership="none">
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="modified_changed">
        <source-position filename="gtktextbuffer.h" line="122"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="paste_done">
        <source-position filename="gtktextbuffer.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_tag" invoker="remove_tag">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2596">Emits the "remove-tag" signal. The default handler for the signal
removes all occurrences of @tag from the given range. @start and
@end don't have to be in order.</doc>
        <source-position filename="gtktextbuffer.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2598">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2599">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="start_char" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end_char" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_mark"
              c:identifier="gtk_text_buffer_add_mark"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2100">Adds the mark at position @where. The mark must not be added to
another buffer, and if its name is not %NULL then there must not
be another mark in the buffer with the same name.

Emits the "mark-set" signal as notification of the mark's initial
placement.</doc>
        <source-position filename="gtktextbuffer.h" line="256"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2102">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2103">the mark to add</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2104">location to place mark</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_selection_clipboard"
              c:identifier="gtk_text_buffer_add_selection_clipboard">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3664">Adds @clipboard to the list of clipboards in which the selection
contents of @buffer are available. In most cases, @clipboard will be
the #GtkClipboard of type %GDK_SELECTION_PRIMARY for a view of @buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="366"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3666">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3667">a #GtkClipboard</doc>
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply_tag" c:identifier="gtk_text_buffer_apply_tag">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2568">Emits the "apply-tag" signal on @buffer. The default
handler for the signal applies @tag to the given range.
@start and @end do not have to be in order.</doc>
        <source-position filename="gtktextbuffer.h" line="290"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2570">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2571">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2572">one bound of range to be tagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2573">other bound of range to be tagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply_tag_by_name"
              c:identifier="gtk_text_buffer_apply_tag_by_name">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2625">Calls gtk_text_tag_table_lookup() on the buffer's tag table to
get a #GtkTextTag, then calls gtk_text_buffer_apply_tag().</doc>
        <source-position filename="gtktextbuffer.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2627">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2628">name of a named #GtkTextTag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2629">one bound of range to be tagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2630">other bound of range to be tagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backspace"
              c:identifier="gtk_text_buffer_backspace"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3827">Performs the appropriate action as if the user hit the delete
key with the cursor at the position specified by @iter. In the
normal case a single character will be deleted, but when
combining accents are involved, more than one character can
be deleted, and when precomposed character and accent combinations
are involved, less than one character will be deleted.

Because the buffer is modified, all outstanding iterators become
invalid after calling this function; however, the @iter will be
re-initialized to point to the location where text was deleted.</doc>
        <source-position filename="gtktextbuffer.h" line="225"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="3845">%TRUE if the buffer was modified</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3829">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3830">a position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="interactive" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3831">whether the deletion is caused by user interaction</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3832">whether the buffer is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_user_action"
              c:identifier="gtk_text_buffer_begin_user_action">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4056">Called to indicate that the buffer operations between here and a
call to gtk_text_buffer_end_user_action() are part of a single
user-visible operation. The operations between
gtk_text_buffer_begin_user_action() and
gtk_text_buffer_end_user_action() can then be grouped when creating
an undo stack. #GtkTextBuffer maintains a count of calls to
gtk_text_buffer_begin_user_action() that have not been closed with
a call to gtk_text_buffer_end_user_action(), and emits the
"begin-user-action" and "end-user-action" signals only for the
outermost pair of calls. This allows you to build user actions
from other user actions.

The "interactive" buffer mutation functions, such as
gtk_text_buffer_insert_interactive(), automatically call begin/end
user action around the buffer operations they perform, so there's
no need to add extra calls if you user action consists solely of a
single call to one of those functions.</doc>
        <source-position filename="gtktextbuffer.h" line="389"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4058">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy_clipboard"
              c:identifier="gtk_text_buffer_copy_clipboard">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4017">Copies the currently-selected text to a clipboard.</doc>
        <source-position filename="gtktextbuffer.h" line="374"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4019">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4020">the #GtkClipboard object to copy to</doc>
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_child_anchor"
              c:identifier="gtk_text_buffer_create_child_anchor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1954">This is a convenience function which simply creates a child anchor
with gtk_text_child_anchor_new() and inserts it into the buffer
with gtk_text_buffer_insert_child_anchor(). The new anchor is
owned by the buffer; no reference count is returned to
the caller of gtk_text_buffer_create_child_anchor().</doc>
        <source-position filename="gtktextbuffer.h" line="252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1965">the created child anchor</doc>
          <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1956">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1957">location in the buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_mark" c:identifier="gtk_text_buffer_create_mark">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2061">Creates a mark at position @where. If @mark_name is %NULL, the mark
is anonymous; otherwise, the mark can be retrieved by name using
gtk_text_buffer_get_mark(). If a mark has left gravity, and text is
inserted at the mark's current location, the mark will be moved to
the left of the newly-inserted text. If the mark has right gravity
(@left_gravity = %FALSE), the mark will end up on the right of
newly-inserted text. The standard left-to-right cursor is a mark
with right gravity (when you type, the cursor stays on the right
side of the text you're typing).

The caller of this function does &lt;emphasis&gt;not&lt;/emphasis&gt; own a
reference to the returned #GtkTextMark, so you can ignore the
return value if you like. Marks are owned by the buffer and go
away when the buffer does.

Emits the "mark-set" signal as notification of the mark's initial
placement.</doc>
        <source-position filename="gtktextbuffer.h" line="259"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2086">the new #GtkTextMark object</doc>
          <type name="TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2063">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mark_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2064">name for mark, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2065">location to place mark</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="left_gravity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2066">whether the mark has left gravity</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_tag"
              c:identifier="gtk_text_buffer_create_tag"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2429">Creates a tag and adds it to the tag table for @buffer.
Equivalent to calling gtk_text_tag_new() and then adding the
tag to the buffer's tag table. The returned tag is owned by
the buffer's tag table, so the ref count will be equal to one.

If @tag_name is %NULL, the tag is anonymous.

If @tag_name is non-%NULL, a tag called @tag_name must not already
exist in the tag table for this buffer.

The @first_property_name argument and subsequent arguments are a list
of properties to set on the tag, as with g_object_set().</doc>
        <source-position filename="gtktextbuffer.h" line="314"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2449">a new tag</doc>
          <type name="TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2431">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tag_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2432">name of the new tag, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="first_property_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2433">name of first property to set, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2434">%NULL-terminated list of property names and values</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="cut_clipboard"
              c:identifier="gtk_text_buffer_cut_clipboard">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3998">Copies the currently-selected text to a clipboard, then deletes
said text if it's editable.</doc>
        <source-position filename="gtktextbuffer.h" line="371"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4000">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4001">the #GtkClipboard object to cut to</doc>
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4002">default editability of the buffer</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete" c:identifier="gtk_text_buffer_delete">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1619">Deletes text between @start and @end. The order of @start and @end
is not actually relevant; gtk_text_buffer_delete() will reorder
them. This function actually emits the "delete-range" signal, and
the default handler of that signal deletes the text. Because the
buffer is modified, all outstanding iterators become invalid after
calling this function; however, the @start and @end will be
re-initialized to point to the location where text was deleted.</doc>
        <source-position filename="gtktextbuffer.h" line="218"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1621">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1622">a position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1623">another position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_interactive"
              c:identifier="gtk_text_buffer_delete_interactive">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1647">Deletes all &lt;emphasis&gt;editable&lt;/emphasis&gt; text in the given range.
Calls gtk_text_buffer_delete() for each editable sub-range of
[@start,@end). @start and @end are revalidated to point to
the location of the last deleted range, or left untouched if
no text was deleted.</doc>
        <source-position filename="gtktextbuffer.h" line="221"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1660">whether some text was actually deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1649">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1650">start of range to delete</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1651">end of range</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1652">whether the buffer is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_mark" c:identifier="gtk_text_buffer_delete_mark">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2181">Deletes @mark, so that it's no longer located anywhere in the
buffer. Removes the reference the buffer holds to the mark, so if
you haven't called g_object_ref() on the mark, it will be freed. Even
if the mark isn't freed, most operations on @mark become
invalid, until it gets added to a buffer again with
gtk_text_buffer_add_mark(). Use gtk_text_mark_get_deleted() to
find out if a mark has been removed from its buffer.
The "mark-deleted" signal will be emitted as notification after
the mark is deleted.</doc>
        <source-position filename="gtktextbuffer.h" line="266"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2183">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2184">a #GtkTextMark in @buffer</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_mark_by_name"
              c:identifier="gtk_text_buffer_delete_mark_by_name">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2273">Deletes the mark named @name; the mark must exist. See
gtk_text_buffer_delete_mark() for details.</doc>
        <source-position filename="gtktextbuffer.h" line="274"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2275">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2276">name of a mark in @buffer</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_selection"
              c:identifier="gtk_text_buffer_delete_selection">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3791">Deletes the range between the "insert" and "selection_bound" marks,
that is, the currently-selected text. If @interactive is %TRUE,
the editability of the selection will be considered (users can't delete
uneditable text).</doc>
        <source-position filename="gtktextbuffer.h" line="384"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="3802">whether there was a non-empty selection to delete</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3793">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="interactive" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3794">whether the deletion is caused by user interaction</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3795">whether the buffer is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="deserialize"
              c:identifier="gtk_text_buffer_deserialize"
              version="2.10"
              throws="1">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="519">This function deserializes rich text in format @format and inserts
it at @iter.

@format&lt;!-- --&gt;s to be used must be registered using
gtk_text_buffer_register_deserialize_format() or
gtk_text_buffer_register_deserialize_tagset() beforehand.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="536">%TRUE on success, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="register_buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="521">the #GtkTextBuffer @format is registered with</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="content_buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="522">the #GtkTextBuffer to deserialize into</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="523">the rich text format to use for deserializing</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="524">insertion point for the deserialized text</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="525">data to deserialize</doc>
            <array length="4" zero-terminated="0" c:type="const guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="526">length of @data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="deserialize_get_can_create_tags"
              c:identifier="gtk_text_buffer_deserialize_get_can_create_tags"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="359">This functions returns the value set with
gtk_text_buffer_deserialize_set_can_create_tags()</doc>
        <source-position filename="gtktextbufferrichtext.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="367">whether deserializing this format may create tags</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="361">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="362">a #GdkAtom representing a registered rich text format</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
        </parameters>
      </method>
      <method name="deserialize_set_can_create_tags"
              c:identifier="gtk_text_buffer_deserialize_set_can_create_tags"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="301">Use this function to allow a rich text deserialization function to
create new tags in the receiving buffer. Note that using this
function is almost always a bad idea, because the rich text
functions you register should know how to map the rich text format
they handler to your text buffers set of tags.

The ability of creating new (arbitrary!) tags in the receiving buffer
is meant for special rich text formats like the internal one that
is registered using gtk_text_buffer_register_deserialize_tagset(),
because that format is essentially a dump of the internal structure
of the source buffer, including its tag names.

You should allow creation of tags only if you know what you are
doing, e.g. if you defined a tagset name for your application
suite's text buffers and you know that it's fine to receive new
tags from these buffers, because you know that your application can
handle the newly created tags.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="303">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="304">a #GdkAtom representing a registered rich text format</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
          <parameter name="can_create_tags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="305">whether deserializing this format may create tags</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="end_user_action"
              c:identifier="gtk_text_buffer_end_user_action">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4092">Should be paired with a call to gtk_text_buffer_begin_user_action().
See that function for a full explanation.</doc>
        <source-position filename="gtktextbuffer.h" line="390"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4094">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bounds" c:identifier="gtk_text_buffer_get_bounds">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2960">Retrieves the first and last iterators in the buffer, i.e. the
entire buffer lies within the range [@start,@end).</doc>
        <source-position filename="gtktextbuffer.h" line="340"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2962">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2963">iterator to initialize with first position in the buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2964">iterator to initialize with the end iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_char_count"
              c:identifier="gtk_text_buffer_get_char_count">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3075">Gets the number of characters in the buffer; note that characters
and bytes are not the same, you can't e.g. expect the contents of
the buffer in string form to be this many bytes long. The character
count is cached, so this function is very fast.</doc>
        <source-position filename="gtktextbuffer.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="3084">number of characters in the buffer</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3077">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_copy_target_list"
              c:identifier="gtk_text_buffer_get_copy_target_list"
              glib:get-property="copy-target-list"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4170">This function returns the list of targets this text buffer can
provide for copying and as DND source. The targets in the list are
added with %info values from the #GtkTextBufferTargetInfo enum,
using gtk_target_list_add_rich_text_targets() and
gtk_target_list_add_text_targets().</doc>
        <source-position filename="gtktextbuffer.h" line="392"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="4180">the #GtkTargetList</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4172">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_deserialize_formats"
              c:identifier="gtk_text_buffer_get_deserialize_formats"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="431">This function returns the rich text deserialize formats registered
with @buffer using gtk_text_buffer_register_deserialize_format() or
gtk_text_buffer_register_deserialize_tagset()</doc>
        <source-position filename="gtktextbufferrichtext.h" line="77"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="440">an array of
              #GdkAtom&lt;!-- --&gt;s representing the registered formats.</doc>
          <array length="0" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="433">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="n_formats"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="434">return location for the number of formats</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_end_iter" c:identifier="gtk_text_buffer_get_end_iter">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2938">Initializes @iter with the "end iterator," one past the last valid
character in the text buffer. If dereferenced with
gtk_text_iter_get_char(), the end iterator has a character value of
0. The entire buffer lies in the range from the first position in
the buffer (call gtk_text_buffer_get_start_iter() to get
character position 0) to the end iterator.</doc>
        <source-position filename="gtktextbuffer.h" line="338"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2940">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2941">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_has_selection"
              c:identifier="gtk_text_buffer_get_has_selection"
              glib:get-property="has-selection"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3035">Indicates whether the buffer has some text currently selected.</doc>
        <source-position filename="gtktextbuffer.h" line="364"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="3041">%TRUE if the there is text selected</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3037">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_insert" c:identifier="gtk_text_buffer_get_insert">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2301">Returns the mark that represents the cursor (insertion point).
Equivalent to calling gtk_text_buffer_get_mark() to get the mark
named "insert", but very slightly more efficient, and involves less
typing.</doc>
        <source-position filename="gtktextbuffer.h" line="277"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2310">insertion point mark</doc>
          <type name="TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2303">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_at_child_anchor"
              c:identifier="gtk_text_buffer_get_iter_at_child_anchor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2346">Obtains the location of @anchor within @buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="347"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2348">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2349">an iterator to be initialized</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2350">a child anchor that appears in @buffer</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_line"
              c:identifier="gtk_text_buffer_get_iter_at_line">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2878">Initializes @iter to the start of the given line.</doc>
        <source-position filename="gtktextbuffer.h" line="333"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2880">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2881">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="line_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2882">line number counting from 0</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_line_index"
              c:identifier="gtk_text_buffer_get_iter_at_line_index">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2853">Obtains an iterator pointing to @byte_index within the given line.
@byte_index must be the start of a UTF-8 character, and must not be
beyond the end of the line.  Note &lt;emphasis&gt;bytes&lt;/emphasis&gt;, not
characters; UTF-8 may encode one character as multiple bytes.</doc>
        <source-position filename="gtktextbuffer.h" line="326"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2855">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2856">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="line_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2857">line number counting from 0</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="byte_index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2858">byte index from start of line</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_line_offset"
              c:identifier="gtk_text_buffer_get_iter_at_line_offset">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2828">Obtains an iterator pointing to @char_offset within the given
line. The @char_offset must exist, offsets off the end of the line
are not allowed. Note &lt;emphasis&gt;characters&lt;/emphasis&gt;, not bytes;
UTF-8 may encode one character as multiple bytes.</doc>
        <source-position filename="gtktextbuffer.h" line="322"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2830">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2831">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="line_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2832">line number counting from 0</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="char_offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2833">char offset from start of line</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_mark"
              c:identifier="gtk_text_buffer_get_iter_at_mark">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2159">Initializes @iter with the current position of @mark.</doc>
        <source-position filename="gtktextbuffer.h" line="343"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2161">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2162">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2163">a #GtkTextMark in @buffer</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_offset"
              c:identifier="gtk_text_buffer_get_iter_at_offset">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2897">Initializes @iter to a position @char_offset chars from the start
of the entire buffer. If @char_offset is -1 or greater than the number
of characters in the buffer, @iter is initialized to the end iterator,
the iterator one past the last valid character in the buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="330"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2899">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2900">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="char_offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2901">char offset from start of buffer, counting from 0, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_count"
              c:identifier="gtk_text_buffer_get_line_count">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3058">Obtains the number of lines in the buffer. This value is cached, so
the function is very fast.</doc>
        <source-position filename="gtktextbuffer.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="3065">number of lines in the buffer</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3060">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mark" c:identifier="gtk_text_buffer_get_mark">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2219">Returns the mark named @name in buffer @buffer, or %NULL if no such
mark exists in the buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="268"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2227">a #GtkTextMark, or %NULL</doc>
          <type name="TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2221">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2222">a mark name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_modified" c:identifier="gtk_text_buffer_get_modified">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2986">Indicates whether the buffer has been modified since the last call
to gtk_text_buffer_set_modified() set the modification flag to
%FALSE. Used for example to enable a "save" function in a text
editor.</doc>
        <source-position filename="gtktextbuffer.h" line="360"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2995">%TRUE if the buffer has been modified</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2988">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_paste_target_list"
              c:identifier="gtk_text_buffer_get_paste_target_list"
              glib:get-property="paste-target-list"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4202">This function returns the list of targets this text buffer supports
for pasting and as DND destination. The targets in the list are
added with %info values from the #GtkTextBufferTargetInfo enum,
using gtk_target_list_add_rich_text_targets() and
gtk_target_list_add_text_targets().</doc>
        <source-position filename="gtktextbuffer.h" line="393"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="4212">the #GtkTargetList</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4204">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_bound"
              c:identifier="gtk_text_buffer_get_selection_bound">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2320">Returns the mark that represents the selection bound.  Equivalent
to calling gtk_text_buffer_get_mark() to get the mark named
"selection_bound", but very slightly more efficient, and involves
less typing.

The currently-selected text in @buffer is the region between the
"selection_bound" and "insert" marks. If "selection_bound" and
"insert" are in the same place, then there is no current selection.
gtk_text_buffer_get_selection_bounds() is another convenient function
for handling the selection, if you just want to know whether there's a
selection and what its bounds are.</doc>
        <source-position filename="gtktextbuffer.h" line="278"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="2336">selection bound mark</doc>
          <type name="TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2322">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection_bounds"
              c:identifier="gtk_text_buffer_get_selection_bounds">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="4031">Returns %TRUE if some text is selected; places the bounds
of the selection in @start and @end (if the selection has length 0,
then @start and @end are filled in with the same value).
@start and @end will be in ascending order. If @start and @end are
NULL, then they are not filled in, but the return value still indicates
whether text is selected.</doc>
        <source-position filename="gtktextbuffer.h" line="381"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="4044">whether the selection has nonzero length</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4033">a #GtkTextBuffer a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4034">iterator to initialize with selection start</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="4035">iterator to initialize with selection end</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_serialize_formats"
              c:identifier="gtk_text_buffer_get_serialize_formats"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="403">This function returns the rich text serialize formats registered
with @buffer using gtk_text_buffer_register_serialize_format() or
gtk_text_buffer_register_serialize_tagset()</doc>
        <source-position filename="gtktextbufferrichtext.h" line="75"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="412">an array of
              #GdkAtom&lt;!-- --&gt;s representing the registered formats.</doc>
          <array length="0" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="405">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="n_formats"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="406">return location for the number of formats</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_slice" c:identifier="gtk_text_buffer_get_slice">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1826">Returns the text in the range [@start,@end). Excludes undisplayed
text (text marked with tags that set the invisibility attribute) if
@include_hidden_chars is %FALSE. The returned string includes a
0xFFFC character whenever the buffer contains
embedded images, so byte and character indexes into
the returned string &lt;emphasis&gt;do&lt;/emphasis&gt; correspond to byte
and character indexes into the buffer. Contrast with
gtk_text_buffer_get_text(). Note that 0xFFFC can occur in normal
text as well, so it is not a reliable indicator that a pixbuf or
widget is in the buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="236"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1844">an allocated UTF-8 string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1828">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1829">start of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1830">end of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="include_hidden_chars" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1831">whether to include invisible text</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_start_iter"
              c:identifier="gtk_text_buffer_get_start_iter">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2919">Initialized @iter with the first position in the text buffer. This
is the same as using gtk_text_buffer_get_iter_at_offset() to get
the iter at character offset 0.</doc>
        <source-position filename="gtktextbuffer.h" line="336"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2921">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2922">iterator to initialize</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tag_table"
              c:identifier="gtk_text_buffer_get_tag_table"
              glib:get-property="tag-table">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="802">Get the #GtkTextTagTable associated with this buffer.</doc>
        <source-position filename="gtktextbuffer.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="808">the buffer's tag table</doc>
          <type name="TextTagTable" c:type="GtkTextTagTable*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="804">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text"
              c:identifier="gtk_text_buffer_get_text"
              glib:get-property="text">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1791">Returns the text in the range [@start,@end). Excludes undisplayed
text (text marked with tags that set the invisibility attribute) if
@include_hidden_chars is %FALSE. Does not include characters
representing embedded images, so byte and character indexes into
the returned string do &lt;emphasis&gt;not&lt;/emphasis&gt; correspond to byte
and character indexes into the buffer. Contrast with
gtk_text_buffer_get_slice().</doc>
        <source-position filename="gtktextbuffer.h" line="231"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1806">an allocated UTF-8 string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1793">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1794">start of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1795">end of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="include_hidden_chars" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1796">whether to include invisible text</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="gtk_text_buffer_insert">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="896">Inserts @len bytes of @text at position @iter.  If @len is -1,
@text must be nul-terminated and will be inserted in its
entirety. Emits the "insert-text" signal; insertion actually occurs
in the default handler for the signal. @iter is invalidated when
insertion occurs (because the buffer contents change), but the
default signal handler revalidates it to point to the end of the
inserted text.</doc>
        <source-position filename="gtktextbuffer.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="898">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="899">a position in the buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="900">text in UTF-8 format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="901">length of text in bytes, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_at_cursor"
              c:identifier="gtk_text_buffer_insert_at_cursor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="925">Simply calls gtk_text_buffer_insert(), using the current
cursor position as the insertion point.</doc>
        <source-position filename="gtktextbuffer.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="927">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="928">text in UTF-8 format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="929">length of text, in bytes</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_child_anchor"
              c:identifier="gtk_text_buffer_insert_child_anchor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1922">Inserts a child widget anchor into the text buffer at @iter. The
anchor will be counted as one character in character counts, and
when obtaining the buffer contents as a string, will be represented
by the Unicode "object replacement character" 0xFFFC. Note that the
"slice" variants for obtaining portions of the buffer as a string
include this character for child anchors, but the "text" variants do
not. E.g. see gtk_text_buffer_get_slice() and
gtk_text_buffer_get_text(). Consider
gtk_text_buffer_create_child_anchor() as a more convenient
alternative to this function. The buffer will add a reference to
the anchor, so you can unref it after insertion.</doc>
        <source-position filename="gtktextbuffer.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1924">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1925">location to insert the anchor</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1926">a #GtkTextChildAnchor</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_interactive"
              c:identifier="gtk_text_buffer_insert_interactive">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="950">Like gtk_text_buffer_insert(), but the insertion will not occur if
@iter is at a non-editable location in the buffer. Usually you
want to prevent insertions at ineditable locations if the insertion
results from a user action (is interactive).

@default_editable indicates the editability of text that doesn't
have a tag affecting editability applied to it. Typically the
result of gtk_text_view_get_editable() is appropriate here.</doc>
        <source-position filename="gtktextbuffer.h" line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="967">whether text was actually inserted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="952">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="953">a position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="954">some UTF-8 text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="955">length of text in bytes, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="956">default editability of buffer</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_interactive_at_cursor"
              c:identifier="gtk_text_buffer_insert_interactive_at_cursor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="991">Calls gtk_text_buffer_insert_interactive() at the cursor
position.

@default_editable indicates the editability of text that doesn't
have a tag affecting editability applied to it. Typically the
result of gtk_text_view_get_editable() is appropriate here.</doc>
        <source-position filename="gtktextbuffer.h" line="188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1005">whether text was actually inserted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="993">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="994">text in UTF-8 format</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="995">length of text in bytes, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="996">default editability of buffer</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_pixbuf"
              c:identifier="gtk_text_buffer_insert_pixbuf">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1878">Inserts an image into the text buffer at @iter. The image will be
counted as one character in character counts, and when obtaining
the buffer contents as a string, will be represented by the Unicode
"object replacement character" 0xFFFC. Note that the "slice"
variants for obtaining portions of the buffer as a string include
this character for pixbufs, but the "text" variants do
not. e.g. see gtk_text_buffer_get_slice() and
gtk_text_buffer_get_text().</doc>
        <source-position filename="gtktextbuffer.h" line="242"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1880">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1881">location to insert the pixbuf</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1882">a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_range" c:identifier="gtk_text_buffer_insert_range">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1374">Copies text, tags, and pixbufs between @start and @end (the order
of @start and @end doesn't matter) and inserts the copy at @iter.
Used instead of simply getting/inserting text because it preserves
images and tags. If @start and @end are in a different buffer from
@buffer, the two buffers must share the same tag table.

Implemented via emissions of the insert_text and apply_tag signals,
so expect those.</doc>
        <source-position filename="gtktextbuffer.h" line="193"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1376">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1377">a position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1378">a position in a #GtkTextBuffer</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1379">another position in the same buffer as @start</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_range_interactive"
              c:identifier="gtk_text_buffer_insert_range_interactive">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1409">Same as gtk_text_buffer_insert_range(), but does nothing if the
insertion point isn't editable. The @default_editable parameter
indicates whether the text is editable at @iter if no tags
enclosing @iter affect editability. Typically the result of
gtk_text_view_get_editable() is appropriate here.</doc>
        <source-position filename="gtktextbuffer.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbuffer.c"
               line="1423">whether an insertion was possible at @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1411">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1412">a position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1413">a position in a #GtkTextBuffer</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1414">another position in the same buffer as @start</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1415">default editability of the buffer</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_with_tags"
              c:identifier="gtk_text_buffer_insert_with_tags"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1450">Inserts @text into @buffer at @iter, applying the list of tags to
the newly-inserted text. The last tag specified must be NULL to
terminate the list. Equivalent to calling gtk_text_buffer_insert(),
then gtk_text_buffer_apply_tag() on the inserted text;
gtk_text_buffer_insert_with_tags() is just a convenience function.</doc>
        <source-position filename="gtktextbuffer.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1452">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1453">an iterator in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1454">UTF-8 text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1455">length of @text, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="first_tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1456">first tag to apply to @text</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1457">NULL-terminated list of tags to apply</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_with_tags_by_name"
              c:identifier="gtk_text_buffer_insert_with_tags_by_name"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="1504">Same as gtk_text_buffer_insert_with_tags(), but allows you
to pass in tag names instead of tag objects.</doc>
        <source-position filename="gtktextbuffer.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1506">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1507">position in @buffer</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1508">UTF-8 text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1509">length of @text, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="first_tag_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1510">name of a tag to apply to @text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="1511">more tag names</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="move_mark" c:identifier="gtk_text_buffer_move_mark">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2138">Moves @mark to the new location @where. Emits the "mark-set" signal
as notification of the move.</doc>
        <source-position filename="gtktextbuffer.h" line="263"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2140">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2141">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2142">new location for @mark in @buffer</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_mark_by_name"
              c:identifier="gtk_text_buffer_move_mark_by_name">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2243">Moves the mark named @name (which must exist) to location @where.
See gtk_text_buffer_move_mark() for details.</doc>
        <source-position filename="gtktextbuffer.h" line="271"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2245">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2246">name of a mark</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2247">new location for mark</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="paste_clipboard"
              c:identifier="gtk_text_buffer_paste_clipboard">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3740">Pastes the contents of a clipboard at the insertion point, or
at @override_location. (Note: pasting is asynchronous, that is,
we'll ask for the paste data and return, and at some point later
after the main loop runs, the paste data will be inserted.)</doc>
        <source-position filename="gtktextbuffer.h" line="376"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3742">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3743">the #GtkClipboard to paste from</doc>
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
          <parameter name="override_location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3744">location to insert pasted text, or %NULL for
                    at the cursor</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="default_editable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3746">whether the buffer is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="place_cursor" c:identifier="gtk_text_buffer_place_cursor">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2369">This function moves the "insert" and "selection_bound" marks
simultaneously.  If you move them to the same place in two steps
with gtk_text_buffer_move_mark(), you will temporarily select a
region in between their old and new locations, which can be pretty
inefficient since the temporarily-selected region will force stuff
to be recalculated. This function moves them as a unit, which can
be optimized.</doc>
        <source-position filename="gtktextbuffer.h" line="281"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2371">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="where" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2372">where to put the cursor</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_deserialize_format"
              c:identifier="gtk_text_buffer_register_deserialize_format"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="157">This function registers a rich text deserialization @function along with
its @mime_type with the passed @buffer.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="168">the #GdkAtom that corresponds to the
              newly registered format's mime-type.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="159">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="160">the format's mime-type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="function"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="161">the deserialize function to register</doc>
            <type name="TextBufferDeserializeFunc"
                  c:type="GtkTextBufferDeserializeFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="162">@function's user_data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="163">a function to call when @user_data is no longer needed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_deserialize_tagset"
              c:identifier="gtk_text_buffer_register_deserialize_tagset"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="202">This function registers GTK+'s internal rich text serialization
format with the passed @buffer. See
gtk_text_buffer_register_serialize_tagset() for details.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="211">the #GdkAtom that corresponds to the
              newly registered format's mime-type.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="204">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tagset_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="205">an optional tagset name, on %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_serialize_format"
              c:identifier="gtk_text_buffer_register_serialize_format"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="59">This function registers a rich text serialization @function along with
its @mime_type with the passed @buffer.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="70">the #GdkAtom that corresponds to the
              newly registered format's mime-type.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="61">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="62">the format's mime-type</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="function"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="63">the serialize function to register</doc>
            <type name="TextBufferSerializeFunc"
                  c:type="GtkTextBufferSerializeFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="64">%function's user_data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="65">a function to call when @user_data is no longer needed</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_serialize_tagset"
              c:identifier="gtk_text_buffer_register_serialize_tagset"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="104">This function registers GTK+'s internal rich text serialization
format with the passed @buffer. The internal format does not comply
to any standard rich text format and only works between #GtkTextBuffer
instances. It is capable of serializing all of a text buffer's tags
and embedded pixbufs.

This function is just a wrapper around
gtk_text_buffer_register_serialize_format(). The mime type used
for registering is "application/x-gtk-text-buffer-rich-text", or
"application/x-gtk-text-buffer-rich-text;format=@tagset_name" if a
@tagset_name was passed.

The @tagset_name can be used to restrict the transfer of rich text
to buffers with compatible sets of tags, in order to avoid unknown
tags from being pasted. It is probably the common case to pass an
identifier != %NULL here, since the %NULL tagset requires the
receiving buffer to deal with with pasting of arbitrary tags.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="127">the #GdkAtom that corresponds to the
              newly registered format's mime-type.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="106">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tagset_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="107">an optional tagset name, on %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_all_tags"
              c:identifier="gtk_text_buffer_remove_all_tags">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2711">Removes all tags in the range between @start and @end.  Be careful
with this function; it could remove tags added in code unrelated to
the code you're currently writing. That is, using this function is
probably a bad idea if you have two or more unrelated code sections
that add tags.</doc>
        <source-position filename="gtktextbuffer.h" line="306"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2713">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2714">one bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2715">other bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_selection_clipboard"
              c:identifier="gtk_text_buffer_remove_selection_clipboard">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3698">Removes a #GtkClipboard added with
gtk_text_buffer_add_selection_clipboard().</doc>
        <source-position filename="gtktextbuffer.h" line="368"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3700">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="clipboard" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3701">a #GtkClipboard added to @buffer by
            gtk_text_buffer_add_selection_clipboard()</doc>
            <type name="Clipboard" c:type="GtkClipboard*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_tag" c:identifier="gtk_text_buffer_remove_tag">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2596">Emits the "remove-tag" signal. The default handler for the signal
removes all occurrences of @tag from the given range. @start and
@end don't have to be in order.</doc>
        <source-position filename="gtktextbuffer.h" line="294"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2598">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2599">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2600">one bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2601">other bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_tag_by_name"
              c:identifier="gtk_text_buffer_remove_tag_by_name">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2662">Calls gtk_text_tag_table_lookup() on the buffer's tag table to
get a #GtkTextTag, then calls gtk_text_buffer_remove_tag().</doc>
        <source-position filename="gtktextbuffer.h" line="302"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2664">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2665">name of a #GtkTextTag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2666">one bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2667">other bound of range to be untagged</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_range"
              c:identifier="gtk_text_buffer_select_range"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="2389">This function moves the "insert" and "selection_bound" marks
simultaneously.  If you move them in two steps
with gtk_text_buffer_move_mark(), you will temporarily select a
region in between their old and new locations, which can be pretty
inefficient since the temporarily-selected region will force stuff
to be recalculated. This function moves them as a unit, which can
be optimized.</doc>
        <source-position filename="gtktextbuffer.h" line="283"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2391">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="ins" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2392">where to put the "insert" mark</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="bound" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="2393">where to put the "selection_bound" mark</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="serialize"
              c:identifier="gtk_text_buffer_serialize"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="459">This function serializes the portion of text between @start
and @end in the rich text format represented by @format.

@format&lt;!-- --&gt;s to be used must be registered using
gtk_text_buffer_register_serialize_format() or
gtk_text_buffer_register_serialize_tagset() beforehand.</doc>
        <source-position filename="gtktextbufferrichtext.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextbufferrichtext.c"
               line="475">the serialized
              data, encoded as @format</doc>
          <array length="4" zero-terminated="0" c:type="guint8*">
            <type name="guint8" c:type="guint8"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="register_buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="461">the #GtkTextBuffer @format is registered with</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="content_buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="462">the #GtkTextBuffer to serialize</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="463">the rich text format to use for serializing</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="464">start of block of text to serialize</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="465">end of block of test to serialize</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="466">return location for the length of the serialized data</doc>
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modified" c:identifier="gtk_text_buffer_set_modified">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="3005">Used to keep track of whether the buffer has been modified since the
last time it was saved. Whenever the buffer is saved to disk, call
gtk_text_buffer_set_modified (@buffer, FALSE). When the buffer is modified,
it will automatically toggled on the modified bit again. When the modified
bit flips, the buffer emits a "modified-changed" signal.</doc>
        <source-position filename="gtktextbuffer.h" line="361"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3007">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="3008">modification flag setting</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="gtk_text_buffer_set_text"
              glib:set-property="text">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="818">Deletes current contents of @buffer, and inserts @text instead. If
@len is -1, @text must be nul-terminated. @text must be valid UTF-8.</doc>
        <source-position filename="gtktextbuffer.h" line="170"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="820">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="821">UTF-8 text to insert</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="822">length of @text in bytes</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_deserialize_format"
              c:identifier="gtk_text_buffer_unregister_deserialize_format"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="271">This function unregisters a rich text format that was previously
registered using gtk_text_buffer_register_deserialize_format() or
gtk_text_buffer_register_deserialize_tagset().</doc>
        <source-position filename="gtktextbufferrichtext.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="273">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="274">a #GdkAtom representing a registered rich text format.</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_serialize_format"
              c:identifier="gtk_text_buffer_unregister_serialize_format"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktextbufferrichtext.c"
             line="241">This function unregisters a rich text format that was previously
registered using gtk_text_buffer_register_serialize_format() or
gtk_text_buffer_register_serialize_tagset()</doc>
        <source-position filename="gtktextbufferrichtext.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="243">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbufferrichtext.c"
                 line="244">a #GdkAtom representing a registered rich text format.</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
        </parameters>
      </method>
      <property name="copy-target-list"
                version="2.10"
                transfer-ownership="none"
                getter="get_copy_target_list">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="235">The list of targets this buffer supports for clipboard copying
and as DND source.</doc>
        <type name="TargetList"/>
      </property>
      <property name="cursor-position"
                version="2.10"
                transfer-ownership="none"
                default-value="0">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="218">The position of the insert mark (as offset from the beginning
of the buffer). It is useful for getting notified when the
cursor moves.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="has-selection"
                version="2.10"
                transfer-ownership="none"
                getter="get_has_selection"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="203">Whether the buffer has some text currently selected.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="paste-target-list"
                version="2.10"
                transfer-ownership="none"
                getter="get_paste_target_list">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="251">The list of targets this buffer supports for clipboard pasting
and as DND destination.</doc>
        <type name="TargetList"/>
      </property>
      <property name="tag-table"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_tag_table">
        <type name="TextTagTable"/>
      </property>
      <property name="text"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                setter="set_text"
                getter="get_text">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="187">The text content of the buffer. Without child widgets and images,
see gtk_text_buffer_get_text() for more information.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="tag_table">
        <type name="TextTagTable" c:type="GtkTextTagTable*"/>
      </field>
      <field name="btree">
        <type name="TextBTree" c:type="GtkTextBTree*"/>
      </field>
      <field name="clipboard_contents_buffers">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="selection_clipboards">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="log_attr_cache">
        <type name="TextLogAttrCache" c:type="GtkTextLogAttrCache*"/>
      </field>
      <field name="user_action_count">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="modified" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_selection" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="apply-tag" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="471">The ::apply-tag signal is emitted to apply a tag to a
range of text in a #GtkTextBuffer.
Applying actually occurs in the default handler.

Note that if your handler runs before the default handler it must not
invalidate the @start and @end iters (or has to revalidate them).

See also:
gtk_text_buffer_apply_tag(),
gtk_text_buffer_insert_with_tags(),
gtk_text_buffer_insert_range().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="474">the applied tag</doc>
            <type name="TextTag"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="475">the start of the range the tag is applied to</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="476">the end of the range the tag is applied to</doc>
            <type name="TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="begin-user-action" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="534">The ::begin-user-action signal is emitted at the beginning of a single
user-visible operation on a #GtkTextBuffer.

See also:
gtk_text_buffer_begin_user_action(),
gtk_text_buffer_insert_interactive(),
gtk_text_buffer_insert_range_interactive(),
gtk_text_buffer_delete_interactive(),
gtk_text_buffer_backspace(),
gtk_text_buffer_delete_selection().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="387">The ::changed signal is emitted when the content of a #GtkTextBuffer
has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="delete-range" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="357">The ::delete-range signal is emitted to delete a range
from a #GtkTextBuffer.

Note that if your handler runs before the default handler it must not
invalidate the @start and @end iters (or has to revalidate them).
The default signal handler revalidates the @start and @end iters to
both point point to the location where text was deleted. Handlers
which run after the default handler (see g_signal_connect_after())
do not have access to the deleted text.

See also: gtk_text_buffer_delete().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="360">the start of the range to be deleted</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="361">the end of the range to be deleted</doc>
            <type name="TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="end-user-action" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="559">The ::end-user-action signal is emitted at the end of a single
user-visible operation on the #GtkTextBuffer.

See also:
gtk_text_buffer_end_user_action(),
gtk_text_buffer_insert_interactive(),
gtk_text_buffer_insert_range_interactive(),
gtk_text_buffer_delete_interactive(),
gtk_text_buffer_backspace(),
gtk_text_buffer_delete_selection(),
gtk_text_buffer_backspace().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="insert-child-anchor" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="328">The ::insert-child-anchor signal is emitted to insert a
#GtkTextChildAnchor in a #GtkTextBuffer.
Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must
not invalidate the @location iter (or has to revalidate it).
The default signal handler revalidates it to be placed after the
inserted @anchor.

See also: gtk_text_buffer_insert_child_anchor().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="331">position to insert @anchor in @textbuffer</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="332">the #GtkTextChildAnchor to be inserted</doc>
            <type name="TextChildAnchor"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-pixbuf" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="299">The ::insert-pixbuf signal is emitted to insert a #GdkPixbuf
in a #GtkTextBuffer. Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must not
invalidate the @location iter (or has to revalidate it).
The default signal handler revalidates it to be placed after the
inserted @pixbuf.

See also: gtk_text_buffer_insert_pixbuf().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="302">position to insert @pixbuf in @textbuffer</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="303">the #GdkPixbuf to be inserted</doc>
            <type name="GdkPixbuf.Pixbuf"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-text" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="267">The ::insert-text signal is emitted to insert text in a #GtkTextBuffer.
Insertion actually occurs in the default handler.

Note that if your handler runs before the default handler it must not
invalidate the @location iter (or has to revalidate it).
The default signal handler revalidates it to point to the end of the
inserted text.

See also:
gtk_text_buffer_insert(),
gtk_text_buffer_insert_range().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="270">position to insert @text in @textbuffer</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="271">the UTF-8 text to be inserted</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="272">length of the inserted text in bytes</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="mark-deleted" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="449">The ::mark-deleted signal is emitted as notification
after a #GtkTextMark is deleted.

See also:
gtk_text_buffer_delete_mark().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="452">The mark that was deleted</doc>
            <type name="TextMark"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="mark-set" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="424">The ::mark-set signal is emitted as notification
after a #GtkTextMark is set.

See also:
gtk_text_buffer_create_mark(),
gtk_text_buffer_move_mark().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="427">The location of @mark in @textbuffer</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="428">The mark that is set</doc>
            <type name="TextMark"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="modified-changed" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="404">The ::modified-changed signal is emitted when the modified bit of a
#GtkTextBuffer flips.

See also:
gtk_text_buffer_set_modified().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="paste-done" when="last" version="2.16">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="585">The paste-done signal is emitted after paste operation has been completed.
This is useful to properly scroll the view to the end of the pasted text.
See gtk_text_buffer_paste_clipboard() for more details.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Clipboard"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="remove-tag" when="last">
        <doc xml:space="preserve"
             filename="gtktextbuffer.c"
             line="504">The ::remove-tag signal is emitted to remove all occurrences of @tag from
a range of text in a #GtkTextBuffer.
Removal actually occurs in the default handler.

Note that if your handler runs before the default handler it must not
invalidate the @start and @end iters (or has to revalidate them).

See also:
gtk_text_buffer_remove_tag().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="507">the tag to be removed</doc>
            <type name="TextTag"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="508">the start of the range the tag is removed from</doc>
            <type name="TextIter"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbuffer.c"
                 line="509">the end of the range the tag is removed from</doc>
            <type name="TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TextBufferClass"
            c:type="GtkTextBufferClass"
            glib:is-gtype-struct-for="TextBuffer">
      <source-position filename="gtktextbuffer.h" line="155"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="insert_text">
        <callback name="insert_text">
          <source-position filename="gtktextbuffer.h" line="98"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="pos" transfer-ownership="none">
              <type name="TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_pixbuf">
        <callback name="insert_pixbuf">
          <source-position filename="gtktextbuffer.h" line="103"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="1880">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="pos" transfer-ownership="none">
              <type name="TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="pixbuf" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="1882">a #GdkPixbuf</doc>
              <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_child_anchor">
        <callback name="insert_child_anchor">
          <source-position filename="gtktextbuffer.h" line="107"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="1924">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="pos" transfer-ownership="none">
              <type name="TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="anchor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="1926">a #GtkTextChildAnchor</doc>
              <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_range">
        <callback name="delete_range">
          <source-position filename="gtktextbuffer.h" line="111"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <type name="TextIter" c:type="GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <type name="TextIter" c:type="GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="gtktextbuffer.h" line="118"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="modified_changed">
        <callback name="modified_changed">
          <source-position filename="gtktextbuffer.h" line="122"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mark_set">
        <callback name="mark_set">
          <source-position filename="gtktextbuffer.h" line="125"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="location" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="mark" transfer-ownership="none">
              <type name="TextMark" c:type="GtkTextMark*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mark_deleted">
        <callback name="mark_deleted">
          <source-position filename="gtktextbuffer.h" line="129"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="mark" transfer-ownership="none">
              <type name="TextMark" c:type="GtkTextMark*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="apply_tag">
        <callback name="apply_tag">
          <source-position filename="gtktextbuffer.h" line="132"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="2570">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="tag" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="2571">a #GtkTextTag</doc>
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
            <parameter name="start_char" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="end_char" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_tag">
        <callback name="remove_tag">
          <source-position filename="gtktextbuffer.h" line="137"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="2598">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="tag" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="2599">a #GtkTextTag</doc>
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
            <parameter name="start_char" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="end_char" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="begin_user_action">
        <callback name="begin_user_action">
          <source-position filename="gtktextbuffer.h" line="143"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="4058">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_user_action">
        <callback name="end_user_action">
          <source-position filename="gtktextbuffer.h" line="144"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktextbuffer.c"
                   line="4094">a #GtkTextBuffer</doc>
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paste_done">
        <callback name="paste_done">
          <source-position filename="gtktextbuffer.h" line="146"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="buffer" transfer-ownership="none">
              <type name="TextBuffer" c:type="GtkTextBuffer*"/>
            </parameter>
            <parameter name="clipboard" transfer-ownership="none">
              <type name="Clipboard" c:type="GtkClipboard*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktextbuffer.h" line="150"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktextbuffer.h" line="151"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktextbuffer.h" line="152"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktextbuffer.h" line="153"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved5" introspectable="0">
        <callback name="_gtk_reserved5">
          <source-position filename="gtktextbuffer.h" line="154"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TextBufferDeserializeFunc"
              c:type="GtkTextBufferDeserializeFunc"
              throws="1">
      <source-position filename="gtktextbufferrichtext.h" line="39"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="register_buffer" transfer-ownership="none">
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
        <parameter name="content_buffer" transfer-ownership="none">
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TextIter" c:type="GtkTextIter*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="guint8" c:type="const guint8*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="create_tags" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="6">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TextBufferSerializeFunc"
              c:type="GtkTextBufferSerializeFunc">
      <source-position filename="gtktextbufferrichtext.h" line="33"/>
      <return-value transfer-ownership="none">
        <type name="guint8" c:type="guint8*"/>
      </return-value>
      <parameters>
        <parameter name="register_buffer" transfer-ownership="none">
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
        <parameter name="content_buffer" transfer-ownership="none">
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
        <parameter name="start" transfer-ownership="none">
          <type name="TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="end" transfer-ownership="none">
          <type name="TextIter" c:type="const GtkTextIter*"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <type name="gsize" c:type="gsize*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="5">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TextBufferTargetInfo"
                 glib:type-name="GtkTextBufferTargetInfo"
                 glib:get-type="gtk_text_buffer_target_info_get_type"
                 c:type="GtkTextBufferTargetInfo">
      <member name="buffer_contents"
              value="-1"
              c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS"
              glib:nick="buffer-contents"
              glib:name="GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS">
      </member>
      <member name="rich_text"
              value="-2"
              c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT"
              glib:nick="rich-text"
              glib:name="GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT">
      </member>
      <member name="text"
              value="-3"
              c:identifier="GTK_TEXT_BUFFER_TARGET_INFO_TEXT"
              glib:nick="text"
              glib:name="GTK_TEXT_BUFFER_TARGET_INFO_TEXT">
      </member>
    </enumeration>
    <callback name="TextCharPredicate" c:type="GtkTextCharPredicate">
      <source-position filename="gtktextiter.h" line="262"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ch" transfer-ownership="none">
          <type name="gunichar" c:type="gunichar"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="TextChildAnchor"
           c:symbol-prefix="text_child_anchor"
           c:type="GtkTextChildAnchor"
           parent="GObject.Object"
           glib:type-name="GtkTextChildAnchor"
           glib:get-type="gtk_text_child_anchor_get_type"
           glib:type-struct="TextChildAnchorClass">
      <source-position filename="gtktextchild.h" line="71"/>
      <constructor name="new" c:identifier="gtk_text_child_anchor_new">
        <doc xml:space="preserve"
             filename="gtktextchild.c"
             line="327">Creates a new #GtkTextChildAnchor. Usually you would then insert
it into a #GtkTextBuffer with gtk_text_buffer_insert_child_anchor().
To perform the creation and insertion in one step, use the
convenience function gtk_text_buffer_create_child_anchor().</doc>
        <source-position filename="gtktextchild.h" line="75"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextchild.c"
               line="335">a new #GtkTextChildAnchor</doc>
          <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
        </return-value>
      </constructor>
      <method name="get_deleted"
              c:identifier="gtk_text_child_anchor_get_deleted">
        <doc xml:space="preserve"
             filename="gtktextchild.c"
             line="416">Determines whether a child anchor has been deleted from
the buffer. Keep in mind that the child anchor will be
unreferenced when removed from the buffer, so you need to
hold your own reference (with g_object_ref()) if you plan
to use this function &amp;mdash; otherwise all deleted child anchors
will also be finalized.</doc>
        <source-position filename="gtktextchild.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextchild.c"
               line="427">%TRUE if the child anchor has been deleted from its buffer</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextchild.c"
                 line="418">a #GtkTextChildAnchor</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widgets"
              c:identifier="gtk_text_child_anchor_get_widgets">
        <doc xml:space="preserve"
             filename="gtktextchild.c"
             line="381">Gets a list of all widgets anchored at this child anchor.
The returned list should be freed with g_list_free().</doc>
        <source-position filename="gtktextchild.h" line="77"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextchild.c"
               line="389">list of widgets anchored at @anchor</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextchild.c"
                 line="383">a #GtkTextChildAnchor</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="queue_resize"
              c:identifier="gtk_text_child_anchor_queue_resize">
        <source-position filename="gtktextlayout.h" line="429"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="anchor" transfer-ownership="none">
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </instance-parameter>
          <parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_child"
              c:identifier="gtk_text_child_anchor_register_child">
        <source-position filename="gtktextlayout.h" line="423"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="anchor" transfer-ownership="none">
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unregister_child"
              c:identifier="gtk_text_child_anchor_unregister_child">
        <source-position filename="gtktextlayout.h" line="426"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="anchor" transfer-ownership="none">
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="segment">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="TextChildAnchorClass"
            c:type="GtkTextChildAnchorClass"
            glib:is-gtype-struct-for="TextChildAnchor">
      <source-position filename="gtktextchild.h" line="71"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktextchild.h" line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktextchild.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktextchild.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktextchild.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TextCursorDisplay" c:type="GtkTextCursorDisplay">
      <source-position filename="gtktextlayout.h" line="235"/>
      <field name="x" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="is_strong" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="is_weak" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <enumeration name="TextDirection"
                 glib:type-name="GtkTextDirection"
                 glib:get-type="gtk_text_direction_get_type"
                 c:type="GtkTextDirection">
      <member name="none"
              value="0"
              c:identifier="GTK_TEXT_DIR_NONE"
              glib:nick="none"
              glib:name="GTK_TEXT_DIR_NONE">
      </member>
      <member name="ltr"
              value="1"
              c:identifier="GTK_TEXT_DIR_LTR"
              glib:nick="ltr"
              glib:name="GTK_TEXT_DIR_LTR">
      </member>
      <member name="rtl"
              value="2"
              c:identifier="GTK_TEXT_DIR_RTL"
              glib:nick="rtl"
              glib:name="GTK_TEXT_DIR_RTL">
      </member>
    </enumeration>
    <callback name="TextFunction" c:type="GtkTextFunction">
      <source-position filename="gtkoldeditable.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="editable" transfer-ownership="none">
          <type name="OldEditable" c:type="GtkOldEditable*"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TextIter"
            c:type="GtkTextIter"
            glib:type-name="GtkTextIter"
            glib:get-type="gtk_text_iter_get_type"
            c:symbol-prefix="text_iter">
      <source-position filename="gtktextiter.h" line="76"/>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy5" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy6" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy7" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy8" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy9" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy10" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy11" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy12" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy13" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dummy14" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="backward_char" c:identifier="gtk_text_iter_backward_char">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2208">Moves backward by one character offset. Returns %TRUE if movement
was possible; if @iter was the first in the buffer (character
offset 0), gtk_text_iter_backward_char () returns %FALSE for convenience when
writing loops.</doc>
        <source-position filename="gtktextiter.h" line="178"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2217">whether movement was possible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2210">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_chars"
              c:identifier="gtk_text_iter_backward_chars">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2315">Moves @count characters backward, if possible (if @count would move
past the start or end of the buffer, moves to the start or end of
the buffer).  The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn't move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE.</doc>
        <source-position filename="gtktextiter.h" line="181"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2327">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2317">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2318">number of characters to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_cursor_position"
              c:identifier="gtk_text_iter_backward_cursor_position">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3595">Like gtk_text_iter_forward_cursor_position(), but moves backward.</doc>
        <source-position filename="gtktextiter.h" line="222"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3601">%TRUE if we moved</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3597">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_cursor_positions"
              c:identifier="gtk_text_iter_backward_cursor_positions">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3628">Moves up to @count cursor positions. See
gtk_text_iter_forward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="225"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3636">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3630">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3631">number of positions to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_find_char"
              c:identifier="gtk_text_iter_backward_find_char">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4346">Same as gtk_text_iter_forward_find_char(), but goes backward from @iter.</doc>
        <source-position filename="gtktextiter.h" line="268"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4355">whether a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4348">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="pred"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4349">function to be called on each character</doc>
            <type name="TextCharPredicate" c:type="GtkTextCharPredicate"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4350">user data for @pred</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="limit"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4351">search limit, or %NULL for none</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_line" c:identifier="gtk_text_iter_backward_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2521">Moves @iter to the start of the previous line. Returns %TRUE if
@iter could be moved; i.e. if @iter was at character offset 0, this
function returns %FALSE. Therefore if @iter was already on line 0,
but not at the start of the line, @iter is snapped to the start of
the line and the function returns %TRUE. (Note that this implies that
in a loop calling this function, the line number may not change on
every iteration, if your first iteration is on line 0.)</doc>
        <source-position filename="gtktextiter.h" line="184"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2533">whether @iter moved</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2523">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_lines"
              c:identifier="gtk_text_iter_backward_lines">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2650">Moves @count lines backward, if possible (if @count would move
past the start or end of the buffer, moves to the start or end of
the buffer).  The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn't move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves forward by 0 - @count lines.</doc>
        <source-position filename="gtktextiter.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2663">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2652">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2653">number of lines to move backward</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_search"
              c:identifier="gtk_text_iter_backward_search">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4868">Same as gtk_text_iter_forward_search(), but moves backward.</doc>
        <source-position filename="gtktextiter.h" line="280"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4879">whether a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4870">a #GtkTextIter where the search begins</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4871">search string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4872">bitmask of flags affecting the search</doc>
            <type name="TextSearchFlags" c:type="GtkTextSearchFlags"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4873">return location for start of match, or %NULL</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4874">return location for end of match, or %NULL</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="limit"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4875">location of last possible @match_start, or %NULL for start of buffer</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_sentence_start"
              c:identifier="gtk_text_iter_backward_sentence_start">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3462">Moves backward to the previous sentence start; if @iter is already at
the start of a sentence, moves backward to the next one.  Sentence
boundaries are determined by Pango and should be correct for nearly
any language (if not, the correct fix would be to the Pango text
boundary algorithms).</doc>
        <source-position filename="gtktextiter.h" line="211"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3472">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3464">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_sentence_starts"
              c:identifier="gtk_text_iter_backward_sentence_starts">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3503">Calls gtk_text_iter_backward_sentence_start() up to @count times,
or until it returns %FALSE. If @count is negative, moves forward
instead of backward.</doc>
        <source-position filename="gtktextiter.h" line="214"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3512">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3505">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3506">number of sentences to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_to_tag_toggle"
              c:identifier="gtk_text_iter_backward_to_tag_toggle">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4195">Moves backward to the next toggle (on or off) of the
#GtkTextTag @tag, or to the next toggle of any tag if
@tag is %NULL. If no matching tag toggles are found,
returns %FALSE, otherwise %TRUE. Does not return toggles
located at @iter, only toggles before @iter. Sets @iter
to the location of the toggle, or the start of the buffer
if no toggle is found.</doc>
        <source-position filename="gtktextiter.h" line="259"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4208">whether we found a tag toggle before @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4197">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4198">a #GtkTextTag, or %NULL</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_visible_cursor_position"
              c:identifier="gtk_text_iter_backward_visible_cursor_position"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3664">Moves @iter forward to the previous visible cursor position. See
gtk_text_iter_backward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="229"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3671">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3666">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_visible_cursor_positions"
              c:identifier="gtk_text_iter_backward_visible_cursor_positions"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3702">Moves up to @count visible cursor positions. See
gtk_text_iter_backward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="232"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3710">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3704">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3705">number of positions to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_visible_line"
              c:identifier="gtk_text_iter_backward_visible_line"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2727">Moves @iter to the start of the previous visible line. Returns %TRUE if
@iter could be moved; i.e. if @iter was at character offset 0, this
function returns %FALSE. Therefore if @iter was already on line 0,
but not at the start of the line, @iter is snapped to the start of
the line and the function returns %TRUE. (Note that this implies that
in a loop calling this function, the line number may not change on
every iteration, if your first iteration is on line 0.)</doc>
        <source-position filename="gtktextiter.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2739">whether @iter moved</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2729">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_visible_lines"
              c:identifier="gtk_text_iter_backward_visible_lines"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2807">Moves @count visible lines backward, if possible (if @count would move
past the start or end of the buffer, moves to the start or end of
the buffer).  The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn't move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves forward by 0 - @count lines.</doc>
        <source-position filename="gtktextiter.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2820">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2809">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2810">number of lines to move backward</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_visible_word_start"
              c:identifier="gtk_text_iter_backward_visible_word_start"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3281">Moves backward to the previous visible word start. (If @iter is currently
on a word start, moves backward to the next one after that.) Word breaks
are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="204"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3291">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3283">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_visible_word_starts"
              c:identifier="gtk_text_iter_backward_visible_word_starts"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3321">Calls gtk_text_iter_backward_visible_word_start() up to @count times.</doc>
        <source-position filename="gtktextiter.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3328">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3323">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3324">number of times to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_word_start"
              c:identifier="gtk_text_iter_backward_word_start">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3203">Moves backward to the previous word start. (If @iter is currently on a
word start, moves backward to the next one after that.) Word breaks
are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3213">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3205">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="backward_word_starts"
              c:identifier="gtk_text_iter_backward_word_starts">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3243">Calls gtk_text_iter_backward_word_start() up to @count times.</doc>
        <source-position filename="gtktextiter.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3250">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3245">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3246">number of times to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="begins_tag" c:identifier="gtk_text_iter_begins_tag">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1129">Returns %TRUE if @tag is toggled on at exactly this point. If @tag
is %NULL, returns %TRUE if any tag is toggled on at this point. Note
that the gtk_text_iter_begins_tag () returns %TRUE if @iter is the
&lt;emphasis&gt;start&lt;/emphasis&gt; of the tagged range;
gtk_text_iter_has_tag () tells you whether an iterator is
&lt;emphasis&gt;within&lt;/emphasis&gt; a tagged range.</doc>
        <source-position filename="gtktextiter.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1141">whether @iter is the start of a range tagged with @tag</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1131">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1132">a #GtkTextTag, or %NULL</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_insert" c:identifier="gtk_text_iter_can_insert">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1390">Considering the default editability of the buffer, and tags that
affect editability, determines whether text inserted at @iter would
be editable. If text inserted at @iter would be editable then the
user should be allowed to insert text at @iter.
gtk_text_buffer_insert_interactive() uses this function to decide
whether insertions are allowed at a given position.</doc>
        <source-position filename="gtktextiter.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1402">whether text inserted at @iter would be editable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1392">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="default_editability" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1393">%TRUE if text is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="gtk_text_iter_compare">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="5060">A qsort()-style function that returns negative if @lhs is less than
@rhs, positive if @lhs is greater than @rhs, and 0 if they're equal.
Ordering is in character offset order, i.e. the first character in the buffer
is less than the second character in the buffer.</doc>
        <source-position filename="gtktextiter.h" line="293"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="5070">-1 if @lhs is less than @rhs, 1 if @lhs is greater, 0 if they are equal</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="lhs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5062">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="rhs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5063">another #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gtk_text_iter_copy">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="393">Creates a dynamically-allocated copy of an iterator. This function
is not useful in applications, because iterators can be copied with a
simple assignment (&lt;literal&gt;GtkTextIter i = j;&lt;/literal&gt;). The
function is used by language bindings.</doc>
        <source-position filename="gtktextiter.h" line="87"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="402">a copy of the @iter, free with gtk_text_iter_free ()</doc>
          <type name="TextIter" c:type="GtkTextIter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="395">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="editable" c:identifier="gtk_text_iter_editable">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1348">Returns whether the character at @iter is within an editable region
of text.  Non-editable text is "locked" and can't be changed by the
user via #GtkTextView. This function is simply a convenience
wrapper around gtk_text_iter_get_attributes (). If no tags applied
to this text affect editability, @default_setting will be returned.

You don't want to use this function to decide whether text can be
inserted at @iter, because for insertion you don't want to know
whether the char at @iter is inside an editable range, you want to
know whether a new character inserted at @iter would be inside an
editable range. Use gtk_text_iter_can_insert() to handle this
case.</doc>
        <source-position filename="gtktextiter.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1366">whether @iter is inside an editable range</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1350">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="default_setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1351">%TRUE if text is editable by default</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="ends_line" c:identifier="gtk_text_iter_ends_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1495">Returns %TRUE if @iter points to the start of the paragraph
delimiter characters for a line (delimiters will be either a
newline, a carriage return, a carriage return followed by a
newline, or a Unicode paragraph separator character). Note that an
iterator pointing to the \n of a \r\n pair will not be counted as
the end of a line, the line ends before the \r. The end iterator is
considered to be at the end of a line, even though there are no
paragraph delimiter chars there.</doc>
        <source-position filename="gtktextiter.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1508">whether @iter is at the end of a line</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1497">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ends_sentence" c:identifier="gtk_text_iter_ends_sentence">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3409">Determines whether @iter ends a sentence.  Sentence boundaries are
determined by Pango and should be correct for nearly any language
(if not, the correct fix would be to the Pango text boundary
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="158"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3418">%TRUE if @iter is at the end of a sentence.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3411">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ends_tag" c:identifier="gtk_text_iter_ends_tag">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1175">Returns %TRUE if @tag is toggled off at exactly this point. If @tag
is %NULL, returns %TRUE if any tag is toggled off at this point. Note
that the gtk_text_iter_ends_tag () returns %TRUE if @iter is the
&lt;emphasis&gt;end&lt;/emphasis&gt; of the tagged range;
gtk_text_iter_has_tag () tells you whether an iterator is
&lt;emphasis&gt;within&lt;/emphasis&gt; a tagged range.</doc>
        <source-position filename="gtktextiter.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1187">whether @iter is the end of a range tagged with @tag</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1177">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1178">a #GtkTextTag, or %NULL</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ends_word" c:identifier="gtk_text_iter_ends_word">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3358">Determines whether @iter ends a natural-language word.  Word breaks
are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3367">%TRUE if @iter is at the end of a word</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3360">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="gtk_text_iter_equal">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="5019">Tests whether two iterators are equal, using the fastest possible
mechanism. This function is very fast; you can expect it to perform
better than e.g. getting the character offset for each iterator and
comparing the offsets yourself. Also, it's a bit faster than
gtk_text_iter_compare().</doc>
        <source-position filename="gtktextiter.h" line="291"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="5030">%TRUE if the iterators point to the same place in the buffer</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="lhs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5021">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="rhs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5022">another #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_char" c:identifier="gtk_text_iter_forward_char">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2176">Moves @iter forward by one character offset. Note that images
embedded in the buffer occupy 1 character slot, so
gtk_text_iter_forward_char () may actually move onto an image instead
of a character, if you have images in your buffer.  If @iter is the
end iterator or one character before it, @iter will now point at
the end iterator, and gtk_text_iter_forward_char () returns %FALSE for
convenience when writing loops.</doc>
        <source-position filename="gtktextiter.h" line="177"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2188">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2178">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_chars" c:identifier="gtk_text_iter_forward_chars">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2244">Moves @count characters if possible (if @count would move past the
start or end of the buffer, moves to the start or end of the
buffer). The return value indicates whether the new position of
@iter is different from its original position, and dereferenceable
(the last iterator in the buffer is not dereferenceable). If @count
is 0, the function does nothing and returns %FALSE.</doc>
        <source-position filename="gtktextiter.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2256">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2246">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2247">number of characters to move, may be negative</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_cursor_position"
              c:identifier="gtk_text_iter_forward_cursor_position">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3572">Moves @iter forward by a single cursor position. Cursor positions
are (unsurprisingly) positions where the cursor can appear. Perhaps
surprisingly, there may not be a cursor position between all
characters. The most common example for European languages would be
a carriage return/newline sequence. For some Unicode characters,
the equivalent of say the letter "a" with an accent mark will be
represented as two characters, first the letter then a "combining
mark" that causes the accent to be rendered; so the cursor can't go
between those two characters. See also the #PangoLogAttr structure and
pango_break() function.</doc>
        <source-position filename="gtktextiter.h" line="221"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3587">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3574">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_cursor_positions"
              c:identifier="gtk_text_iter_forward_cursor_positions">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3609">Moves up to @count cursor positions. See
gtk_text_iter_forward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="223"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3617">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3611">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3612">number of positions to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_find_char"
              c:identifier="gtk_text_iter_forward_find_char">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4308">Advances @iter, calling @pred on each character. If
@pred returns %TRUE, returns %TRUE and stops scanning.
If @pred never returns %TRUE, @iter is set to @limit if
@limit is non-%NULL, otherwise to the end iterator.</doc>
        <source-position filename="gtktextiter.h" line="264"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4320">whether a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4310">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="pred"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4311">a function to be called on each character</doc>
            <type name="TextCharPredicate" c:type="GtkTextCharPredicate"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4312">user data for @pred</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="limit"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4313">search limit, or %NULL for none</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_line" c:identifier="gtk_text_iter_forward_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2472">Moves @iter to the start of the next line. If the iter is already on the
last line of the buffer, moves the iter to the end of the current line.
If after the operation, the iter is at the end of the buffer and not
dereferencable, returns %FALSE. Otherwise, returns %TRUE.</doc>
        <source-position filename="gtktextiter.h" line="183"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2481">whether @iter can be dereferenced</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2474">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_lines" c:identifier="gtk_text_iter_forward_lines">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2599">Moves @count lines forward, if possible (if @count would move
past the start or end of the buffer, moves to the start or end of
the buffer).  The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn't move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves backward by 0 - @count lines.</doc>
        <source-position filename="gtktextiter.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2612">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2601">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2602">number of lines to move forward</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_search"
              c:identifier="gtk_text_iter_forward_search">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4571">Searches forward for @str. Any match is returned by setting
@match_start to the first character of the match and @match_end to the
first character after the match. The search will not continue past
@limit. Note that a search is a linear or O(n) operation, so you
may wish to use @limit to avoid locking up your UI on large
buffers.

If the #GTK_TEXT_SEARCH_VISIBLE_ONLY flag is present, the match may
have invisible text interspersed in @str. i.e. @str will be a
possibly-noncontiguous subsequence of the matched range. similarly,
if you specify #GTK_TEXT_SEARCH_TEXT_ONLY, the match may have
pixbufs or child widgets mixed inside the matched range. If these
flags are not given, the match must be exact; the special 0xFFFC
character in @str will match embedded pixbufs or child widgets.</doc>
        <source-position filename="gtktextiter.h" line="273"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4595">whether a match was found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4573">start of search</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4574">a search string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4575">flags affecting how the search is done</doc>
            <type name="TextSearchFlags" c:type="GtkTextSearchFlags"/>
          </parameter>
          <parameter name="match_start"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4576">return location for start of match, or %NULL</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="match_end"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4577">return location for end of match, or %NULL</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="limit"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4578">bound for the search, or %NULL for the end of the buffer</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_sentence_end"
              c:identifier="gtk_text_iter_forward_sentence_end">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3444">Moves forward to the next sentence end. (If @iter is at the end of
a sentence, moves to the next end of sentence.)  Sentence
boundaries are determined by Pango and should be correct for nearly
any language (if not, the correct fix would be to the Pango text
boundary algorithms).</doc>
        <source-position filename="gtktextiter.h" line="210"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3454">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3446">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_sentence_ends"
              c:identifier="gtk_text_iter_forward_sentence_ends">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3483">Calls gtk_text_iter_forward_sentence_end() @count times (or until
gtk_text_iter_forward_sentence_end() returns %FALSE). If @count is
negative, moves backward instead of forward.</doc>
        <source-position filename="gtktextiter.h" line="212"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3492">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3485">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3486">number of sentences to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_to_end"
              c:identifier="gtk_text_iter_forward_to_end">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4007">Moves @iter forward to the "end iterator," which points one past the last
valid character in the buffer. gtk_text_iter_get_char() called on the
end iterator returns 0, which is convenient for writing loops.</doc>
        <source-position filename="gtktextiter.h" line="244"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4009">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_to_line_end"
              c:identifier="gtk_text_iter_forward_to_line_end">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4063">Moves the iterator to point to the paragraph delimiter characters,
which will be either a newline, a carriage return, a carriage
return/newline in sequence, or the Unicode paragraph separator
character. If the iterator is already at the paragraph delimiter
characters, moves to the paragraph delimiter characters for the
next line. If @iter is on the last line in the buffer, which does
not end in paragraph delimiters, moves to the end iterator (end of
the last line), and returns %FALSE.</doc>
        <source-position filename="gtktextiter.h" line="245"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4076">%TRUE if we moved and the new location is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4065">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_to_tag_toggle"
              c:identifier="gtk_text_iter_forward_to_tag_toggle">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="4113">Moves forward to the next toggle (on or off) of the
#GtkTextTag @tag, or to the next toggle of any tag if
@tag is %NULL. If no matching tag toggles are found,
returns %FALSE, otherwise %TRUE. Does not return toggles
located at @iter, only toggles after @iter. Sets @iter to
the location of the toggle, or to the end of the buffer
if no toggle is found.</doc>
        <source-position filename="gtktextiter.h" line="256"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="4126">whether we found a tag toggle after @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4115">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="4116">a #GtkTextTag, or %NULL</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_visible_cursor_position"
              c:identifier="gtk_text_iter_forward_visible_cursor_position"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3647">Moves @iter forward to the next visible cursor position. See
gtk_text_iter_forward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="228"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3654">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3649">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_visible_cursor_positions"
              c:identifier="gtk_text_iter_forward_visible_cursor_positions"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3681">Moves up to @count visible cursor positions. See
gtk_text_iter_forward_cursor_position() for details.</doc>
        <source-position filename="gtktextiter.h" line="230"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3689">%TRUE if we moved and the new position is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3683">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3684">number of positions to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_visible_line"
              c:identifier="gtk_text_iter_forward_visible_line"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2690">Moves @iter to the start of the next visible line. Returns %TRUE if there
was a next line to move to, and %FALSE if @iter was simply moved to
the end of the buffer and is now not dereferenceable, or if @iter was
already at the end of the buffer.</doc>
        <source-position filename="gtktextiter.h" line="196"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2699">whether @iter can be dereferenced</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2692">an iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_visible_lines"
              c:identifier="gtk_text_iter_forward_visible_lines"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="2767">Moves @count visible lines forward, if possible (if @count would move
past the start or end of the buffer, moves to the start or end of
the buffer).  The return value indicates whether the iterator moved
onto a dereferenceable position; if the iterator didn't move, or
moved onto the end iterator, then %FALSE is returned. If @count is 0,
the function does nothing and returns %FALSE. If @count is negative,
moves backward by 0 - @count lines.</doc>
        <source-position filename="gtktextiter.h" line="198"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="2780">whether @iter moved and is dereferenceable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2769">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="2770">number of lines to move forward</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_visible_word_end"
              c:identifier="gtk_text_iter_forward_visible_word_end"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3261">Moves forward to the next visible word end. (If @iter is currently on a
word end, moves forward to the next one after that.) Word breaks
are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="203"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3271">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3263">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_visible_word_ends"
              c:identifier="gtk_text_iter_forward_visible_word_ends"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3301">Calls gtk_text_iter_forward_visible_word_end() up to @count times.</doc>
        <source-position filename="gtktextiter.h" line="205"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3308">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3303">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3304">number of times to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_word_end"
              c:identifier="gtk_text_iter_forward_word_end">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3185">Moves forward to the next word end. (If @iter is currently on a
word end, moves forward to the next one after that.) Word breaks
are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3195">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3187">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forward_word_ends"
              c:identifier="gtk_text_iter_forward_word_ends">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3225">Calls gtk_text_iter_forward_word_end() up to @count times.</doc>
        <source-position filename="gtktextiter.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3232">%TRUE if @iter moved and is not the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3227">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3228">number of times to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_text_iter_free">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="418">Free an iterator allocated on the heap. This function
is intended for use in language bindings, and is not
especially useful for applications, because iterators can
simply be allocated on the stack.</doc>
        <source-position filename="gtktextiter.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="420">a dynamically-allocated iterator</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attributes"
              c:identifier="gtk_text_iter_get_attributes">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1714">Computes the effect of any tags applied to this spot in the
text. The @values parameter should be initialized to the default
settings you wish to use if no tags are in effect. You'd typically
obtain the defaults from gtk_text_view_get_default_attributes().

gtk_text_iter_get_attributes () will modify @values, applying the
effects of any tags present at @iter. If any tags affected @values,
the function returns %TRUE.</doc>
        <source-position filename="gtktextiter.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1728">%TRUE if @values was modified</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1716">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="values"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1717">a #GtkTextAttributes to be filled in</doc>
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer" c:identifier="gtk_text_iter_get_buffer">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="368">Returns the #GtkTextBuffer this iterator is associated with.</doc>
        <source-position filename="gtktextiter.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="374">the buffer</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="370">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_bytes_in_line"
              c:identifier="gtk_text_iter_get_bytes_in_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1663">Returns the number of bytes in the line containing @iter,
including the paragraph delimiters.</doc>
        <source-position filename="gtktextiter.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1670">number of bytes in the line</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1665">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_char" c:identifier="gtk_text_iter_get_char">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="820">Returns the Unicode character at this iterator.  (Equivalent to
operator* on a C++ iterator.)  If the element at this iterator is a
non-character element, such as an image embedded in the buffer, the
Unicode "unknown" character 0xFFFC is returned. If invoked on
the end iterator, zero is returned; zero is not a valid Unicode character.
So you can write a loop which ends when gtk_text_iter_get_char ()
returns 0.</doc>
        <source-position filename="gtktextiter.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="832">a Unicode character, or 0 if @iter is not dereferenceable</doc>
          <type name="gunichar" c:type="gunichar"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="822">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_chars_in_line"
              c:identifier="gtk_text_iter_get_chars_in_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1611">Returns the number of characters in the line containing @iter,
including the paragraph delimiters.</doc>
        <source-position filename="gtktextiter.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1618">number of characters in the line</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1613">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_child_anchor"
              c:identifier="gtk_text_iter_get_child_anchor">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="997">If the location at @iter contains a child anchor, the
anchor is returned (with no new reference count added). Otherwise,
%NULL is returned.</doc>
        <source-position filename="gtktextiter.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1005">the anchor at @iter</doc>
          <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="999">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language" c:identifier="gtk_text_iter_get_language">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1430">A convenience wrapper around gtk_text_iter_get_attributes (),
which returns the language in effect at @iter. If no tags affecting
language apply to @iter, the return value is identical to that of
gtk_get_default_language ().</doc>
        <source-position filename="gtktextiter.h" line="169"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1439">language in effect at @iter</doc>
          <type name="Pango.Language" c:type="PangoLanguage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1432">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line" c:identifier="gtk_text_iter_get_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="596">Returns the line number containing the iterator. Lines in
a #GtkTextBuffer are numbered beginning with 0 for the first
line in the buffer.</doc>
        <source-position filename="gtktextiter.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="604">a line number</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="598">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_index"
              c:identifier="gtk_text_iter_get_line_index">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="656">Returns the byte index of the iterator, counting
from the start of a newline-terminated line.
Remember that #GtkTextBuffer encodes text in
UTF-8, and that characters can require a variable
number of bytes to represent.</doc>
        <source-position filename="gtktextiter.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="666">distance from start of line, in bytes</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="658">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_offset"
              c:identifier="gtk_text_iter_get_line_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="627">Returns the character offset of the iterator,
counting from the start of a newline-terminated line.
The first character on the line has offset 0.</doc>
        <source-position filename="gtktextiter.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="635">offset from start of line</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="629">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_marks" c:identifier="gtk_text_iter_get_marks">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1027">Returns a list of all #GtkTextMark at this location. Because marks
are not iterable (they don't take up any "space" in the buffer,
they are just marks in between iterable locations), multiple marks
can exist in the same place. The returned list is not in any
meaningful order.</doc>
        <source-position filename="gtktextiter.h" line="126"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1037">list of #GtkTextMark</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="TextMark"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1029">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_offset" c:identifier="gtk_text_iter_get_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="556">Returns the character offset of an iterator.
Each character in a #GtkTextBuffer has an offset,
starting with 0 for the first character in the buffer.
Use gtk_text_buffer_get_iter_at_offset () to convert an
offset back into an iterator.</doc>
        <source-position filename="gtktextiter.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="566">a character offset</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="558">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf" c:identifier="gtk_text_iter_get_pixbuf">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="967">If the element at @iter is a pixbuf, the pixbuf is returned
(with no new reference count added). Otherwise,
%NULL is returned.</doc>
        <source-position filename="gtktextiter.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="975">the pixbuf at @iter</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="969">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_slice" c:identifier="gtk_text_iter_get_slice">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="864">Returns the text in the given range. A "slice" is an array of
characters encoded in UTF-8 format, including the Unicode "unknown"
character 0xFFFC for iterable non-character elements in the buffer,
such as images.  Because images are encoded in the slice, byte and
character offsets in the returned array will correspond to byte
offsets in the text buffer. Note that 0xFFFC can occur in normal
text as well, so it is not a reliable indicator that a pixbuf or
widget is in the buffer.</doc>
        <source-position filename="gtktextiter.h" line="113"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="878">slice of text from the buffer</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="866">iterator at start of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="867">iterator at end of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tags" c:identifier="gtk_text_iter_get_tags">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1302">Returns a list of tags that apply to @iter, in ascending order of
priority (highest-priority tags are last). The #GtkTextTag in the
list don't have a reference added, but you have to free the list
itself.</doc>
        <source-position filename="gtktextiter.h" line="147"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1311">list of #GtkTextTag</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="TextTag"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1304">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text" c:identifier="gtk_text_iter_get_text">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="893">Returns &lt;emphasis&gt;text&lt;/emphasis&gt; in the given range.  If the range
contains non-text elements such as images, the character and byte
offsets in the returned string will not correspond to character and
byte offsets in the buffer. If you want offsets to correspond, see
gtk_text_iter_get_slice ().</doc>
        <source-position filename="gtktextiter.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="904">array of characters from the buffer</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="895">iterator at start of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="896">iterator at end of a range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_toggled_tags"
              c:identifier="gtk_text_iter_get_toggled_tags">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1071">Returns a list of #GtkTextTag that are toggled on or off at this
point.  (If @toggled_on is %TRUE, the list contains tags that are
toggled on.) If a tag is toggled on at @iter, then some non-empty
range of characters following @iter has that tag applied to it.  If
a tag is toggled off, then some non-empty range following @iter
does &lt;emphasis&gt;not&lt;/emphasis&gt; have the tag applied to it.</doc>
        <source-position filename="gtktextiter.h" line="133"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1083">tags toggled at this point</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="TextTag"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1073">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="toggled_on" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1074">%TRUE to get toggled-on tags</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_visible_line_index"
              c:identifier="gtk_text_iter_get_visible_line_index">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="752">Returns the number of bytes from the start of the
line to the given @iter, not counting bytes that
are invisible due to tags with the "invisible" flag
toggled on.</doc>
        <source-position filename="gtktextiter.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="761">byte index of @iter with respect to the start of the line</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="754">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_line_offset"
              c:identifier="gtk_text_iter_get_visible_line_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="687">Returns the offset in characters from the start of the
line to the given @iter, not counting characters that
are invisible due to tags with the "invisible" flag
toggled on.</doc>
        <source-position filename="gtktextiter.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="696">offset in visible characters from the start of the line</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="689">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_slice"
              c:identifier="gtk_text_iter_get_visible_slice">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="919">Like gtk_text_iter_get_slice (), but invisible text is not included.
Invisible text is usually invisible because a #GtkTextTag with the
"invisible" attribute turned on has been applied to it.</doc>
        <source-position filename="gtktextiter.h" line="120"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="928">slice of text from the buffer</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="921">iterator at start of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="922">iterator at end of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_visible_text"
              c:identifier="gtk_text_iter_get_visible_text">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="943">Like gtk_text_iter_get_text (), but invisible text is not included.
Invisible text is usually invisible because a #GtkTextTag with the
"invisible" attribute turned on has been applied to it.</doc>
        <source-position filename="gtktextiter.h" line="122"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="952">string containing visible text in the range</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="945">iterator at start of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="946">iterator at end of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_tag" c:identifier="gtk_text_iter_has_tag">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1264">Returns %TRUE if @iter is within a range tagged with @tag.</doc>
        <source-position filename="gtktextiter.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1271">whether @iter is tagged with @tag</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1266">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1267">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="in_range" c:identifier="gtk_text_iter_in_range">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="5131">Checks whether @iter falls in the range [@start, @end).
@start and @end must be in ascending order.</doc>
        <source-position filename="gtktextiter.h" line="295"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="5140">%TRUE if @iter is in the range</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5133">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5134">start of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5135">end of range</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="inside_sentence"
              c:identifier="gtk_text_iter_inside_sentence">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3426">Determines whether @iter is inside a sentence (as opposed to in
between two sentences, e.g. after a period and before the first
letter of the next sentence).  Sentence boundaries are determined
by Pango and should be correct for nearly any language (if not, the
correct fix would be to the Pango text boundary algorithms).</doc>
        <source-position filename="gtktextiter.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3436">%TRUE if @iter is inside a sentence.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3428">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="inside_word" c:identifier="gtk_text_iter_inside_word">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3375">Determines whether @iter is inside a natural-language word (as
opposed to say inside some whitespace).  Word breaks are determined
by Pango and should be correct for nearly any language (if not, the
correct fix would be to the Pango word break algorithms).</doc>
        <source-position filename="gtktextiter.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3384">%TRUE if @iter is inside a word</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3377">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_cursor_position"
              c:identifier="gtk_text_iter_is_cursor_position">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3723">See gtk_text_iter_forward_cursor_position() or #PangoLogAttr or
pango_break() for details on what a cursor position is.</doc>
        <source-position filename="gtktextiter.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3730">%TRUE if the cursor can be placed at @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3725">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_end" c:identifier="gtk_text_iter_is_end">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1556">Returns %TRUE if @iter is the end iterator, i.e. one past the last
dereferenceable iterator in the buffer. gtk_text_iter_is_end () is
the most efficient way to check whether an iterator is the end
iterator.</doc>
        <source-position filename="gtktextiter.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1565">whether @iter is the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1558">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_start" c:identifier="gtk_text_iter_is_start">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1596">Returns %TRUE if @iter is the first iterator in the buffer, that is
if @iter has a character offset of 0.</doc>
        <source-position filename="gtktextiter.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1603">whether @iter is the first in the buffer</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1598">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="order" c:identifier="gtk_text_iter_order">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="5156">Swaps the value of @first and @second if @second comes before
@first in the buffer. That is, ensures that @first and @second are
in sequence. Most text buffer functions that take a range call this
automatically on your behalf, so there's no real reason to call it yourself
in those cases. There are some exceptions, such as gtk_text_iter_in_range(),
that expect a pre-sorted range.</doc>
        <source-position filename="gtktextiter.h" line="300"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="first" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5158">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="second" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="5159">another #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line" c:identifier="gtk_text_iter_set_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3927">Moves iterator @iter to the start of the line @line_number.  If
@line_number is negative or larger than the number of lines in the
buffer, moves @iter to the start of the last line in the buffer.</doc>
        <source-position filename="gtktextiter.h" line="238"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3929">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="line_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3930">line number (counted from 0)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_index"
              c:identifier="gtk_text_iter_set_line_index">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3779">Same as gtk_text_iter_set_line_offset(), but works with a
&lt;emphasis&gt;byte&lt;/emphasis&gt; index. The given byte index must be at
the start of a character, it can't be in the middle of a UTF-8
encoded character.</doc>
        <source-position filename="gtktextiter.h" line="242"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3781">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="byte_on_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3782">a byte index relative to the start of @iter's current line</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_line_offset"
              c:identifier="gtk_text_iter_set_line_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3738">Moves @iter within a line, to a new &lt;emphasis&gt;character&lt;/emphasis&gt;
(not byte) offset. The given character offset must be less than or
equal to the number of characters in the line; if equal, @iter
moves to the start of the next line. See
gtk_text_iter_set_line_index() if you have a byte index rather than
a character offset.</doc>
        <source-position filename="gtktextiter.h" line="240"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3740">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="char_on_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3741">a character offset relative to the start of @iter's current line</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_offset" c:identifier="gtk_text_iter_set_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3964">Sets @iter to point to @char_offset. @char_offset counts from the start
of the entire text buffer, starting with 0.</doc>
        <source-position filename="gtktextiter.h" line="236"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3966">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="char_offset" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3967">a character number</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_line_index"
              c:identifier="gtk_text_iter_set_visible_line_index">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3867">Like gtk_text_iter_set_line_index(), but the index is in visible
bytes, i.e. text with a tag making it invisible is not counted
in the index.</doc>
        <source-position filename="gtktextiter.h" line="249"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3869">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="byte_on_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3870">a byte index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_line_offset"
              c:identifier="gtk_text_iter_set_visible_line_offset">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3826">Like gtk_text_iter_set_line_offset(), but the offset is in visible
characters, i.e. text with a tag making it invisible is not
counted in the offset.</doc>
        <source-position filename="gtktextiter.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3828">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </instance-parameter>
          <parameter name="char_on_line" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3829">a character offset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="starts_line" c:identifier="gtk_text_iter_starts_line">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1458">Returns %TRUE if @iter begins a paragraph,
i.e. if gtk_text_iter_get_line_offset () would return 0.
However this function is potentially more efficient than
gtk_text_iter_get_line_offset () because it doesn't have to compute
the offset, it just has to see whether it's 0.</doc>
        <source-position filename="gtktextiter.h" line="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1468">whether @iter begins a line</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1460">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="starts_sentence"
              c:identifier="gtk_text_iter_starts_sentence">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3392">Determines whether @iter begins a sentence.  Sentence boundaries are
determined by Pango and should be correct for nearly any language
(if not, the correct fix would be to the Pango text boundary
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3401">%TRUE if @iter is at the start of a sentence.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3394">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="starts_word" c:identifier="gtk_text_iter_starts_word">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="3341">Determines whether @iter begins a natural-language word.  Word
breaks are determined by Pango and should be correct for nearly any
language (if not, the correct fix would be to the Pango word break
algorithms).</doc>
        <source-position filename="gtktextiter.h" line="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="3350">%TRUE if @iter is at the start of a word</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="3343">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="toggles_tag" c:identifier="gtk_text_iter_toggles_tag">
        <doc xml:space="preserve"
             filename="gtktextiter.c"
             line="1222">This is equivalent to (gtk_text_iter_begins_tag () ||
gtk_text_iter_ends_tag ()), i.e. it tells you whether a range with
@tag applied to it begins &lt;emphasis&gt;or&lt;/emphasis&gt; ends at @iter.</doc>
        <source-position filename="gtktextiter.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextiter.c"
               line="1231">whether @tag is toggled on or off at @iter</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1224">an iterator</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </instance-parameter>
          <parameter name="tag"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextiter.c"
                 line="1225">a #GtkTextTag, or %NULL</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="TextLayout"
           c:symbol-prefix="text_layout"
           c:type="GtkTextLayout"
           parent="GObject.Object"
           glib:type-name="GtkTextLayout"
           glib:get-type="gtk_text_layout_get_type"
           glib:type-struct="TextLayoutClass">
      <source-position filename="gtktextlayout.h" line="221"/>
      <constructor name="new" c:identifier="gtk_text_layout_new">
        <source-position filename="gtktextlayout.h" line="272"/>
        <return-value transfer-ownership="full">
          <type name="TextLayout" c:type="GtkTextLayout*"/>
        </return-value>
      </constructor>
      <virtual-method name="allocate_child">
        <source-position filename="gtktextlayout.h" line="208"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="changed" invoker="changed">
        <source-position filename="gtktextlayout.h" line="190"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="old_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="new_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="free_line_data" invoker="free_line_data">
        <source-position filename="gtktextlayout.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="line_data" transfer-ownership="none">
            <type name="TextLineData" c:type="GtkTextLineData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_log_attrs">
        <source-position filename="gtktextlayout.h" line="197"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <type name="Pango.LogAttr" c:type="PangoLogAttr**"/>
          </parameter>
          <parameter name="n_attrs" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="invalidate" invoker="invalidate">
        <source-position filename="gtktextlayout.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="invalidate_cursors" invoker="invalidate_cursors">
        <source-position filename="gtktextlayout.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="invalidated">
        <source-position filename="gtktextlayout.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="wrap" invoker="wrap" introspectable="0">
        <source-position filename="gtktextlayout.h" line="194"/>
        <return-value>
          <type name="TextLineData" c:type="GtkTextLineData*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="line_data" transfer-ownership="none">
            <type name="TextLineData" c:type="GtkTextLineData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="changed" c:identifier="gtk_text_layout_changed">
        <source-position filename="gtktextlayout.h" line="366"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="old_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="new_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="clamp_iter_to_vrange"
              c:identifier="gtk_text_layout_clamp_iter_to_vrange">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3097">If the iterator is not fully in the range @top &lt;= y &lt; @bottom,
then, if possible, move it the minimum distance so that the
iterator in this range.</doc>
        <source-position filename="gtktextlayout.h" line="391"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextlayout.c"
               line="3108">%TRUE if the iterator was moved, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3099">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3100">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3101">the top of the range</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bottom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3102">the bottom the range</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="cursors_changed"
              c:identifier="gtk_text_layout_cursors_changed">
        <source-position filename="gtktextlayout.h" line="370"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="old_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="new_height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="default_style_changed"
              c:identifier="gtk_text_layout_default_style_changed">
        <source-position filename="gtktextlayout.h" line="287"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="draw"
              c:identifier="gtk_text_layout_draw"
              introspectable="0">
        <source-position filename="gtktextdisplay.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="drawable" transfer-ownership="none">
            <type name="Gdk.Drawable" c:type="GdkDrawable*"/>
          </parameter>
          <parameter name="cursor_gc" transfer-ownership="none">
            <type name="Gdk.GC" c:type="GdkGC*"/>
          </parameter>
          <parameter name="x_offset" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y_offset" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="widgets" transfer-ownership="none">
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="free_line_data"
              c:identifier="gtk_text_layout_free_line_data">
        <source-position filename="gtktextlayout.h" line="344"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="line_data" transfer-ownership="none">
            <type name="TextLineData" c:type="GtkTextLineData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free_line_display"
              c:identifier="gtk_text_layout_free_line_display">
        <source-position filename="gtktextlayout.h" line="322"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="TextLineDisplay" c:type="GtkTextLineDisplay*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_text_layout_get_buffer"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="477">Gets the text buffer used by the layout. See
gtk_text_layout_set_buffer().</doc>
        <source-position filename="gtktextlayout.h" line="275"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktextlayout.c"
               line="484">the text buffer used by the layout.</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="479">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor_locations"
              c:identifier="gtk_text_layout_get_cursor_locations">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="2709">Given an iterator within a text layout, determine the positions of the
strong and weak cursors if the insertion point is at that
iterator. The position of each cursor is stored as a zero-width
rectangle. The strong cursor location is the location where
characters of the directionality equal to the base direction of the
paragraph are inserted.  The weak cursor location is the location
where characters of the directionality opposite to the base
direction of the paragraph are inserted.</doc>
        <source-position filename="gtktextlayout.h" line="385"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2711">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2712">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="strong_pos"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2713">location to store the strong cursor position (may be %NULL)</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
          <parameter name="weak_pos"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2714">location to store the weak cursor position (may be %NULL)</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_cursor_visible"
              c:identifier="gtk_text_layout_get_cursor_visible">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="545">Returns whether the insertion cursor will be shown.</doc>
        <source-position filename="gtktextlayout.h" line="298"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextlayout.c"
               line="551">if %FALSE, the insertion cursor will not be
    shown, even if the text is editable.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="547">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_at_line"
              c:identifier="gtk_text_layout_get_iter_at_line">
        <source-position filename="gtktextlayout.h" line="413"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="byte_offset" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_pixel"
              c:identifier="gtk_text_layout_get_iter_at_pixel">
        <source-position filename="gtktextlayout.h" line="329"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_position"
              c:identifier="gtk_text_layout_get_iter_at_position">
        <source-position filename="gtktextlayout.h" line="333"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="trailing" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_location"
              c:identifier="gtk_text_layout_get_iter_location">
        <source-position filename="gtktextlayout.h" line="374"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_at_y"
              c:identifier="gtk_text_layout_get_line_at_y">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="2623">Get the iter at the beginning of the line which is displayed
at the given y.</doc>
        <source-position filename="gtktextlayout.h" line="325"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2625">a #GtkLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="target_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2626">the iterator in which the result is stored</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2627">the y positition</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="line_top" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2628">location to store the y coordinate of the
           top of the line. (Can by %NULL)</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_display"
              c:identifier="gtk_text_layout_get_line_display"
              introspectable="0">
        <source-position filename="gtktextlayout.h" line="319"/>
        <return-value>
          <type name="TextLineDisplay" c:type="GtkTextLineDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="size_only" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_yrange"
              c:identifier="gtk_text_layout_get_line_yrange">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="2839">Find the range of y coordinates for the paragraph containing
the given iter.</doc>
        <source-position filename="gtktextlayout.h" line="377"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2841">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2842">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="2843">location to store the top of the paragraph in pixels,
         or %NULL.
@height  location to store the height of the paragraph in pixels,
         or %NULL.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_lines" c:identifier="gtk_text_layout_get_lines">
        <source-position filename="gtktextlayout.h" line="310"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="TextLine"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="top_y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bottom_y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="first_line_y" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gtk_text_layout_get_size">
        <source-position filename="gtktextlayout.h" line="307"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="invalidate" c:identifier="gtk_text_layout_invalidate">
        <source-position filename="gtktextlayout.h" line="338"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="invalidate_cursors"
              c:identifier="gtk_text_layout_invalidate_cursors">
        <source-position filename="gtktextlayout.h" line="341"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="start" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="end" transfer-ownership="none">
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="gtk_text_layout_is_valid">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="974">Check if there are any invalid regions in a #GtkTextLayout's buffer</doc>
        <source-position filename="gtktextlayout.h" line="348"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextlayout.c"
               line="980">%TRUE if any invalid regions were found</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="976">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iter_starts_line"
              c:identifier="gtk_text_layout_iter_starts_line">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3400">Tests whether an iterator is at the start of a display line.</doc>
        <source-position filename="gtktextlayout.h" line="410"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3402">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3403">iterator to test</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_iter_to_line_end"
              c:identifier="gtk_text_layout_move_iter_to_line_end">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3339">Move to the beginning or end of a display line.</doc>
        <source-position filename="gtktextlayout.h" line="396"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3341">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3342">if negative, move to beginning of line, otherwise
               move to end of line.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_iter_to_next_line"
              c:identifier="gtk_text_layout_move_iter_to_next_line">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3262">Move the iterator to the beginning of the next line. The
lines of a wrapped paragraph are treated as distinct for
this operation.</doc>
        <source-position filename="gtktextlayout.h" line="401"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3264">a #GtkLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3265">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_iter_to_previous_line"
              c:identifier="gtk_text_layout_move_iter_to_previous_line">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3143">Move the iterator to the beginning of the previous line. The lines
of a wrapped paragraph are treated as distinct for this operation.</doc>
        <source-position filename="gtktextlayout.h" line="399"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3145">a #GtkLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3146">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_iter_to_x"
              c:identifier="gtk_text_layout_move_iter_to_x">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3460">Keeping the iterator on the same line of the layout, move it to the
specified X coordinate. The lines of a wrapped paragraph are
treated as distinct for this operation.</doc>
        <source-position filename="gtktextlayout.h" line="403"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3462">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3463">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3464">X coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_iter_visually"
              c:identifier="gtk_text_layout_move_iter_visually">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="3519">Move the iterator a given number of characters visually, treating
it as the strong cursor position. If @count is positive, then the
new strong cursor position will be @count positions to the right of
the old cursor position. If @count is negative then the new strong
cursor position will be @count positions to the left of the old
cursor position.

In the presence of bidirection text, the correspondence
between logical and visual order will depend on the direction
of the current run, and there may be jumps when the cursor
is moved off of the end of a run.</doc>
        <source-position filename="gtktextlayout.h" line="406"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3521">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3522">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="3523">number of characters to move (negative moves left, positive moves right)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer" c:identifier="gtk_text_layout_set_buffer">
        <source-position filename="gtktextlayout.h" line="273"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contexts" c:identifier="gtk_text_layout_set_contexts">
        <source-position filename="gtktextlayout.h" line="278"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="ltr_context" transfer-ownership="none">
            <type name="Pango.Context" c:type="PangoContext*"/>
          </parameter>
          <parameter name="rtl_context" transfer-ownership="none">
            <type name="Pango.Context" c:type="PangoContext*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_direction"
              c:identifier="gtk_text_layout_set_cursor_direction">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="434">Sets which text directions (left-to-right and/or right-to-left) for
which cursors will be drawn for the insertion point. The visual
point at which new text is inserted depends on whether the new
text is right-to-left or left-to-right, so it may be desired to
make the drawn position of the cursor depend on the keyboard state.</doc>
        <source-position filename="gtktextlayout.h" line="281"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="436">the new direction(s) for which to draw cursors.
            %GTK_TEXT_DIR_NONE means draw cursors for both
            left-to-right insertion and right-to-left insertion.
            (The two cursors will be visually distinguished.)</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_visible"
              c:identifier="gtk_text_layout_set_cursor_visible">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="510">Sets whether the insertion cursor should be shown. Generally,
widgets using #GtkTextLayout will hide the cursor when the
widget does not have the input focus.</doc>
        <source-position filename="gtktextlayout.h" line="296"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="512">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="cursor_visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="513">If %FALSE, then the insertion cursor will not
  be shown, even if the text is editable.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_style"
              c:identifier="gtk_text_layout_set_default_style">
        <source-position filename="gtktextlayout.h" line="276"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="values" transfer-ownership="none">
            <type name="TextAttributes" c:type="GtkTextAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keyboard_direction"
              c:identifier="gtk_text_layout_set_keyboard_direction">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="458">Sets the keyboard direction; this is used as for the bidirectional
base direction for the line with the cursor if the line contains
only neutral characters.</doc>
        <source-position filename="gtktextlayout.h" line="285"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="keyboard_dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="460">the current direction of the keyboard.</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_overwrite_mode"
              c:identifier="gtk_text_layout_set_overwrite_mode">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="415">Sets overwrite mode</doc>
        <source-position filename="gtktextlayout.h" line="283"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="417">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="overwrite" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="418">overwrite mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_preedit_string"
              c:identifier="gtk_text_layout_set_preedit_string">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="560">Set the preedit string and attributes. The preedit string is a
string showing text that is currently being edited and not
yet committed into the buffer.</doc>
        <source-position filename="gtktextlayout.h" line="291"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="562">a #PangoLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="preedit_string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="563">a string to display at the insertion point</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="preedit_attrs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="564">a #PangoAttrList of attributes that apply to @preedit_string</doc>
            <type name="Pango.AttrList" c:type="PangoAttrList*"/>
          </parameter>
          <parameter name="cursor_pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="565">position of cursor within preedit string in chars</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screen_width"
              c:identifier="gtk_text_layout_set_screen_width">
        <source-position filename="gtktextlayout.h" line="289"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="spew" c:identifier="gtk_text_layout_spew">
        <source-position filename="gtktextlayout.h" line="435"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="validate" c:identifier="gtk_text_layout_validate">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="1121">Validate regions of a #GtkTextLayout. The ::changed signal will
be emitted for each region validated.</doc>
        <source-position filename="gtktextlayout.h" line="353"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="max_pixels" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="1124">the maximum number of pixels to validate. (No more
             than one paragraph beyond this limit will be validated)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="validate_yrange"
              c:identifier="gtk_text_layout_validate_yrange">
        <doc xml:space="preserve"
             filename="gtktextlayout.c"
             line="999">Ensure that a region of a #GtkTextLayout is valid. The ::changed
signal will be emitted if any lines are validated.</doc>
        <source-position filename="gtktextlayout.h" line="349"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="1001">a #GtkTextLayout</doc>
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="anchor_line" transfer-ownership="none">
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="y0_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="1004">offset from the top of the line pointed to by @anchor at
      which to begin validation. (The offset here is in pixels
      after validation.)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y1_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextlayout.c"
                 line="1007">offset from the top of the line pointed to by @anchor at
      which to end validation. (The offset here is in pixels
      after validation.)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="wrap"
              c:identifier="gtk_text_layout_wrap"
              introspectable="0">
        <source-position filename="gtktextlayout.h" line="363"/>
        <return-value>
          <type name="TextLineData" c:type="GtkTextLineData*"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
          <parameter name="line" transfer-ownership="none">
            <type name="TextLine" c:type="GtkTextLine*"/>
          </parameter>
          <parameter name="line_data" transfer-ownership="none">
            <type name="TextLineData" c:type="GtkTextLineData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="wrap_loop_end"
              c:identifier="gtk_text_layout_wrap_loop_end">
        <source-position filename="gtktextlayout.h" line="317"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="wrap_loop_start"
              c:identifier="gtk_text_layout_wrap_loop_start">
        <source-position filename="gtktextlayout.h" line="316"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="layout" transfer-ownership="none">
            <type name="TextLayout" c:type="GtkTextLayout*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="screen_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="buffer">
        <type name="TextBuffer" c:type="GtkTextBuffer*"/>
      </field>
      <field name="default_style">
        <type name="TextAttributes" c:type="GtkTextAttributes*"/>
      </field>
      <field name="ltr_context">
        <type name="Pango.Context" c:type="PangoContext*"/>
      </field>
      <field name="rtl_context">
        <type name="Pango.Context" c:type="PangoContext*"/>
      </field>
      <field name="one_style_cache">
        <type name="TextAttributes" c:type="GtkTextAttributes*"/>
      </field>
      <field name="one_display_cache">
        <type name="TextLineDisplay" c:type="GtkTextLineDisplay*"/>
      </field>
      <field name="wrap_loop_count">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="cursor_visible" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cursor_direction" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="keyboard_direction" bits="2">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="preedit_string">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="preedit_attrs">
        <type name="Pango.AttrList" c:type="PangoAttrList*"/>
      </field>
      <field name="preedit_len">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="preedit_cursor">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="overwrite_mode" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="allocate-child" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Object"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="invalidated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TextLayoutClass"
            c:type="GtkTextLayoutClass"
            glib:is-gtype-struct-for="TextLayout">
      <source-position filename="gtktextlayout.h" line="221"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="invalidated">
        <callback name="invalidated">
          <source-position filename="gtktextlayout.h" line="186"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="gtktextlayout.h" line="190"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="old_height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="new_height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="wrap" introspectable="0">
        <callback name="wrap" introspectable="0">
          <source-position filename="gtktextlayout.h" line="194"/>
          <return-value>
            <type name="TextLineData" c:type="GtkTextLineData*"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="TextLine" c:type="GtkTextLine*"/>
            </parameter>
            <parameter name="line_data" transfer-ownership="none">
              <type name="TextLineData" c:type="GtkTextLineData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_log_attrs">
        <callback name="get_log_attrs">
          <source-position filename="gtktextlayout.h" line="197"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="TextLine" c:type="GtkTextLine*"/>
            </parameter>
            <parameter name="attrs" transfer-ownership="none">
              <type name="Pango.LogAttr" c:type="PangoLogAttr**"/>
            </parameter>
            <parameter name="n_attrs" transfer-ownership="none">
              <type name="gint" c:type="gint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="invalidate">
        <callback name="invalidate">
          <source-position filename="gtktextlayout.h" line="201"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="free_line_data">
        <callback name="free_line_data">
          <source-position filename="gtktextlayout.h" line="204"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="line" transfer-ownership="none">
              <type name="TextLine" c:type="GtkTextLine*"/>
            </parameter>
            <parameter name="line_data" transfer-ownership="none">
              <type name="TextLineData" c:type="GtkTextLineData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="allocate_child">
        <callback name="allocate_child">
          <source-position filename="gtktextlayout.h" line="208"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="invalidate_cursors">
        <callback name="invalidate_cursors">
          <source-position filename="gtktextlayout.h" line="213"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="layout" transfer-ownership="none">
              <type name="TextLayout" c:type="GtkTextLayout*"/>
            </parameter>
            <parameter name="start" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
            <parameter name="end" transfer-ownership="none">
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktextlayout.h" line="218"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktextlayout.h" line="219"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktextlayout.h" line="220"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TextLine" c:type="GtkTextLine" disguised="1" opaque="1">
      <source-position filename="gtktextlayout.h" line="99"/>
    </record>
    <record name="TextLineData"
            c:type="GtkTextLineData"
            disguised="1"
            opaque="1">
      <source-position filename="gtktextlayout.h" line="100"/>
    </record>
    <record name="TextLineDisplay" c:type="GtkTextLineDisplay">
      <source-position filename="gtktextlayout.h" line="266"/>
      <field name="layout" writable="1">
        <type name="Pango.Layout" c:type="PangoLayout*"/>
      </field>
      <field name="cursors" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="shaped_objects" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="direction" writable="1">
        <type name="TextDirection" c:type="GtkTextDirection"/>
      </field>
      <field name="width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="total_width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="x_offset" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="left_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="right_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="top_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="bottom_margin" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="insert_index" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="size_only" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="line" writable="1">
        <type name="TextLine" c:type="GtkTextLine*"/>
      </field>
      <field name="pg_bg_color" writable="1">
        <type name="Gdk.Color" c:type="GdkColor*"/>
      </field>
      <field name="block_cursor" writable="1">
        <type name="Gdk.Rectangle" c:type="GdkRectangle"/>
      </field>
      <field name="cursors_invalid" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_block_cursor" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cursor_at_line_end" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="TextLogAttrCache"
            c:type="GtkTextLogAttrCache"
            disguised="1"
            opaque="1">
      <source-position filename="gtktextbuffer.h" line="63"/>
    </record>
    <class name="TextMark"
           c:symbol-prefix="text_mark"
           c:type="GtkTextMark"
           parent="GObject.Object"
           glib:type-name="GtkTextMark"
           glib:get-type="gtk_text_mark_get_type"
           glib:type-struct="TextMarkClass">
      <source-position filename="gtktextmark.h" line="87"/>
      <constructor name="new" c:identifier="gtk_text_mark_new" version="2.12">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="189">Creates a text mark. Add it to a buffer using gtk_text_buffer_add_mark().
If @name is %NULL, the mark is anonymous; otherwise, the mark can be
retrieved by name using gtk_text_buffer_get_mark(). If a mark has left
gravity, and text is inserted at the mark's current location, the mark
will be moved to the left of the newly-inserted text. If the mark has
right gravity (@left_gravity = %FALSE), the mark will end up on the
right of newly-inserted text. The standard left-to-right cursor is a
mark with right gravity (when you type, the cursor stays on the right
side of the text you're typing).</doc>
        <source-position filename="gtktextmark.h" line="95"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="204">new #GtkTextMark</doc>
          <type name="TextMark" c:type="GtkTextMark*"/>
        </return-value>
        <parameters>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="191">mark name or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="left_gravity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="192">whether the mark should have left gravity</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_buffer" c:identifier="gtk_text_mark_get_buffer">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="280">Gets the buffer this mark is located inside,
or %NULL if the mark is deleted.</doc>
        <source-position filename="gtktextmark.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="287">the mark's #GtkTextBuffer</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="282">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_deleted" c:identifier="gtk_text_mark_get_deleted">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="255">Returns %TRUE if the mark has been removed from its buffer
with gtk_text_buffer_delete_mark(). See gtk_text_buffer_add_mark()
for a way to add it to a buffer again.</doc>
        <source-position filename="gtktextmark.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="263">whether the mark is deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="257">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left_gravity"
              c:identifier="gtk_text_mark_get_left_gravity"
              glib:get-property="left-gravity">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="304">Determines whether the mark has left gravity.</doc>
        <source-position filename="gtktextmark.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="310">%TRUE if the mark has left gravity, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="306">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gtk_text_mark_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="237">Returns the mark name; returns NULL for anonymous marks.</doc>
        <source-position filename="gtktextmark.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="243">mark name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="239">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible" c:identifier="gtk_text_mark_get_visible">
        <doc xml:space="preserve"
             filename="gtktextmark.c"
             line="218">Returns %TRUE if the mark is visible (i.e. a cursor is displayed
for it).</doc>
        <source-position filename="gtktextmark.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextmark.c"
               line="225">%TRUE if visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextmark.c"
                 line="220">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_visible" c:identifier="gtk_text_mark_set_visible">
        <doc xml:space="preserve"
             filename="gtktextbtree.c"
             line="3005">Sets the visibility of @mark; the insertion point is normally
visible, i.e. you can see it as a vertical bar. Also, the text
widget uses a visible mark to indicate where a drop will occur when
dragging-and-dropping text. Most other marks are not visible.
Marks are not visible by default.</doc>
        <source-position filename="gtktextmark.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbtree.c"
                 line="3007">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextbtree.c"
                 line="3008">visibility of mark</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="left-gravity"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_left_gravity"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="segment">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </class>
    <record name="TextMarkClass"
            c:type="GtkTextMarkClass"
            glib:is-gtype-struct-for="TextMark">
      <source-position filename="gtktextmark.h" line="87"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktextmark.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktextmark.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktextmark.h" line="85"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktextmark.h" line="86"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TextPendingScroll"
            c:type="GtkTextPendingScroll"
            disguised="1"
            opaque="1">
      <source-position filename="gtktextview.h" line="66"/>
    </record>
    <bitfield name="TextSearchFlags"
              glib:type-name="GtkTextSearchFlags"
              glib:get-type="gtk_text_search_flags_get_type"
              c:type="GtkTextSearchFlags">
      <member name="visible_only"
              value="1"
              c:identifier="GTK_TEXT_SEARCH_VISIBLE_ONLY"
              glib:nick="visible-only"
              glib:name="GTK_TEXT_SEARCH_VISIBLE_ONLY">
      </member>
      <member name="text_only"
              value="2"
              c:identifier="GTK_TEXT_SEARCH_TEXT_ONLY"
              glib:nick="text-only"
              glib:name="GTK_TEXT_SEARCH_TEXT_ONLY">
      </member>
    </bitfield>
    <class name="TextTag"
           c:symbol-prefix="text_tag"
           c:type="GtkTextTag"
           parent="GObject.Object"
           glib:type-name="GtkTextTag"
           glib:get-type="gtk_text_tag_get_type"
           glib:type-struct="TextTagClass">
      <source-position filename="gtktexttag.h" line="154"/>
      <constructor name="new" c:identifier="gtk_text_tag_new">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="708">Creates a #GtkTextTag. Configure the tag using object arguments,
i.e. using g_object_set().</doc>
        <source-position filename="gtktexttag.h" line="157"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="715">a new #GtkTextTag</doc>
          <type name="TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="710">tag name, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="event" invoker="event">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1855">Emits the "event" signal on the #GtkTextTag.</doc>
        <source-position filename="gtktexttag.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="1864">result of signal emission (whether the event was handled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1857">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </instance-parameter>
          <parameter name="event_object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1858">object that received the event, such as a widget</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1859">the event</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1860">location where the event was received</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="event" c:identifier="gtk_text_tag_event">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1855">Emits the "event" signal on the #GtkTextTag.</doc>
        <source-position filename="gtktexttag.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="1864">result of signal emission (whether the event was handled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1857">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </instance-parameter>
          <parameter name="event_object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1858">object that received the event, such as a widget</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1859">the event</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1860">location where the event was received</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_priority" c:identifier="gtk_text_tag_get_priority">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1788">Get the tag priority.</doc>
        <source-position filename="gtktexttag.h" line="158"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="1794">The tag's priority.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1790">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_priority" c:identifier="gtk_text_tag_set_priority">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="1804">Sets the priority of a #GtkTextTag. Valid priorities are
start at 0 and go to one less than gtk_text_tag_table_get_size().
Each tag in a table has a unique priority; setting the priority
of one tag shifts the priorities of all the other tags in the
table to maintain a unique priority for each tag. Higher priority
tags "win" if two tags both set the same text attribute. When adding
a tag to a tag table, it will be assigned the highest priority in
the table by default; so normally the precedence of a set of tags
is the order in which they were added to the table, or created with
gtk_text_buffer_create_tag(), which adds the tag to the buffer's table
automatically.</doc>
        <source-position filename="gtktexttag.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1806">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </instance-parameter>
          <parameter name="priority" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1807">the new priority</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="accumulative-margin"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="540">Whether the margins accumulate or override each other.

When set to %TRUE the margins of this tag are added to the margins
of any other non-accumulative margins present. When set to %FALSE
the margins override one another (the default).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="background-full-height"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background-full-height-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background-gdk" writable="1" transfer-ownership="none">
        <type name="Gdk.Color"/>
      </property>
      <property name="background-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="background-stipple"
                writable="1"
                transfer-ownership="none">
        <type name="Gdk.Pixmap"/>
      </property>
      <property name="background-stipple-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="direction"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_TEXT_DIR_NONE">
        <type name="TextDirection"/>
      </property>
      <property name="editable"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="editable-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="family"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="family-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="font"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="256">Font description as string, e.g. \"Sans Italic 12\".

Note that the initial value of this property depends on
the internals of #PangoFontDescription.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="font-desc" writable="1" transfer-ownership="none">
        <type name="Pango.FontDescription"/>
      </property>
      <property name="foreground"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="foreground-gdk" writable="1" transfer-ownership="none">
        <type name="Gdk.Color"/>
      </property>
      <property name="foreground-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="foreground-stipple"
                writable="1"
                transfer-ownership="none">
        <type name="Gdk.Pixmap"/>
      </property>
      <property name="foreground-stipple-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="indent"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="indent-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="invisible"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="490">Whether this text is hidden.

Note that there may still be problems with the support for invisible
text, in particular when navigating programmatically inside a buffer
containing invisible segments.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="invisible-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="justification"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_JUSTIFY_LEFT">
        <type name="Justification"/>
      </property>
      <property name="justification-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="language"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="365">The language this text is in, as an ISO code. Pango can use this as a
hint when rendering the text. If not set, an appropriate default will be
used.

Note that the initial value of this property depends on the current
locale, see also gtk_get_default_language().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="language-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="left-margin"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="left-margin-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="paragraph-background"
                version="2.8"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="509">The paragraph background color as a string.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="paragraph-background-gdk"
                version="2.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="524">The paragraph background color as a as a (possibly unallocated)
#GdkColor.</doc>
        <type name="Gdk.Color"/>
      </property>
      <property name="paragraph-background-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pixels-above-lines"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixels-above-lines-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pixels-below-lines"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixels-below-lines-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pixels-inside-wrap"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixels-inside-wrap-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="right-margin"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="right-margin-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rise"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rise-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scale"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="scale-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="size"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="size-points"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="size-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stretch"
                writable="1"
                transfer-ownership="none"
                default-value="PANGO_STRETCH_NORMAL">
        <type name="Pango.Stretch"/>
      </property>
      <property name="stretch-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="strikethrough"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="strikethrough-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="style"
                writable="1"
                transfer-ownership="none"
                default-value="PANGO_STYLE_NORMAL">
        <type name="Pango.Style"/>
      </property>
      <property name="style-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="tabs" writable="1" transfer-ownership="none">
        <type name="Pango.TabArray"/>
      </property>
      <property name="tabs-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="underline"
                writable="1"
                transfer-ownership="none"
                default-value="PANGO_UNDERLINE_NONE">
        <type name="Pango.Underline"/>
      </property>
      <property name="underline-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="variant"
                writable="1"
                transfer-ownership="none"
                default-value="PANGO_VARIANT_NORMAL">
        <type name="Pango.Variant"/>
      </property>
      <property name="variant-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="weight"
                writable="1"
                transfer-ownership="none"
                default-value="400">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="weight-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="wrap-mode"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_WRAP_NONE">
        <type name="WrapMode"/>
      </property>
      <property name="wrap-mode-set"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="table">
        <type name="TextTagTable" c:type="GtkTextTagTable*"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="priority">
        <type name="gint" c:type="int"/>
      </field>
      <field name="values">
        <type name="TextAttributes" c:type="GtkTextAttributes*"/>
      </field>
      <field name="bg_color_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="bg_stipple_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="fg_color_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="scale_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="fg_stipple_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="justification_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="left_margin_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="indent_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="rise_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="strikethrough_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="right_margin_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pixels_above_lines_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pixels_below_lines_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pixels_inside_wrap_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="tabs_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="underline_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="wrap_mode_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="bg_full_height_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="invisible_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="editable_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="language_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pg_bg_color_set" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="accumulative_margin" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pad1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="event" when="last">
        <doc xml:space="preserve"
             filename="gtktexttag.c"
             line="675">The ::event signal is emitted when an event occurs on a region of the
buffer marked with this tag.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttag.c"
               line="685">%TRUE to stop other handlers from being invoked for the
event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="678">the object the event was fired from (typically a #GtkTextView)</doc>
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="679">the event which triggered the signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="680">a #GtkTextIter pointing at the location the event occured</doc>
            <type name="TextIter"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TextTagClass"
            c:type="GtkTextTagClass"
            glib:is-gtype-struct-for="TextTag">
      <source-position filename="gtktexttag.h" line="154"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="event">
        <callback name="event">
          <source-position filename="gtktexttag.h" line="144"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttag.c"
                 line="1864">result of signal emission (whether the event was handled)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tag" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktexttag.c"
                   line="1857">a #GtkTextTag</doc>
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
            <parameter name="event_object" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktexttag.c"
                   line="1858">object that received the event, such as a widget</doc>
              <type name="GObject.Object" c:type="GObject*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktexttag.c"
                   line="1859">the event</doc>
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktexttag.c"
                   line="1860">location where the event was received</doc>
              <type name="TextIter" c:type="const GtkTextIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktexttag.h" line="150"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktexttag.h" line="151"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktexttag.h" line="152"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktexttag.h" line="153"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="TextTagTable"
           c:symbol-prefix="text_tag_table"
           c:type="GtkTextTagTable"
           parent="GObject.Object"
           glib:type-name="GtkTextTagTable"
           glib:get-type="gtk_text_tag_table_get_type"
           glib:type-struct="TextTagTableClass">
      <doc xml:space="preserve"
           filename="gtktexttagtable.c"
           line="37">You may wish to begin by reading the &lt;link linkend="TextWidget"&gt;text widget
conceptual overview&lt;/link&gt; which gives an overview of all the objects and data
types related to the text widget and how they work together.

&lt;refsect2 id="GtkTextTagTable-BUILDER-UI"&gt;
&lt;title&gt;GtkTextTagTables as GtkBuildable&lt;/title&gt;
&lt;para&gt;
The GtkTextTagTable implementation of the GtkBuildable interface
supports adding tags by specifying "tag" as the "type"
attribute of a &amp;lt;child&amp;gt; element.
&lt;/para&gt;
&lt;example&gt;
&lt;title&gt;A UI definition fragment specifying tags&lt;/title&gt;
&lt;programlisting&gt;&lt;![CDATA[
&lt;object class="GtkTextTagTable"&gt;
 &lt;child type="tag"&gt;
   &lt;object class="GtkTextTag"/&gt;
 &lt;/child&gt;
&lt;/object&gt;
]]&gt;&lt;/programlisting&gt;
&lt;/example&gt;
&lt;/refsect2&gt;</doc>
      <source-position filename="gtktexttagtable.h" line="73"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_text_tag_table_new">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="150">Creates a new #GtkTextTagTable. The table contains no tags by
default.</doc>
        <source-position filename="gtktexttagtable.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktexttagtable.c"
               line="156">a new #GtkTextTagTable</doc>
          <type name="TextTagTable" c:type="GtkTextTagTable*"/>
        </return-value>
      </constructor>
      <virtual-method name="tag_added">
        <source-position filename="gtktexttagtable.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="tag_changed">
        <source-position filename="gtktexttagtable.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
          <parameter name="size_changed" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="tag_removed">
        <source-position filename="gtktexttagtable.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add" c:identifier="gtk_text_tag_table_add">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="254">Add a tag to the table. The tag is assigned the highest priority
in the table.

@tag must not be in a tag table already, and may not have
the same name as an already-added tag.</doc>
        <source-position filename="gtktexttagtable.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="256">a #GtkTextTagTable</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="257">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="gtk_text_tag_table_foreach">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="400">Calls @func on each tag in @table, with user data @data.
Note that the table may not be modified while iterating
over it (you can't add/remove tags).</doc>
        <source-position filename="gtktexttagtable.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="402">a #GtkTextTagTable</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="403">a function to call on each tag</doc>
            <type name="TextTagTableForeach" c:type="GtkTextTagTableForeach"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="404">user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gtk_text_tag_table_get_size">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="427">Returns the size of the table (number of tags)</doc>
        <source-position filename="gtktexttagtable.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttagtable.c"
               line="433">number of tags in @table</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="429">a #GtkTextTagTable</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup" c:identifier="gtk_text_tag_table_lookup">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="304">Look up a named tag.</doc>
        <source-position filename="gtktexttagtable.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktexttagtable.c"
               line="311">The tag, or %NULL if none by that name is in the table.</doc>
          <type name="TextTag" c:type="GtkTextTag*"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="306">a #GtkTextTagTable</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="307">name of a tag</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_text_tag_table_remove">
        <doc xml:space="preserve"
             filename="gtktexttagtable.c"
             line="323">Remove a tag from the table. This will remove the table's
reference to the tag, so be careful - the tag will end
up destroyed if you don't have a reference to it.</doc>
        <source-position filename="gtktexttagtable.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="table" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="325">a #GtkTextTagTable</doc>
            <type name="TextTagTable" c:type="GtkTextTagTable*"/>
          </instance-parameter>
          <parameter name="tag" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktexttagtable.c"
                 line="326">a #GtkTextTag</doc>
            <type name="TextTag" c:type="GtkTextTag*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="hash">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="anonymous">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="anon_count">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="buffers">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <glib:signal name="tag-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TextTag"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="tag-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TextTag"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="tag-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TextTag"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TextTagTableClass"
            c:type="GtkTextTagTableClass"
            glib:is-gtype-struct-for="TextTagTable">
      <source-position filename="gtktexttagtable.h" line="73"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="tag_changed">
        <callback name="tag_changed">
          <source-position filename="gtktexttagtable.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="table" transfer-ownership="none">
              <type name="TextTagTable" c:type="GtkTextTagTable*"/>
            </parameter>
            <parameter name="tag" transfer-ownership="none">
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
            <parameter name="size_changed" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tag_added">
        <callback name="tag_added">
          <source-position filename="gtktexttagtable.h" line="65"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="table" transfer-ownership="none">
              <type name="TextTagTable" c:type="GtkTextTagTable*"/>
            </parameter>
            <parameter name="tag" transfer-ownership="none">
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="tag_removed">
        <callback name="tag_removed">
          <source-position filename="gtktexttagtable.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="table" transfer-ownership="none">
              <type name="TextTagTable" c:type="GtkTextTagTable*"/>
            </parameter>
            <parameter name="tag" transfer-ownership="none">
              <type name="TextTag" c:type="GtkTextTag*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktexttagtable.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktexttagtable.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktexttagtable.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktexttagtable.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TextTagTableForeach" c:type="GtkTextTagTableForeach">
      <source-position filename="gtktexttagtable.h" line="38"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tag" transfer-ownership="none">
          <type name="TextTag" c:type="GtkTextTag*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="TextView"
           c:symbol-prefix="text_view"
           c:type="GtkTextView"
           parent="Container"
           glib:type-name="GtkTextView"
           glib:get-type="gtk_text_view_get_type"
           glib:type-struct="TextViewClass">
      <source-position filename="gtktextview.h" line="215"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_text_view_new">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1353">Creates a new #GtkTextView. If you don't call gtk_text_view_set_buffer()
before using the text view, an empty default buffer will be created
for you. Get the buffer with gtk_text_view_get_buffer(). If you want
to specify your own buffer, consider gtk_text_view_new_with_buffer().</doc>
        <source-position filename="gtktextview.h" line="218"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="1361">a new #GtkTextView</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_buffer"
                   c:identifier="gtk_text_view_new_with_buffer">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1369">Creates a new #GtkTextView widget displaying the buffer
@buffer. One buffer can be shared among many widgets.
@buffer may be %NULL to create a default buffer, in which case
this function is equivalent to gtk_text_view_new(). The
text view adds its own reference count to the buffer; it does not
take over an existing reference.</doc>
        <source-position filename="gtktextview.h" line="219"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="1380">a new #GtkTextView.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1371">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="backspace">
        <source-position filename="gtktextview.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="copy_clipboard">
        <source-position filename="gtktextview.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cut_clipboard">
        <source-position filename="gtktextview.h" line="194"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="delete_from_cursor">
        <source-position filename="gtktextview.h" line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="DeleteType" c:type="GtkDeleteType"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_at_cursor">
        <source-position filename="gtktextview.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_cursor">
        <source-position filename="gtktextview.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="step" transfer-ownership="none">
            <type name="MovementStep" c:type="GtkMovementStep"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_focus">
        <source-position filename="gtktextview.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="page_horizontally">
        <source-position filename="gtktextview.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="paste_clipboard">
        <source-position filename="gtktextview.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_popup">
        <source-position filename="gtktextview.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="Menu" c:type="GtkMenu*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_anchor">
        <source-position filename="gtktextview.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_scroll_adjustments">
        <source-position filename="gtktextview.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="toggle_overwrite">
        <source-position filename="gtktextview.h" line="198"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_child_at_anchor"
              c:identifier="gtk_text_view_add_child_at_anchor">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9059">Adds a child widget in the text buffer, at the given @anchor.</doc>
        <source-position filename="gtktextview.h" line="315"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9061">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9062">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="anchor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9063">a #GtkTextChildAnchor in the #GtkTextBuffer for @text_view</doc>
            <type name="TextChildAnchor" c:type="GtkTextChildAnchor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_child_in_window"
              c:identifier="gtk_text_view_add_child_in_window">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9090">Adds a child at fixed coordinates in one of the text widget's
windows. The window must have nonzero size (see
gtk_text_view_set_border_window_size()). Note that the child
coordinates are given relative to the #GdkWindow in question, and
that these coordinates have no sane relationship to scrolling. When
placing a child in #GTK_TEXT_WINDOW_WIDGET, scrolling is
irrelevant, the child floats above all scrollable areas. But when
placing a child in one of the scrollable windows (border windows or
text window), you'll need to compute the child's correct position
in buffer coordinates any time scrolling occurs or buffer changes
occur, and then call gtk_text_view_move_child() to update the
child's position. Unfortunately there's no good way to detect that
scrolling has occurred, using the current API; a possible hack
would be to update all child positions when the scroll adjustments
change or the text buffer changes. See bug 64518 on
bugzilla.gnome.org for status of fixing this issue.</doc>
        <source-position filename="gtktextview.h" line="319"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9092">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9093">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="which_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9094">which window the child should appear in</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
          <parameter name="xpos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9095">X position of child in window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ypos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9096">Y position of child in window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_display_line"
              c:identifier="gtk_text_view_backward_display_line">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9206">Moves the given @iter backward by one display (wrapped) line.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view's width; paragraphs are the same in all
views, since they depend on the contents of the #GtkTextBuffer.</doc>
        <source-position filename="gtktextview.h" line="298"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9220">%TRUE if @iter was moved and is not on the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9208">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9209">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="backward_display_line_start"
              c:identifier="gtk_text_view_backward_display_line_start">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9262">Moves the given @iter backward to the next display line start.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view's width; paragraphs are the same in all
views, since they depend on the contents of the #GtkTextBuffer.</doc>
        <source-position filename="gtktextview.h" line="302"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9276">%TRUE if @iter was moved and is not on the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9264">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9265">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="buffer_to_window_coords"
              c:identifier="gtk_text_view_buffer_to_window_coords">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8558">Converts coordinate (@buffer_x, @buffer_y) to coordinates for the window
@win, and stores the result in (@window_x, @window_y).

Note that you can't convert coordinates for a nonexisting window (see
gtk_text_view_set_border_window_size()).</doc>
        <source-position filename="gtktextview.h" line="269"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8560">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="win" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8561">a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
          <parameter name="buffer_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8562">buffer x coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="buffer_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8563">buffer y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="window_x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8564">window x coordinate return location or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="window_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8565">window y coordinate return location or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_display_line"
              c:identifier="gtk_text_view_forward_display_line">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9178">Moves the given @iter forward by one display (wrapped) line.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view's width; paragraphs are the same in all
views, since they depend on the contents of the #GtkTextBuffer.</doc>
        <source-position filename="gtktextview.h" line="296"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9192">%TRUE if @iter was moved and is not on the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9180">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9181">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="forward_display_line_end"
              c:identifier="gtk_text_view_forward_display_line_end">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9234">Moves the given @iter forward to the next display line end.
A display line is different from a paragraph. Paragraphs are
separated by newlines or other paragraph separator characters.
Display lines are created by line-wrapping a paragraph. If
wrapping is turned off, display lines and paragraphs will be the
same. Display lines are divided differently for each view, since
they depend on the view's width; paragraphs are the same in all
views, since they depend on the contents of the #GtkTextBuffer.</doc>
        <source-position filename="gtktextview.h" line="300"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9248">%TRUE if @iter was moved and is not on the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9236">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9237">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_accepts_tab"
              c:identifier="gtk_text_view_get_accepts_tab"
              glib:get-property="accepts-tab"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="5952">Returns whether pressing the Tab key inserts a tab characters.
gtk_text_view_set_accepts_tab().</doc>
        <source-position filename="gtktextview.h" line="345"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="5959">%TRUE if pressing the Tab key inserts a tab character,
  %FALSE if pressing the Tab key moves the keyboard focus.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5954">A #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_border_window_size"
              c:identifier="gtk_text_view_get_border_window_size">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8905">Gets the width of the specified border window. See
gtk_text_view_set_border_window_size().</doc>
        <source-position filename="gtktextview.h" line="293"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="8913">width of window</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8907">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8908">window to return size from</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer"
              c:identifier="gtk_text_view_get_buffer"
              glib:get-property="buffer">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1530">Returns the #GtkTextBuffer being displayed by this text view.
The reference count on the buffer is not incremented; the caller
of this function won't own a new reference.</doc>
        <source-position filename="gtktextview.h" line="222"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="1538">a #GtkTextBuffer</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1532">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor_visible"
              c:identifier="gtk_text_view_get_cursor_visible"
              glib:get-property="cursor-visible">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2827">Find out whether the cursor is being displayed.</doc>
        <source-position filename="gtktextview.h" line="245"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2833">whether the insertion mark is visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2829">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_attributes"
              c:identifier="gtk_text_view_get_default_attributes">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="6539">Obtains a copy of the default text attributes. These are the
attributes used for text unless a tag overrides them.
You'd typically pass the default attributes in to
gtk_text_iter_get_attributes() in order to get the
attributes in effect at a given text position.

The return value is a copy owned by the caller of this function,
and should be freed.</doc>
        <source-position filename="gtktextview.h" line="372"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="6552">a new #GtkTextAttributes</doc>
          <type name="TextAttributes" c:type="GtkTextAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="6541">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_editable"
              c:identifier="gtk_text_view_get_editable"
              glib:get-property="editable">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2400">Returns the default editability of the #GtkTextView. Tags in the
buffer may override this setting for some ranges of text.</doc>
        <source-position filename="gtktextview.h" line="339"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2407">whether text is editable by default</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2402">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hadjustment"
              c:identifier="gtk_text_view_get_hadjustment"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="7124">Gets the horizontal-scrolling #GtkAdjustment.</doc>
        <source-position filename="gtktextview.h" line="282"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="7130">pointer to the horizontal #GtkAdjustment</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="7126">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indent"
              c:identifier="gtk_text_view_get_indent"
              glib:get-property="indent">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2715">Gets the default indentation of paragraphs in @text_view.
Tags in the view's buffer may override the default.
The indentation may be negative.</doc>
        <source-position filename="gtktextview.h" line="366"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2723">number of pixels of indentation</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2717">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter_at_location"
              c:identifier="gtk_text_view_get_iter_at_location">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1548">Retrieves the iterator at buffer coordinates @x and @y. Buffer
coordinates are coordinates for the entire buffer, not just the
currently-displayed portion.  If you have coordinates from an
event, you have to convert those to buffer coordinates with
gtk_text_view_window_to_buffer_coords().</doc>
        <source-position filename="gtktextview.h" line="250"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1550">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1551">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1552">x position, in buffer coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1553">y position, in buffer coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_at_position"
              c:identifier="gtk_text_view_get_iter_at_position"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1576">Retrieves the iterator pointing to the character at buffer
coordinates @x and @y. Buffer coordinates are coordinates for
the entire buffer, not just the currently-displayed portion.
If you have coordinates from an event, you have to convert
those to buffer coordinates with
gtk_text_view_window_to_buffer_coords().

Note that this is different from gtk_text_view_get_iter_at_location(),
which returns cursor locations, i.e. positions &lt;emphasis&gt;between&lt;/emphasis&gt;
characters.</doc>
        <source-position filename="gtktextview.h" line="254"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1578">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1579">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="trailing"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1580">if non-%NULL, location to store an integer indicating where
   in the grapheme the user clicked. It will either be
   zero, or the number of characters in the grapheme.
   0 represents the trailing edge of the grapheme.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1584">x position, in buffer coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1585">y position, in buffer coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_location"
              c:identifier="gtk_text_view_get_iter_location">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1616">Gets a rectangle which roughly contains the character at @iter.
The rectangle position is in buffer coordinates; use
gtk_text_view_buffer_to_window_coords() to convert these
coordinates to coordinates for one of the windows in the text view.</doc>
        <source-position filename="gtktextview.h" line="247"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1618">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1619">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="location"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1620">bounds of the character at @iter</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_justification"
              c:identifier="gtk_text_view_get_justification"
              glib:get-property="justification">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2580">Gets the default justification of paragraphs in @text_view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="357"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2587">default justification</doc>
          <type name="Justification" c:type="GtkJustification"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2582">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_left_margin"
              c:identifier="gtk_text_view_get_left_margin"
              glib:get-property="left-margin">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2625">Gets the default left margin size of paragraphs in the @text_view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="360"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2632">left margin in pixels</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2627">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_line_at_y" c:identifier="gtk_text_view_get_line_at_y">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1668">Gets the #GtkTextIter at the start of the line containing
the coordinate @y. @y is in buffer coordinates, convert from
window coordinates with gtk_text_view_window_to_buffer_coords().
If non-%NULL, @line_top will be filled with the coordinate of the top
edge of the line.</doc>
        <source-position filename="gtktextview.h" line="264"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1670">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="target_iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1671">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1672">a y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="line_top"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1673">return location for top coordinate of the line</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_line_yrange"
              c:identifier="gtk_text_view_get_line_yrange">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1640">Gets the y coordinate of the top of the line containing @iter,
and the height of the line. The coordinate is a buffer coordinate;
convert to window coordinates with gtk_text_view_buffer_to_window_coords().</doc>
        <source-position filename="gtktextview.h" line="259"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1642">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1643">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1644">return location for a y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1645">return location for a height</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_overwrite"
              c:identifier="gtk_text_view_get_overwrite"
              glib:get-property="overwrite"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="5884">Returns whether the #GtkTextView is in overwrite mode or not.</doc>
        <source-position filename="gtktextview.h" line="342"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="5890">whether @text_view is in overwrite mode or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5886">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixels_above_lines"
              c:identifier="gtk_text_view_get_pixels_above_lines"
              glib:get-property="pixels-above-lines">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2445">Gets the default number of pixels to put above paragraphs.</doc>
        <source-position filename="gtktextview.h" line="348"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2451">default number of pixels above paragraphs</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2447">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixels_below_lines"
              c:identifier="gtk_text_view_get_pixels_below_lines"
              glib:get-property="pixels-below-lines">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2490">Gets the value set by gtk_text_view_set_pixels_below_lines().</doc>
        <source-position filename="gtktextview.h" line="351"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2496">default number of blank pixels below paragraphs</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2492">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixels_inside_wrap"
              c:identifier="gtk_text_view_get_pixels_inside_wrap"
              glib:get-property="pixels-inside-wrap">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2535">Gets the value set by gtk_text_view_set_pixels_inside_wrap().</doc>
        <source-position filename="gtktextview.h" line="354"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2541">default number of pixels of blank space between wrapped lines</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2537">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_right_margin"
              c:identifier="gtk_text_view_get_right_margin"
              glib:get-property="right-margin">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2670">Gets the default right margin for text in @text_view. Tags
in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="363"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2677">right margin in pixels</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2672">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tabs"
              c:identifier="gtk_text_view_get_tabs"
              glib:get-property="tabs">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2767">Gets the default tabs for @text_view. Tags in the buffer may
override the defaults. The returned array will be %NULL if
"standard" (8-space) tabs are used. Free the return value
with pango_tab_array_free().</doc>
        <source-position filename="gtktextview.h" line="369"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2776">copy of default tab array, or %NULL if "standard"
   tabs are used; must be freed with pango_tab_array_free().</doc>
          <type name="Pango.TabArray" c:type="PangoTabArray*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2769">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vadjustment"
              c:identifier="gtk_text_view_get_vadjustment"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="7142">Gets the vertical-scrolling #GtkAdjustment.</doc>
        <source-position filename="gtktextview.h" line="283"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="7148">pointer to the vertical #GtkAdjustment</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="7144">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_rect"
              c:identifier="gtk_text_view_get_visible_rect">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2281">Fills @visible_rect with the currently-visible
region of the buffer, in buffer coordinates. Convert to window coordinates
with gtk_text_view_buffer_to_window_coords().</doc>
        <source-position filename="gtktextview.h" line="241"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2283">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="visible_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2284">rectangle to fill</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_window" c:identifier="gtk_text_view_get_window">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8395">Retrieves the #GdkWindow corresponding to an area of the text view;
possible windows include the overall widget window, child windows
on the left, right, top, bottom, and the window that displays the
text buffer. Windows are %NULL and nonexistent if their width or
height is 0, and are nonexistent before the widget has been
realized.</doc>
        <source-position filename="gtktextview.h" line="285"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="8407">a #GdkWindow, or %NULL</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8397">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="win" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8398">window to get</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_window_type"
              c:identifier="gtk_text_view_get_window_type">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8463">Usually used to find out which window an event corresponds to.
If you connect to an event signal on @text_view, this function
should be called on &lt;literal&gt;event-&amp;gt;window&lt;/literal&gt; to
see which window it was.</doc>
        <source-position filename="gtktextview.h" line="287"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="8473">the window type.</doc>
          <type name="TextWindowType" c:type="GtkTextWindowType"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8465">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8466">a window type</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_wrap_mode"
              c:identifier="gtk_text_view_get_wrap_mode"
              glib:get-property="wrap-mode">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2342">Gets the line wrapping for the view.</doc>
        <source-position filename="gtktextview.h" line="336"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2348">the line wrap setting</doc>
          <type name="WrapMode" c:type="GtkWrapMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2344">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="im_context_filter_keypress"
              c:identifier="gtk_text_view_im_context_filter_keypress"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="6626">Allow the #GtkTextView input method to internally handle key press
and release events. If this function returns %TRUE, then no further
processing should be done for this key event. See
gtk_im_context_filter_keypress().

Note that you are expected to call this function from your handler
when overriding key event handling. This is needed in the case when
you need to insert your own key handling between the input method
and the default key event handling of the #GtkTextView.

|[
static gboolean
gtk_foo_bar_key_press_event (GtkWidget   *widget,
                             GdkEventKey *event)
{
  if ((key-&gt;keyval == GDK_Return || key-&gt;keyval == GDK_KP_Enter))
    {
      if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (view), event))
        return TRUE;
    }

    /&amp;ast; Do some stuff &amp;ast;/

  return GTK_WIDGET_CLASS (gtk_foo_bar_parent_class)-&gt;key_press_event (widget, event);
}
]|</doc>
        <source-position filename="gtktextview.h" line="310"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="6658">%TRUE if the input method handled the key event.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="6628">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="6629">the key event</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_child" c:identifier="gtk_text_view_move_child">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9137">Updates the position of a child, as for gtk_text_view_add_child_in_window().</doc>
        <source-position filename="gtktextview.h" line="326"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9139">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9140">child widget already added to the text view</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="xpos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9141">new X position in window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ypos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9142">new Y position in window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_mark_onscreen"
              c:identifier="gtk_text_view_move_mark_onscreen">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2251">Moves a mark within the buffer so that it's
located within the currently-visible text area.</doc>
        <source-position filename="gtktextview.h" line="237"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2259">%TRUE if the mark moved (wasn't already onscreen)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2253">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2254">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_visually" c:identifier="gtk_text_view_move_visually">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9313">Move the iterator a given number of characters visually, treating
it as the strong cursor position. If @count is positive, then the
new strong cursor position will be @count positions to the right of
the old cursor position. If @count is negative then the new strong
cursor position will be @count positions to the left of the old
cursor position.

In the presence of bi-directional text, the correspondence
between logical and visual order will depend on the direction
of the current run, and there may be jumps when the cursor
is moved off of the end of a run.</doc>
        <source-position filename="gtktextview.h" line="306"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9332">%TRUE if @iter moved and is not on the end iterator</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9315">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9316">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9317">number of characters to move (negative moves left,
   positive moves right)</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="place_cursor_onscreen"
              c:identifier="gtk_text_view_place_cursor_onscreen">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2844">Moves the cursor to the currently visible region of the
buffer, it it isn't there already.</doc>
        <source-position filename="gtktextview.h" line="239"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="2851">%TRUE if the cursor had to be moved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2846">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset_im_context"
              c:identifier="gtk_text_view_reset_im_context"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="6603">Reset the input method context of the text view if needed.

This can be necessary in the case where modifying the buffer
would confuse on-going input method behavior.</doc>
        <source-position filename="gtktextview.h" line="312"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="6605">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scroll_mark_onscreen"
              c:identifier="gtk_text_view_scroll_mark_onscreen">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2217">Scrolls @text_view the minimum distance such that @mark is contained
within the visible area of the widget.</doc>
        <source-position filename="gtktextview.h" line="235"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2219">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2220">a mark in the buffer for @text_view</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_iter"
              c:identifier="gtk_text_view_scroll_to_iter">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1721">Scrolls @text_view so that @iter is on the screen in the position
indicated by @xalign and @yalign. An alignment of 0.0 indicates
left or top, 1.0 indicates right or bottom, 0.5 means center.
If @use_align is %FALSE, the text scrolls the minimal distance to
get the mark onscreen, possibly not scrolling at all. The effective
screen for purposes of this function is reduced by a margin of size
@within_margin.

Note that this function uses the currently-computed height of the
lines in the text buffer. Line heights are computed in an idle
handler; so this function may not have the desired effect if it's
called before the height computations. To avoid oddness, consider
using gtk_text_view_scroll_to_mark() which saves a point to be
scrolled to after line validation.</doc>
        <source-position filename="gtktextview.h" line="223"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="1746">%TRUE if scrolling occurred</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1723">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1724">a #GtkTextIter</doc>
            <type name="TextIter" c:type="GtkTextIter*"/>
          </parameter>
          <parameter name="within_margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1725">margin as a [0.0,0.5) fraction of screen size</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1726">whether to use alignment arguments (if %FALSE,
   just get the mark onscreen)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1728">horizontal alignment of mark within visible area</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="yalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1729">vertical alignment of mark within visible area</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_mark"
              c:identifier="gtk_text_view_scroll_to_mark">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2166">Scrolls @text_view so that @mark is on the screen in the position
indicated by @xalign and @yalign. An alignment of 0.0 indicates
left or top, 1.0 indicates right or bottom, 0.5 means center.
If @use_align is %FALSE, the text scrolls the minimal distance to
get the mark onscreen, possibly not scrolling at all. The effective
screen for purposes of this function is reduced by a margin of size
@within_margin.</doc>
        <source-position filename="gtktextview.h" line="229"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2168">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="mark" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2169">a #GtkTextMark</doc>
            <type name="TextMark" c:type="GtkTextMark*"/>
          </parameter>
          <parameter name="within_margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2170">margin as a [0.0,0.5) fraction of screen size</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2171">whether to use alignment arguments (if %FALSE, just
   get the mark onscreen)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2173">horizontal alignment of mark within visible area</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="yalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2174">vertical alignment of mark within visible area</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accepts_tab"
              c:identifier="gtk_text_view_set_accepts_tab"
              glib:set-property="accepts-tab"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="5922">Sets the behavior of the text widget when the Tab key is pressed.
If @accepts_tab is %TRUE, a tab character is inserted. If @accepts_tab
is %FALSE the keyboard focus is moved to the next widget in the focus
chain.</doc>
        <source-position filename="gtktextview.h" line="343"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5924">A #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="accepts_tab" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5925">%TRUE if pressing the Tab key should insert a tab
   character, %FALSE, if pressing the Tab key should move the
   keyboard focus.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_border_window_size"
              c:identifier="gtk_text_view_set_border_window_size">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8854">Sets the width of %GTK_TEXT_WINDOW_LEFT or %GTK_TEXT_WINDOW_RIGHT,
or the height of %GTK_TEXT_WINDOW_TOP or %GTK_TEXT_WINDOW_BOTTOM.
Automatically destroys the corresponding window if the size is set
to 0, and creates the window if the size is set to non-zero.  This
function can only be used for the "border windows," it doesn't work
with #GTK_TEXT_WINDOW_WIDGET, #GTK_TEXT_WINDOW_TEXT, or
#GTK_TEXT_WINDOW_PRIVATE.</doc>
        <source-position filename="gtktextview.h" line="290"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8856">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8857">window to affect</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8858">width or height of the window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer"
              c:identifier="gtk_text_view_set_buffer"
              glib:set-property="buffer">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1394">Sets @buffer as the buffer being displayed by @text_view. The previous
buffer displayed by the text view is unreferenced, and a reference is
added to @buffer. If you owned a reference to @buffer before passing it
to this function, you must remove that reference yourself; #GtkTextView
will not "adopt" it.</doc>
        <source-position filename="gtktextview.h" line="220"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1396">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="buffer"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1397">a #GtkTextBuffer</doc>
            <type name="TextBuffer" c:type="GtkTextBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_visible"
              c:identifier="gtk_text_view_set_cursor_visible"
              glib:set-property="cursor-visible">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2793">Toggles whether the insertion point is displayed. A buffer with no editable
text probably shouldn't have a visible cursor, so you may want to turn
the cursor off.</doc>
        <source-position filename="gtktextview.h" line="243"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2795">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2796">whether to show the insertion cursor</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_editable"
              c:identifier="gtk_text_view_set_editable"
              glib:set-property="editable">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2358">Sets the default editability of the #GtkTextView. You can override
this default setting with tags in the buffer, using the "editable"
attribute of tags.</doc>
        <source-position filename="gtktextview.h" line="337"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2360">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2361">whether it's editable</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_indent"
              c:identifier="gtk_text_view_set_indent"
              glib:set-property="indent">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2687">Sets the default indentation for paragraphs in @text_view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="364"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2689">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="indent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2690">indentation in pixels</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_justification"
              c:identifier="gtk_text_view_set_justification"
              glib:set-property="justification">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2551">Sets the default justification of text in @text_view.
Tags in the view's buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="355"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2553">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="justification" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2554">justification</doc>
            <type name="Justification" c:type="GtkJustification"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_left_margin"
              c:identifier="gtk_text_view_set_left_margin"
              glib:set-property="left-margin">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2597">Sets the default left margin for text in @text_view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="358"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2599">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="left_margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2600">left margin in pixels</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_overwrite"
              c:identifier="gtk_text_view_set_overwrite"
              glib:set-property="overwrite"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="5902">Changes the #GtkTextView overwrite mode.</doc>
        <source-position filename="gtktextview.h" line="340"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5904">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="overwrite" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="5905">%TRUE to turn on overwrite mode, %FALSE to turn it off</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixels_above_lines"
              c:identifier="gtk_text_view_set_pixels_above_lines"
              glib:set-property="pixels-above-lines">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2417">Sets the default number of blank pixels above paragraphs in @text_view.
Tags in the buffer for @text_view may override the defaults.</doc>
        <source-position filename="gtktextview.h" line="346"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2419">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="pixels_above_lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2420">pixels above paragraphs</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixels_below_lines"
              c:identifier="gtk_text_view_set_pixels_below_lines"
              glib:set-property="pixels-below-lines">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2461">Sets the default number of pixels of blank space
to put below paragraphs in @text_view. May be overridden
by tags applied to @text_view's buffer.</doc>
        <source-position filename="gtktextview.h" line="349"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2463">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="pixels_below_lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2464">pixels below paragraphs</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_pixels_inside_wrap"
              c:identifier="gtk_text_view_set_pixels_inside_wrap"
              glib:set-property="pixels-inside-wrap">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2506">Sets the default number of pixels of blank space to leave between
display/wrapped lines within a paragraph. May be overridden by
tags in @text_view's buffer.</doc>
        <source-position filename="gtktextview.h" line="352"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2508">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="pixels_inside_wrap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2509">default number of pixels between wrapped lines</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_right_margin"
              c:identifier="gtk_text_view_set_right_margin"
              glib:set-property="right-margin">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2642">Sets the default right margin for text in the text view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="361"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2644">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="right_margin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2645">right margin in pixels</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tabs"
              c:identifier="gtk_text_view_set_tabs"
              glib:set-property="tabs">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2733">Sets the default tab stops for paragraphs in @text_view.
Tags in the buffer may override the default.</doc>
        <source-position filename="gtktextview.h" line="367"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2735">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="tabs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2736">tabs as a #PangoTabArray</doc>
            <type name="Pango.TabArray" c:type="PangoTabArray*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wrap_mode"
              c:identifier="gtk_text_view_set_wrap_mode"
              glib:set-property="wrap-mode">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="2315">Sets the line wrapping for the view.</doc>
        <source-position filename="gtktextview.h" line="334"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2317">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="wrap_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="2318">a #GtkWrapMode</doc>
            <type name="WrapMode" c:type="GtkWrapMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="starts_display_line"
              c:identifier="gtk_text_view_starts_display_line">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="9290">Determines whether @iter is at the start of a display line.
See gtk_text_view_forward_display_line() for an explanation of
display lines vs. paragraphs.</doc>
        <source-position filename="gtktextview.h" line="304"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktextview.c"
               line="9299">%TRUE if @iter begins a wrapped line</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9292">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="9293">a #GtkTextIter</doc>
            <type name="TextIter" c:type="const GtkTextIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="window_to_buffer_coords"
              c:identifier="gtk_text_view_window_to_buffer_coords">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="8698">Converts coordinates on the window identified by @win to buffer
coordinates, storing the result in (@buffer_x,@buffer_y).

Note that you can't convert coordinates for a nonexisting window (see
gtk_text_view_set_border_window_size()).</doc>
        <source-position filename="gtktextview.h" line="275"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="text_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8700">a #GtkTextView</doc>
            <type name="TextView" c:type="GtkTextView*"/>
          </instance-parameter>
          <parameter name="win" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8701">a #GtkTextWindowType except #GTK_TEXT_WINDOW_PRIVATE</doc>
            <type name="TextWindowType" c:type="GtkTextWindowType"/>
          </parameter>
          <parameter name="window_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8702">window x coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="window_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8703">window y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="buffer_x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8704">buffer x coordinate return location or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="buffer_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="8705">buffer y coordinate return location or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <property name="accepts-tab"
                writable="1"
                transfer-ownership="none"
                setter="set_accepts_tab"
                getter="get_accepts_tab"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="buffer"
                writable="1"
                transfer-ownership="none"
                setter="set_buffer"
                getter="get_buffer">
        <type name="TextBuffer"/>
      </property>
      <property name="cursor-visible"
                writable="1"
                transfer-ownership="none"
                setter="set_cursor_visible"
                getter="get_cursor_visible"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="editable"
                writable="1"
                transfer-ownership="none"
                setter="set_editable"
                getter="get_editable"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="im-module"
                version="2.16"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="669">Which IM (input method) module should be used for this entry.
See #GtkIMContext.

Setting this to a non-%NULL value overrides the
system-wide IM module setting. See the GtkSettings
#GtkSettings:gtk-im-module property.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="indent"
                writable="1"
                transfer-ownership="none"
                setter="set_indent"
                getter="get_indent"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="justification"
                writable="1"
                transfer-ownership="none"
                setter="set_justification"
                getter="get_justification"
                default-value="GTK_JUSTIFY_LEFT">
        <type name="Justification"/>
      </property>
      <property name="left-margin"
                writable="1"
                transfer-ownership="none"
                setter="set_left_margin"
                getter="get_left_margin"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="overwrite"
                writable="1"
                transfer-ownership="none"
                setter="set_overwrite"
                getter="get_overwrite"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pixels-above-lines"
                writable="1"
                transfer-ownership="none"
                setter="set_pixels_above_lines"
                getter="get_pixels_above_lines"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixels-below-lines"
                writable="1"
                transfer-ownership="none"
                setter="set_pixels_below_lines"
                getter="get_pixels_below_lines"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pixels-inside-wrap"
                writable="1"
                transfer-ownership="none"
                setter="set_pixels_inside_wrap"
                getter="get_pixels_inside_wrap"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="right-margin"
                writable="1"
                transfer-ownership="none"
                setter="set_right_margin"
                getter="get_right_margin"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="tabs"
                writable="1"
                transfer-ownership="none"
                setter="set_tabs"
                getter="get_tabs">
        <type name="Pango.TabArray"/>
      </property>
      <property name="wrap-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_wrap_mode"
                getter="get_wrap_mode"
                default-value="GTK_WRAP_NONE">
        <type name="WrapMode"/>
      </property>
      <field name="parent_instance">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="layout">
        <type name="gpointer" c:type="_GtkTextLayout*"/>
      </field>
      <field name="buffer">
        <type name="TextBuffer" c:type="GtkTextBuffer*"/>
      </field>
      <field name="selection_drag_handler">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="scroll_timeout">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="pixels_above_lines">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="pixels_below_lines">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="pixels_inside_wrap">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="wrap_mode">
        <type name="WrapMode" c:type="GtkWrapMode"/>
      </field>
      <field name="justify">
        <type name="Justification" c:type="GtkJustification"/>
      </field>
      <field name="left_margin">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="right_margin">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="indent">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="tabs">
        <type name="Pango.TabArray" c:type="PangoTabArray*"/>
      </field>
      <field name="editable" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="overwrite_mode" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="cursor_visible" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_im_reset" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="accepts_tab" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="width_changed" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="onscreen_validated" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="mouse_cursor_obscured" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="text_window">
        <type name="TextWindow" c:type="GtkTextWindow*"/>
      </field>
      <field name="left_window">
        <type name="TextWindow" c:type="GtkTextWindow*"/>
      </field>
      <field name="right_window">
        <type name="TextWindow" c:type="GtkTextWindow*"/>
      </field>
      <field name="top_window">
        <type name="TextWindow" c:type="GtkTextWindow*"/>
      </field>
      <field name="bottom_window">
        <type name="TextWindow" c:type="GtkTextWindow*"/>
      </field>
      <field name="hadjustment">
        <type name="Adjustment" c:type="GtkAdjustment*"/>
      </field>
      <field name="vadjustment">
        <type name="Adjustment" c:type="GtkAdjustment*"/>
      </field>
      <field name="xoffset">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="yoffset">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="virtual_cursor_x">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="virtual_cursor_y">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="first_para_mark">
        <type name="TextMark" c:type="GtkTextMark*"/>
      </field>
      <field name="first_para_pixels">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="dnd_mark">
        <type name="TextMark" c:type="GtkTextMark*"/>
      </field>
      <field name="blink_timeout">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="first_validate_idle">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="incremental_validate_idle">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="im_context">
        <type name="IMContext" c:type="GtkIMContext*"/>
      </field>
      <field name="popup_menu">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="drag_start_x">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="drag_start_y">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="children">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="pending_scroll">
        <type name="TextPendingScroll" c:type="GtkTextPendingScroll*"/>
      </field>
      <field name="pending_place_cursor_button">
        <type name="gint" c:type="gint"/>
      </field>
      <glib:signal name="backspace" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="868">The ::backspace signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user asks for it.

The default bindings for this signal are
Backspace and Shift-Backspace.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="copy-clipboard" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="908">The ::copy-clipboard signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to copy the selection to the clipboard.

The default bindings for this signal are
Ctrl-c and Ctrl-Insert.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cut-clipboard" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="888">The ::cut-clipboard signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to cut the selection to the clipboard.

The default bindings for this signal are
Ctrl-x and Shift-Delete.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="delete-from-cursor" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="838">The ::delete-from-cursor signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user initiates a text deletion.

If the @type is %GTK_DELETE_CHARS, GTK+ deletes the selection
if there is one, otherwise it deletes the requested number
of characters.

The default bindings for this signal are
Delete for deleting a character, Ctrl-Delete for
deleting a word and Ctrl-Backspace for deleting a word
backwords.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="841">the granularity of the deletion, as a #GtkDeleteType</doc>
            <type name="DeleteType"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="842">the number of @type units to delete</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="insert-at-cursor" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="816">The ::insert-at-cursor signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user initiates the insertion of a
fixed string at the cursor.

This signal has no default bindings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="819">the string to insert</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-cursor" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="703">The ::move-cursor signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user initiates a cursor movement.
If the cursor is not visible in @text_view, this signal causes
the viewport to be moved instead.

Applications should not connect to it, but may emit it with
g_signal_emit_by_name() if they need to control the cursor
programmatically.

The default bindings for this signal come in two variants,
the variant with the Shift modifier extends the selection,
the variant without the Shift modifer does not.
There are too many key combinations to list them all here.
&lt;itemizedlist&gt;
&lt;listitem&gt;Arrow keys move by individual characters/lines&lt;/listitem&gt;
&lt;listitem&gt;Ctrl-arrow key combinations move by words/paragraphs&lt;/listitem&gt;
&lt;listitem&gt;Home/End keys move to the ends of the buffer&lt;/listitem&gt;
&lt;listitem&gt;PageUp/PageDown keys move vertically by pages&lt;/listitem&gt;
&lt;listitem&gt;Ctrl-PageUp/PageDown keys move horizontally by pages&lt;/listitem&gt;
&lt;/itemizedlist&gt;</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="706">the granularity of the move, as a #GtkMovementStep</doc>
            <type name="MovementStep"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="707">the number of @step units to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="708">%TRUE if the move should extend the selection</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-viewport" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="770">The ::move-viewport signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which can be bound to key combinations to allow the user
to move the viewport, i.e. change what part of the text view
is visible in a containing scrolled window.

There are no default bindings for this signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="step" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="773">the granularity of the move, as a #GtkMovementStep</doc>
            <type name="ScrollStep"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="774">the number of @step units to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="page-horizontally" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="744">The ::page-horizontally signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which can be bound to key combinations to allow the user
to initiate horizontal cursor movement by pages.

This signal should not be used anymore, instead use the
#GtkTextview::move-cursor signal with the #GTK_MOVEMENT_HORIZONTAL_PAGES
granularity.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="747">the number of @step units to move</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="extend_selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="748">%TRUE if the move should extend the selection</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="paste-clipboard" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="928">The ::paste-clipboard signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to paste the contents of the clipboard
into the text view.

The default bindings for this signal are
Ctrl-v and Shift-Insert.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="populate-popup" when="last">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="989">The ::populate-popup signal gets emitted before showing the
context menu of the text view.

If you need to add items to the context menu, connect
to this signal and append your menuitems to the @menu.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="992">the menu that is being populated</doc>
            <type name="Menu"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="preedit-changed"
                   when="last"
                   action="1"
                   version="2.20">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1051">If an input method is used, the typed text will not immediately
be committed to the buffer. So if you are interested in the text,
connect to this signal.

This signal is only emitted if the text at the given position
is actually editable.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="preedit" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1054">the current preedit string</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="select-all" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1010">The ::select-all signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to select or unselect the complete
contents of the text view.

The default bindings for this signal are Ctrl-a and Ctrl-/
for selecting and Shift-Ctrl-a and Ctrl-\ for unselecting.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="select" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktextview.c"
                 line="1013">%TRUE to select, %FALSE to unselect</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-anchor" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="795">The ::set-anchor signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user initiates setting the "anchor"
mark. The "anchor" mark gets placed at the same position as the
"insert" mark.

This signal has no default bindings.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-scroll-adjustments" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="968">Set the scroll adjustments for the text view. Usually scrolled containers
like #GtkScrolledWindow will emit this signal to connect two instances
of #GtkScrollbar to the scroll directions of the #GtkTextView.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="toggle-cursor-visible" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="1032">The ::toggle-cursor-visible signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to toggle the visibility of the cursor.

The default binding for this signal is F7.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="toggle-overwrite" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktextview.c"
             line="949">The ::toggle-overwrite signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted to toggle the overwrite mode of the text view.

The default bindings for this signal is Insert.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TextViewClass"
            c:type="GtkTextViewClass"
            glib:is-gtype-struct-for="TextView">
      <source-position filename="gtktextview.h" line="215"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="set_scroll_adjustments">
        <callback name="set_scroll_adjustments">
          <source-position filename="gtktextview.h" line="159"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="populate_popup">
        <callback name="populate_popup">
          <source-position filename="gtktextview.h" line="163"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="Menu" c:type="GtkMenu*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_cursor">
        <callback name="move_cursor">
          <source-position filename="gtktextview.h" line="169"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="MovementStep" c:type="GtkMovementStep"/>
            </parameter>
            <parameter name="count" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="extend_selection" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="page_horizontally">
        <callback name="page_horizontally">
          <source-position filename="gtktextview.h" line="178"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="count" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="extend_selection" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_anchor">
        <callback name="set_anchor">
          <source-position filename="gtktextview.h" line="183"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_at_cursor">
        <callback name="insert_at_cursor">
          <source-position filename="gtktextview.h" line="186"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="str" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_from_cursor">
        <callback name="delete_from_cursor">
          <source-position filename="gtktextview.h" line="188"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="type" transfer-ownership="none">
              <type name="DeleteType" c:type="GtkDeleteType"/>
            </parameter>
            <parameter name="count" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="backspace">
        <callback name="backspace">
          <source-position filename="gtktextview.h" line="191"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cut_clipboard">
        <callback name="cut_clipboard">
          <source-position filename="gtktextview.h" line="194"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="copy_clipboard">
        <callback name="copy_clipboard">
          <source-position filename="gtktextview.h" line="195"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="paste_clipboard">
        <callback name="paste_clipboard">
          <source-position filename="gtktextview.h" line="196"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="toggle_overwrite">
        <callback name="toggle_overwrite">
          <source-position filename="gtktextview.h" line="198"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_focus">
        <callback name="move_focus">
          <source-position filename="gtktextview.h" line="204"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="text_view" transfer-ownership="none">
              <type name="TextView" c:type="GtkTextView*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <type name="DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktextview.h" line="208"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktextview.h" line="209"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktextview.h" line="210"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktextview.h" line="211"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved5" introspectable="0">
        <callback name="_gtk_reserved5">
          <source-position filename="gtktextview.h" line="212"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved6" introspectable="0">
        <callback name="_gtk_reserved6">
          <source-position filename="gtktextview.h" line="213"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved7" introspectable="0">
        <callback name="_gtk_reserved7">
          <source-position filename="gtktextview.h" line="214"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TextWindow" c:type="GtkTextWindow" disguised="1" opaque="1">
      <source-position filename="gtktextview.h" line="65"/>
    </record>
    <enumeration name="TextWindowType"
                 glib:type-name="GtkTextWindowType"
                 glib:get-type="gtk_text_window_type_get_type"
                 c:type="GtkTextWindowType">
      <member name="private"
              value="0"
              c:identifier="GTK_TEXT_WINDOW_PRIVATE"
              glib:nick="private"
              glib:name="GTK_TEXT_WINDOW_PRIVATE">
      </member>
      <member name="widget"
              value="1"
              c:identifier="GTK_TEXT_WINDOW_WIDGET"
              glib:nick="widget"
              glib:name="GTK_TEXT_WINDOW_WIDGET">
      </member>
      <member name="text"
              value="2"
              c:identifier="GTK_TEXT_WINDOW_TEXT"
              glib:nick="text"
              glib:name="GTK_TEXT_WINDOW_TEXT">
      </member>
      <member name="left"
              value="3"
              c:identifier="GTK_TEXT_WINDOW_LEFT"
              glib:nick="left"
              glib:name="GTK_TEXT_WINDOW_LEFT">
      </member>
      <member name="right"
              value="4"
              c:identifier="GTK_TEXT_WINDOW_RIGHT"
              glib:nick="right"
              glib:name="GTK_TEXT_WINDOW_RIGHT">
      </member>
      <member name="top"
              value="5"
              c:identifier="GTK_TEXT_WINDOW_TOP"
              glib:nick="top"
              glib:name="GTK_TEXT_WINDOW_TOP">
      </member>
      <member name="bottom"
              value="6"
              c:identifier="GTK_TEXT_WINDOW_BOTTOM"
              glib:nick="bottom"
              glib:name="GTK_TEXT_WINDOW_BOTTOM">
      </member>
    </enumeration>
    <record name="ThemeEngine"
            c:type="GtkThemeEngine"
            disguised="1"
            opaque="1">
      <source-position filename="gtkstyle.h" line="56"/>
    </record>
    <class name="TipsQuery"
           c:symbol-prefix="tips_query"
           c:type="GtkTipsQuery"
           parent="Label"
           glib:type-name="GtkTipsQuery"
           glib:get-type="gtk_tips_query_get_type"
           glib:type-struct="TipsQueryClass">
      <source-position filename="gtktipsquery.h" line="92"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_tips_query_new">
        <source-position filename="gtktipsquery.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="start_query" invoker="start_query">
        <source-position filename="gtktipsquery.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stop_query" invoker="stop_query">
        <source-position filename="gtktipsquery.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="widget_entered">
        <source-position filename="gtktipsquery.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tip_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tip_private" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="widget_selected">
        <source-position filename="gtktipsquery.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tip_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tip_private" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="set_caller"
              c:identifier="gtk_tips_query_set_caller"
              glib:set-property="caller">
        <source-position filename="gtktipsquery.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
          <parameter name="caller" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_labels" c:identifier="gtk_tips_query_set_labels">
        <source-position filename="gtktipsquery.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
          <parameter name="label_inactive" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="label_no_tip" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_query" c:identifier="gtk_tips_query_start_query">
        <source-position filename="gtktipsquery.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop_query" c:identifier="gtk_tips_query_stop_query">
        <source-position filename="gtktipsquery.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tips_query" transfer-ownership="none">
            <type name="TipsQuery" c:type="GtkTipsQuery*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="caller"
                writable="1"
                transfer-ownership="none"
                setter="set_caller">
        <type name="Widget"/>
      </property>
      <property name="emit-always"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="label-inactive"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label-no-tip"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="label">
        <type name="Label" c:type="GtkLabel"/>
      </field>
      <field name="emit_always" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="in_query" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="label_inactive">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="label_no_tip">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="caller">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="last_crossed">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="query_cursor">
        <type name="Gdk.Cursor" c:type="GdkCursor*"/>
      </field>
      <glib:signal name="start-query" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="stop-query" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="widget-entered" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Widget"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="widget-selected" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Widget"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TipsQueryClass"
            c:type="GtkTipsQueryClass"
            glib:is-gtype-struct-for="TipsQuery">
      <source-position filename="gtktipsquery.h" line="92"/>
      <field name="parent_class">
        <type name="LabelClass" c:type="GtkLabelClass"/>
      </field>
      <field name="start_query">
        <callback name="start_query">
          <source-position filename="gtktipsquery.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tips_query" transfer-ownership="none">
              <type name="TipsQuery" c:type="GtkTipsQuery*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stop_query">
        <callback name="stop_query">
          <source-position filename="gtktipsquery.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tips_query" transfer-ownership="none">
              <type name="TipsQuery" c:type="GtkTipsQuery*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="widget_entered">
        <callback name="widget_entered">
          <source-position filename="gtktipsquery.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tips_query" transfer-ownership="none">
              <type name="TipsQuery" c:type="GtkTipsQuery*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="tip_text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="tip_private" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="widget_selected">
        <callback name="widget_selected">
          <source-position filename="gtktipsquery.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="tips_query" transfer-ownership="none">
              <type name="TipsQuery" c:type="GtkTipsQuery*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="tip_text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="tip_private" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktipsquery.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktipsquery.h" line="89"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktipsquery.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktipsquery.h" line="91"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="ToggleAction"
           c:symbol-prefix="toggle_action"
           c:type="GtkToggleAction"
           parent="Action"
           glib:type-name="GtkToggleAction"
           glib:get-type="gtk_toggle_action_get_type"
           glib:type-struct="ToggleActionClass">
      <source-position filename="gtktoggleaction.h" line="73"/>
      <implements name="Buildable"/>
      <constructor name="new"
                   c:identifier="gtk_toggle_action_new"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="144">Creates a new #GtkToggleAction object. To add the action to
a #GtkActionGroup and set the accelerator for the action,
call gtk_action_group_add_action_with_accel().</doc>
        <source-position filename="gtktoggleaction.h" line="76"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktoggleaction.c"
               line="156">a new #GtkToggleAction</doc>
          <type name="ToggleAction" c:type="GtkToggleAction*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="146">A unique name for the action</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="147">The label displayed in menu items and on buttons, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tooltip"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="148">A tooltip for the action, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="149">The stock icon to display in widgets representing the
  action, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="toggled" invoker="toggled" version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="236">Emits the "toggled" signal on the toggle action.</doc>
        <source-position filename="gtktoggleaction.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="238">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_active"
              c:identifier="gtk_toggle_action_get_active"
              glib:get-property="active"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="273">Returns the checked state of the toggle action.</doc>
        <source-position filename="gtktoggleaction.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoggleaction.c"
               line="279">the checked state of the toggle action</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="275">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_draw_as_radio"
              c:identifier="gtk_toggle_action_get_draw_as_radio"
              glib:get-property="draw-as-radio"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="318">Returns whether the action should have proxies like a radio action.</doc>
        <source-position filename="gtktoggleaction.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoggleaction.c"
               line="324">whether the action should have proxies like a radio action.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="320">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active"
              c:identifier="gtk_toggle_action_set_active"
              glib:set-property="active"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="252">Sets the checked state on the toggle action.</doc>
        <source-position filename="gtktoggleaction.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="254">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
          <parameter name="is_active" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="255">whether the action should be checked or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_as_radio"
              c:identifier="gtk_toggle_action_set_draw_as_radio"
              glib:set-property="draw-as-radio"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="292">Sets whether the action should have proxies like a radio action.</doc>
        <source-position filename="gtktoggleaction.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="294">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
          <parameter name="draw_as_radio" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="295">whether the action should have proxies like a radio
   action</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="toggled"
              c:identifier="gtk_toggle_action_toggled"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="236">Emits the "toggled" signal on the toggle action.</doc>
        <source-position filename="gtktoggleaction.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggleaction.c"
                 line="238">the action object</doc>
            <type name="ToggleAction" c:type="GtkToggleAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="active"
                version="2.10"
                writable="1"
                transfer-ownership="none"
                setter="set_active"
                getter="get_active"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="109">If the toggle action should be active in or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="draw-as-radio"
                writable="1"
                transfer-ownership="none"
                setter="set_draw_as_radio"
                getter="get_draw_as_radio"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktoggleaction.c"
             line="93">Whether the proxies for this action look like radio action proxies.

This is an appearance property and thus only applies if
#GtkActivatable:use-action-appearance is %TRUE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Action" c:type="GtkAction"/>
      </field>
      <field name="private_data" readable="0" private="1">
        <type name="ToggleActionPrivate" c:type="GtkToggleActionPrivate*"/>
      </field>
      <glib:signal name="toggled" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ToggleActionClass"
            c:type="GtkToggleActionClass"
            glib:is-gtype-struct-for="ToggleAction">
      <source-position filename="gtktoggleaction.h" line="73"/>
      <field name="parent_class">
        <type name="ActionClass" c:type="GtkActionClass"/>
      </field>
      <field name="toggled">
        <callback name="toggled">
          <source-position filename="gtktoggleaction.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="action" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoggleaction.c"
                   line="238">the action object</doc>
              <type name="ToggleAction" c:type="GtkToggleAction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoggleaction.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoggleaction.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoggleaction.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktoggleaction.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ToggleActionEntry" c:type="GtkToggleActionEntry">
      <source-position filename="gtkactiongroup.h" line="99"/>
      <field name="name" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="stock_id" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="label" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="accelerator" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="tooltip" writable="1">
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="callback" writable="1">
        <type name="GObject.Callback" c:type="GCallback"/>
      </field>
      <field name="is_active" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <record name="ToggleActionPrivate"
            c:type="GtkToggleActionPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoggleaction.h" line="50"/>
    </record>
    <class name="ToggleButton"
           c:symbol-prefix="toggle_button"
           c:type="GtkToggleButton"
           parent="Button"
           glib:type-name="GtkToggleButton"
           glib:get-type="gtk_toggle_button_get_type"
           glib:type-struct="ToggleButtonClass">
      <source-position filename="gtktogglebutton.h" line="71"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_toggle_button_new">
        <source-position filename="gtktogglebutton.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_label"
                   c:identifier="gtk_toggle_button_new_with_label">
        <source-position filename="gtktogglebutton.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_mnemonic"
                   c:identifier="gtk_toggle_button_new_with_mnemonic">
        <doc xml:space="preserve"
             filename="gtktogglebutton.c"
             line="213">Creates a new #GtkToggleButton containing a label. The label
will be created using gtk_label_new_with_mnemonic(), so underscores
in @label indicate the mnemonic for the button.</doc>
        <source-position filename="gtktogglebutton.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktogglebutton.c"
               line="217">a new #GtkToggleButton</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="215">the text of the button, with an underscore in front of the
        mnemonic character</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="toggled" invoker="toggled">
        <source-position filename="gtktogglebutton.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_active"
              c:identifier="gtk_toggle_button_get_active"
              glib:get-property="active">
        <source-position filename="gtktogglebutton.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_inconsistent"
              c:identifier="gtk_toggle_button_get_inconsistent"
              glib:get-property="inconsistent">
        <doc xml:space="preserve"
             filename="gtktogglebutton.c"
             line="402">Gets the value set by gtk_toggle_button_set_inconsistent().</doc>
        <source-position filename="gtktogglebutton.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktogglebutton.c"
               line="408">%TRUE if the button is displayed as inconsistent, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="404">a #GtkToggleButton</doc>
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode" c:identifier="gtk_toggle_button_get_mode">
        <doc xml:space="preserve"
             filename="gtktogglebutton.c"
             line="320">Retrieves whether the button is displayed as a separate indicator
and label. See gtk_toggle_button_set_mode().</doc>
        <source-position filename="gtktogglebutton.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktogglebutton.c"
               line="327">%TRUE if the togglebutton is drawn as a separate indicator
  and label.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="322">a #GtkToggleButton</doc>
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active"
              c:identifier="gtk_toggle_button_set_active"
              glib:set-property="active">
        <source-position filename="gtktogglebutton.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
          <parameter name="is_active" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_inconsistent"
              c:identifier="gtk_toggle_button_set_inconsistent"
              glib:set-property="inconsistent">
        <doc xml:space="preserve"
             filename="gtktogglebutton.c"
             line="368">If the user has selected a range of elements (such as some text or
spreadsheet cells) that are affected by a toggle button, and the
current values in that range are inconsistent, you may want to
display the toggle in an "in between" state. This function turns on
"in between" display.  Normally you would turn off the inconsistent
state again if the user toggles the toggle button. This has to be
done manually, gtk_toggle_button_set_inconsistent() only affects
visual appearance, it doesn't affect the semantics of the button.</doc>
        <source-position filename="gtktogglebutton.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="370">a #GtkToggleButton</doc>
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="371">%TRUE if state is inconsistent</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode" c:identifier="gtk_toggle_button_set_mode">
        <doc xml:space="preserve"
             filename="gtktogglebutton.c"
             line="286">Sets whether the button is displayed as a separate indicator and label.
You can call this function on a checkbutton or a radiobutton with
@draw_indicator = %FALSE to make the button look like a normal button

This function only affects instances of classes like #GtkCheckButton
and #GtkRadioButton that derive from #GtkToggleButton,
not instances of #GtkToggleButton itself.</doc>
        <source-position filename="gtktogglebutton.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="288">a #GtkToggleButton</doc>
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
          <parameter name="draw_indicator" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktogglebutton.c"
                 line="289">if %TRUE, draw the button as a separate indicator
and label; if %FALSE, draw the button like a normal button</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="toggled" c:identifier="gtk_toggle_button_toggled">
        <source-position filename="gtktogglebutton.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toggle_button" transfer-ownership="none">
            <type name="ToggleButton" c:type="GtkToggleButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="active"
                writable="1"
                transfer-ownership="none"
                setter="set_active"
                getter="get_active"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="draw-indicator"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="inconsistent"
                writable="1"
                transfer-ownership="none"
                setter="set_inconsistent"
                getter="get_inconsistent"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="button">
        <type name="Button" c:type="GtkButton"/>
      </field>
      <field name="active" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="draw_indicator" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="inconsistent" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="toggled" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ToggleButtonClass"
            c:type="GtkToggleButtonClass"
            glib:is-gtype-struct-for="ToggleButton">
      <source-position filename="gtktogglebutton.h" line="71"/>
      <field name="parent_class">
        <type name="ButtonClass" c:type="GtkButtonClass"/>
      </field>
      <field name="toggled">
        <callback name="toggled">
          <source-position filename="gtktogglebutton.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="toggle_button" transfer-ownership="none">
              <type name="ToggleButton" c:type="GtkToggleButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktogglebutton.h" line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktogglebutton.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktogglebutton.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktogglebutton.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="ToggleToolButton"
           c:symbol-prefix="toggle_tool_button"
           c:type="GtkToggleToolButton"
           parent="ToolButton"
           glib:type-name="GtkToggleToolButton"
           glib:get-type="gtk_toggle_tool_button_get_type"
           glib:type-struct="ToggleToolButtonClass">
      <source-position filename="gtktoggletoolbutton.h" line="65"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <constructor name="new"
                   c:identifier="gtk_toggle_tool_button_new"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="360">Returns a new #GtkToggleToolButton</doc>
        <source-position filename="gtktoggletoolbutton.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoggletoolbutton.c"
               line="365">a newly created #GtkToggleToolButton</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_stock"
                   c:identifier="gtk_toggle_tool_button_new_from_stock"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="380">Creates a new #GtkToggleToolButton containing the image and text from a
stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK
and #GTK_STOCK_APPLY.

It is an error if @stock_id is not a name of a stock item.</doc>
        <source-position filename="gtktoggletoolbutton.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoggletoolbutton.c"
               line="390">A new #GtkToggleToolButton</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggletoolbutton.c"
                 line="382">the name of the stock item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="toggled">
        <source-position filename="gtktoggletoolbutton.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_active"
              c:identifier="gtk_toggle_tool_button_get_active"
              glib:get-property="active"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="431">Queries a #GtkToggleToolButton and returns its current state.
Returns %TRUE if the toggle button is pressed in and %FALSE if it is raised.</doc>
        <source-position filename="gtktoggletoolbutton.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoggletoolbutton.c"
               line="438">%TRUE if the toggle tool button is pressed in, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggletoolbutton.c"
                 line="433">a #GtkToggleToolButton</doc>
            <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active"
              c:identifier="gtk_toggle_tool_button_set_active"
              glib:set-property="active"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="408">Sets the status of the toggle tool button. Set to %TRUE if you
want the GtkToggleButton to be 'pressed in', and %FALSE to raise it.
This action causes the toggled signal to be emitted.</doc>
        <source-position filename="gtktoggletoolbutton.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggletoolbutton.c"
                 line="410">a #GtkToggleToolButton</doc>
            <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/>
          </instance-parameter>
          <parameter name="is_active" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoggletoolbutton.c"
                 line="411">whether @button should be active</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="active"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                setter="set_active"
                getter="get_active"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="104">If the toggle tool button should be pressed in or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="ToolButton" c:type="GtkToolButton"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ToggleToolButtonPrivate"
              c:type="GtkToggleToolButtonPrivate*"/>
      </field>
      <glib:signal name="toggled" when="first">
        <doc xml:space="preserve"
             filename="gtktoggletoolbutton.c"
             line="119">Emitted whenever the toggle tool button changes state.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ToggleToolButtonClass"
            c:type="GtkToggleToolButtonClass"
            glib:is-gtype-struct-for="ToggleToolButton">
      <source-position filename="gtktoggletoolbutton.h" line="65"/>
      <field name="parent_class">
        <type name="ToolButtonClass" c:type="GtkToolButtonClass"/>
      </field>
      <field name="toggled">
        <callback name="toggled">
          <source-position filename="gtktoggletoolbutton.h" line="58"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="button" transfer-ownership="none">
              <type name="ToggleToolButton" c:type="GtkToggleToolButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoggletoolbutton.h" line="61"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoggletoolbutton.h" line="62"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoggletoolbutton.h" line="63"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktoggletoolbutton.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ToggleToolButtonPrivate"
            c:type="GtkToggleToolButtonPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoggletoolbutton.h" line="43"/>
    </record>
    <class name="ToolButton"
           c:symbol-prefix="tool_button"
           c:type="GtkToolButton"
           parent="ToolItem"
           glib:type-name="GtkToolButton"
           glib:get-type="gtk_tool_button_get_type"
           glib:type-struct="ToolButtonClass">
      <source-position filename="gtktoolbutton.h" line="67"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_tool_button_new" version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="931">Creates a new %GtkToolButton using @icon_widget as icon and @label as
label.</doc>
        <source-position filename="gtktoolbutton.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="939">A new #GtkToolButton</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <parameter name="icon_widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="934">a #GtkMisc widget that will be used as icon widget, or %NULL</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="933">a string that will be used as label, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_stock"
                   c:identifier="gtk_tool_button_new_from_stock"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="903">Creates a new #GtkToolButton containing the image and text from a
stock item. Some stock ids have preprocessor macros like #GTK_STOCK_OK
and #GTK_STOCK_APPLY.

It is an error if @stock_id is not a name of a stock item.</doc>
        <source-position filename="gtktoolbutton.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="913">A new #GtkToolButton</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="905">the name of the stock item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="clicked">
        <source-position filename="gtktoolbutton.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_icon_name"
              c:identifier="gtk_tool_button_get_icon_name"
              glib:get-property="icon-name"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1152">Returns the name of the themed icon for the tool button,
see gtk_tool_button_set_icon_name().</doc>
        <source-position filename="gtktoolbutton.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1159">the icon name or %NULL if the tool button has
no themed icon</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1154">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_widget"
              c:identifier="gtk_tool_button_get_icon_widget"
              glib:get-property="icon-widget"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1272">Return the widget used as icon widget on @button.
See gtk_tool_button_set_icon_widget().</doc>
        <source-position filename="gtktoolbutton.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1279">The widget used as icon
    on @button, or %NULL.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1274">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="gtk_tool_button_get_label"
              glib:get-property="label"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1000">Returns the label used by the tool button, or %NULL if the tool button
doesn't have a label. or uses a the label from a stock item. The returned
string is owned by GTK+, and must not be modified or freed.</doc>
        <source-position filename="gtktoolbutton.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1008">The label, or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1002">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label_widget"
              c:identifier="gtk_tool_button_get_label_widget"
              glib:get-property="label-widget"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1252">Returns the widget used as label on @button.
See gtk_tool_button_set_label_widget().</doc>
        <source-position filename="gtktoolbutton.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1259">The widget used as label
    on @button, or %NULL.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1254">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stock_id"
              c:identifier="gtk_tool_button_get_stock_id"
              glib:get-property="stock-id"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1102">Returns the name of the stock item. See gtk_tool_button_set_stock_id().
The returned string is owned by GTK+ and must not be freed or modifed.</doc>
        <source-position filename="gtktoolbutton.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1109">the name of the stock item for @button.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1104">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_underline"
              c:identifier="gtk_tool_button_get_use_underline"
              glib:get-property="use-underline"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1053">Returns whether underscores in the label property are used as mnemonics
on menu items on the overflow menu. See gtk_tool_button_set_use_underline().</doc>
        <source-position filename="gtktoolbutton.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbutton.c"
               line="1060">%TRUE if underscores in the label property are used as
mnemonics on menu items on the overflow menu.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1055">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gtk_tool_button_set_icon_name"
              glib:set-property="icon-name"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1121">Sets the icon for the tool button from a named themed icon.
See the docs for #GtkIconTheme for more details.
The "icon_name" property only has an effect if not
overridden by non-%NULL "label", "icon_widget" and "stock_id"
properties.</doc>
        <source-position filename="gtktoolbutton.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1123">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1124">the name of the themed icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_widget"
              c:identifier="gtk_tool_button_set_icon_widget"
              glib:set-property="icon-widget"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1172">Sets @icon as the widget used as icon on @button. If @icon_widget is
%NULL the icon is determined by the "stock_id" property. If the
"stock_id" property is also %NULL, @button will not have an icon.</doc>
        <source-position filename="gtktoolbutton.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1174">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="icon_widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1175">the widget used as icon, or %NULL</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="gtk_tool_button_set_label"
              glib:set-property="label"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="959">Sets @label as the label used for the tool button. The "label" property
only has an effect if not overridden by a non-%NULL "label_widget" property.
If both the "label_widget" and "label" properties are %NULL, the label
is determined by the "stock_id" property. If the "stock_id" property is also
%NULL, @button will not have a label.</doc>
        <source-position filename="gtktoolbutton.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="961">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="label"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="962">a string that will be used as label, or %NULL.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_widget"
              c:identifier="gtk_tool_button_set_label_widget"
              glib:set-property="label-widget"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1211">Sets @label_widget as the widget that will be used as the label
for @button. If @label_widget is %NULL the "label" property is used
as label. If "label" is also %NULL, the label in the stock item
determined by the "stock_id" property is used as label. If
"stock_id" is also %NULL, @button does not have a label.</doc>
        <source-position filename="gtktoolbutton.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1213">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="label_widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1214">the widget used as label, or %NULL</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stock_id"
              c:identifier="gtk_tool_button_set_stock_id"
              glib:set-property="stock-id"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1073">Sets the name of the stock item. See gtk_tool_button_new_from_stock().
The stock_id property only has an effect if not
overridden by non-%NULL "label" and "icon_widget" properties.</doc>
        <source-position filename="gtktoolbutton.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1075">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="stock_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1076">a name of a stock item, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_underline"
              c:identifier="gtk_tool_button_set_use_underline"
              glib:set-property="use-underline"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="1020">If set, an underline in the label property indicates that the next character
should be used for the mnemonic accelerator key in the overflow menu. For
example, if the label property is "_Open" and @use_underline is %TRUE,
the label on the tool button will be "Open" and the item on the overflow
menu will have an underlined 'O'.

Labels shown on tool buttons never have mnemonics on them; this property
only affects the menu item on the overflow menu.</doc>
        <source-position filename="gtktoolbutton.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1022">a #GtkToolButton</doc>
            <type name="ToolButton" c:type="GtkToolButton*"/>
          </instance-parameter>
          <parameter name="use_underline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbutton.c"
                 line="1023">whether the button label has the form "_Open"</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon-name"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="230">The name of the themed icon displayed on the item.
This property only has an effect if not overridden by "label",
"icon_widget" or "stock_id" properties.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-widget"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_widget"
                getter="get_icon_widget">
        <type name="Widget"/>
      </property>
      <property name="label"
                writable="1"
                transfer-ownership="none"
                setter="set_label"
                getter="get_label"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label-widget"
                writable="1"
                transfer-ownership="none"
                setter="set_label_widget"
                getter="get_label_widget">
        <type name="Widget"/>
      </property>
      <property name="stock-id"
                writable="1"
                transfer-ownership="none"
                setter="set_stock_id"
                getter="get_stock_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="use-underline"
                writable="1"
                transfer-ownership="none"
                setter="set_use_underline"
                getter="get_use_underline"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="ToolItem" c:type="GtkToolItem"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ToolButtonPrivate" c:type="GtkToolButtonPrivate*"/>
      </field>
      <glib:signal name="clicked" when="first" action="1">
        <doc xml:space="preserve"
             filename="gtktoolbutton.c"
             line="270">This signal is emitted when the tool button is clicked with the mouse
or activated with the keyboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ToolButtonClass"
            c:type="GtkToolButtonClass"
            glib:is-gtype-struct-for="ToolButton">
      <source-position filename="gtktoolbutton.h" line="67"/>
      <field name="parent_class">
        <type name="ToolItemClass" c:type="GtkToolItemClass"/>
      </field>
      <field name="button_type">
        <type name="GType" c:type="GType"/>
      </field>
      <field name="clicked">
        <callback name="clicked">
          <source-position filename="gtktoolbutton.h" line="60"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tool_item" transfer-ownership="none">
              <type name="ToolButton" c:type="GtkToolButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoolbutton.h" line="63"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoolbutton.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoolbutton.h" line="65"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktoolbutton.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ToolButtonPrivate"
            c:type="GtkToolButtonPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoolbutton.h" line="43"/>
    </record>
    <class name="ToolItem"
           c:symbol-prefix="tool_item"
           c:type="GtkToolItem"
           parent="Bin"
           glib:type-name="GtkToolItem"
           glib:get-type="gtk_tool_item_get_type"
           glib:type-struct="ToolItemClass">
      <doc xml:space="preserve"
           filename="gtktoolitem.c"
           line="39">#GtkToolItem&lt;!-- --&gt;s are widgets that can appear on a toolbar. To
create a toolbar item that contain something else than a button, use
gtk_tool_item_new(). Use gtk_container_add() to add a child
widget to the tool item.

For toolbar items that contain buttons, see the #GtkToolButton,
#GtkToggleToolButton and #GtkRadioToolButton classes.

See the #GtkToolbar class for a description of the toolbar widget, and
#GtkToolShell for a description of the tool shell interface.</doc>
      <source-position filename="gtktoolitem.h" line="77"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_tool_item_new" version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="687">Creates a new #GtkToolItem</doc>
        <source-position filename="gtktoolitem.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="692">the new #GtkToolItem</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
      </constructor>
      <virtual-method name="create_menu_proxy">
        <source-position filename="gtktoolitem.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_tooltip">
        <source-position filename="gtktoolitem.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="tooltips" transfer-ownership="none">
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </parameter>
          <parameter name="tip_text" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tip_private" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="toolbar_reconfigured"
                      invoker="toolbar_reconfigured"
                      version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1460">Emits the signal #GtkToolItem::toolbar_reconfigured on @tool_item.
#GtkToolbar and other #GtkToolShell implementations use this function
to notify children, when some aspect of their configuration changes.</doc>
        <source-position filename="gtktoolitem.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1462">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_ellipsize_mode"
              c:identifier="gtk_tool_item_get_ellipsize_mode"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="706">Returns the ellipsize mode used for @tool_item. Custom subclasses of
#GtkToolItem should call this function to find out how text should
be ellipsized.</doc>
        <source-position filename="gtktoolitem.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="714">a #PangoEllipsizeMode indicating how text in @tool_item
should be ellipsized.</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="708">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expand"
              c:identifier="gtk_tool_item_get_expand"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="966">Returns whether @tool_item is allocated extra space.
See gtk_tool_item_set_expand().</doc>
        <source-position filename="gtktoolitem.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="973">%TRUE if @tool_item is allocated extra space.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="968">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_homogeneous"
              c:identifier="gtk_tool_item_get_homogeneous"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1012">Returns whether @tool_item is the same size as other homogeneous
items. See gtk_tool_item_set_homogeneous().</doc>
        <source-position filename="gtktoolitem.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1019">%TRUE if the item is the same size as other homogeneous
items.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1014">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_size"
              c:identifier="gtk_tool_item_get_icon_size"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="733">Returns the icon size used for @tool_item. Custom subclasses of
#GtkToolItem should call this function to find out what size icons
they should use.</doc>
        <source-position filename="gtktoolitem.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="741">a #GtkIconSize indicating the icon size
used for @tool_item</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="735">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_important"
              c:identifier="gtk_tool_item_get_is_important"
              glib:get-property="is-important"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1032">Returns whether @tool_item is considered important. See
gtk_tool_item_set_is_important()</doc>
        <source-position filename="gtktoolitem.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1039">%TRUE if @tool_item is considered important.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1034">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orientation"
              c:identifier="gtk_tool_item_get_orientation"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="760">Returns the orientation used for @tool_item. Custom subclasses of
#GtkToolItem should call this function to find out what size icons
they should use.</doc>
        <source-position filename="gtktoolitem.h" line="119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="768">a #GtkOrientation indicating the orientation
used for @tool_item</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="762">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_proxy_menu_item"
              c:identifier="gtk_tool_item_get_proxy_menu_item"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1357">If @menu_item_id matches the string passed to
gtk_tool_item_set_proxy_menu_item() return the corresponding #GtkMenuItem.

Custom subclasses of #GtkToolItem should use this function to
update their menu item when the #GtkToolItem changes. That the
@menu_item_id&lt;!-- --&gt;s must match ensures that a #GtkToolItem
will not inadvertently change a menu item that they did not create.</doc>
        <source-position filename="gtktoolitem.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1370">The #GtkMenuItem passed to
    gtk_tool_item_set_proxy_menu_item(), if the @menu_item_id&lt;!-- --&gt;s
    match.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1359">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="menu_item_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1360">a string used to identify the menu item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_relief_style"
              c:identifier="gtk_tool_item_get_relief_style"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="830">Returns the relief style of @tool_item. See gtk_button_set_relief_style().
Custom subclasses of #GtkToolItem should call this function in the handler
of the #GtkToolItem::toolbar_reconfigured signal to find out the
relief style of buttons.</doc>
        <source-position filename="gtktoolitem.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="839">a #GtkReliefStyle indicating the relief style used
for @tool_item.</doc>
          <type name="ReliefStyle" c:type="GtkReliefStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="832">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_alignment"
              c:identifier="gtk_tool_item_get_text_alignment"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="858">Returns the text alignment used for @tool_item. Custom subclasses of
#GtkToolItem should call this function to find out how text should
be aligned.</doc>
        <source-position filename="gtktoolitem.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="866">a #gfloat indicating the horizontal text alignment
used for @tool_item</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="860">a #GtkToolItem:</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_orientation"
              c:identifier="gtk_tool_item_get_text_orientation"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="885">Returns the text orientation used for @tool_item. Custom subclasses of
#GtkToolItem should call this function to find out how text should
be orientated.</doc>
        <source-position filename="gtktoolitem.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="893">a #GtkOrientation indicating the text orientation
used for @tool_item</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="887">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_size_group"
              c:identifier="gtk_tool_item_get_text_size_group"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="912">Returns the size group used for labels in @tool_item.
Custom subclasses of #GtkToolItem should call this function
and use the size group for labels.</doc>
        <source-position filename="gtktoolitem.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="920">a #GtkSizeGroup</doc>
          <type name="SizeGroup" c:type="GtkSizeGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="914">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toolbar_style"
              c:identifier="gtk_tool_item_get_toolbar_style"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="787">Returns the toolbar style used for @tool_item. Custom subclasses of
#GtkToolItem should call this function in the handler of the
GtkToolItem::toolbar_reconfigured signal to find out in what style
the toolbar is displayed and change themselves accordingly

Possibilities are:
&lt;itemizedlist&gt;
&lt;listitem&gt; GTK_TOOLBAR_BOTH, meaning the tool item should show
both an icon and a label, stacked vertically &lt;/listitem&gt;
&lt;listitem&gt; GTK_TOOLBAR_ICONS, meaning the toolbar shows
only icons &lt;/listitem&gt;
&lt;listitem&gt; GTK_TOOLBAR_TEXT, meaning the tool item should only
show text&lt;/listitem&gt;
&lt;listitem&gt; GTK_TOOLBAR_BOTH_HORIZ, meaning the tool item should show
both an icon and a label, arranged horizontally (however, note the
#GtkToolButton::has_text_horizontally that makes tool buttons not
show labels when the toolbar style is GTK_TOOLBAR_BOTH_HORIZ.
&lt;/listitem&gt;
&lt;/itemizedlist&gt;</doc>
        <source-position filename="gtktoolitem.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="811">A #GtkToolbarStyle indicating the toolbar style used
for @tool_item.</doc>
          <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="789">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_use_drag_window"
              c:identifier="gtk_tool_item_get_use_drag_window"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1215">Returns whether @tool_item has a drag window. See
gtk_tool_item_set_use_drag_window().</doc>
        <source-position filename="gtktoolitem.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1222">%TRUE if @tool_item uses a drag window.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1217">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_horizontal"
              c:identifier="gtk_tool_item_get_visible_horizontal"
              glib:get-property="visible-horizontal"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1261">Returns whether the @tool_item is visible on toolbars that are
docked horizontally.</doc>
        <source-position filename="gtktoolitem.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1268">%TRUE if @tool_item is visible on toolbars that are
docked horizontally.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1263">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_vertical"
              c:identifier="gtk_tool_item_get_visible_vertical"
              glib:get-property="visible-vertical"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1312">Returns whether @tool_item is visible when the toolbar is docked vertically.
See gtk_tool_item_set_visible_vertical().</doc>
        <source-position filename="gtktoolitem.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1319">Whether @tool_item is visible when the toolbar is docked vertically</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1314">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rebuild_menu"
              c:identifier="gtk_tool_item_rebuild_menu"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1389">Calling this function signals to the toolbar that the
overflow menu item for @tool_item has changed. If the
overflow menu is visible when this function it called,
the menu will be rebuilt.

The function must be called when the tool item changes what it
will do in response to the #GtkToolItem::create-menu-proxy signal.</doc>
        <source-position filename="gtktoolitem.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1391">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="retrieve_proxy_menu_item"
              c:identifier="gtk_tool_item_retrieve_proxy_menu_item"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1331">Returns the #GtkMenuItem that was last set by
gtk_tool_item_set_proxy_menu_item(), ie. the #GtkMenuItem
that is going to appear in the overflow menu.</doc>
        <source-position filename="gtktoolitem.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="1339">The #GtkMenuItem that is going to appear in the
overflow menu for @tool_item.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1333">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_expand"
              c:identifier="gtk_tool_item_set_expand"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="938">Sets whether @tool_item is allocated extra space when there
is more room on the toolbar then needed for the items. The
effect is that the item gets bigger when the toolbar gets bigger
and smaller when the toolbar gets smaller.</doc>
        <source-position filename="gtktoolitem.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="940">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="941">Whether @tool_item is allocated extra space</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_homogeneous"
              c:identifier="gtk_tool_item_set_homogeneous"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="985">Sets whether @tool_item is to be allocated the same size as other
homogeneous items. The effect is that all homogeneous items will have
the same width as the widest of the items.</doc>
        <source-position filename="gtktoolitem.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="987">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="homogeneous" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="988">whether @tool_item is the same size as other homogeneous items</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_important"
              c:identifier="gtk_tool_item_set_is_important"
              glib:set-property="is-important"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1051">Sets whether @tool_item should be considered important. The #GtkToolButton
class uses this property to determine whether to show or hide its label
when the toolbar style is %GTK_TOOLBAR_BOTH_HORIZ. The result is that
only tool buttons with the "is_important" property set have labels, an
effect known as "priority text"</doc>
        <source-position filename="gtktoolitem.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1053">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="is_important" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1054">whether the tool item should be considered important</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_proxy_menu_item"
              c:identifier="gtk_tool_item_set_proxy_menu_item"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1416">Sets the #GtkMenuItem used in the toolbar overflow menu. The
@menu_item_id is used to identify the caller of this function and
should also be used with gtk_tool_item_get_proxy_menu_item().

See also #GtkToolItem::create-menu-proxy.</doc>
        <source-position filename="gtktoolitem.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1418">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="menu_item_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1419">a string used to identify @menu_item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="menu_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1420">a #GtkMenuItem to be used in the overflow menu</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip"
              c:identifier="gtk_tool_item_set_tooltip"
              version="2.4"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1097">Sets the #GtkTooltips object to be used for @tool_item, the
text to be displayed as tooltip on the item and the private text
to be used. See gtk_tooltips_set_tip().</doc>
        <doc-deprecated xml:space="preserve">Use gtk_tool_item_set_tooltip_text() instead.</doc-deprecated>
        <source-position filename="gtktoolitem.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1099">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="tooltips" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1100">The #GtkTooltips object to be used</doc>
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </parameter>
          <parameter name="tip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1101">text to be used as tooltip text for @tool_item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tip_private"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1102">text to be used as private tooltip text</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_markup"
              c:identifier="gtk_tool_item_set_tooltip_markup"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1150">Sets the markup text to be displayed as tooltip on the item.
See gtk_widget_set_tooltip_markup().</doc>
        <source-position filename="gtktoolitem.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1152">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="markup" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1153">markup text to be used as tooltip for @tool_item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_text"
              c:identifier="gtk_tool_item_set_tooltip_text"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1126">Sets the text to be displayed as tooltip on the item.
See gtk_widget_set_tooltip_text().</doc>
        <source-position filename="gtktoolitem.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1128">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1129">text to be used as tooltip for @tool_item</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_use_drag_window"
              c:identifier="gtk_tool_item_set_use_drag_window"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1174">Sets whether @tool_item has a drag window. When %TRUE the
toolitem can be used as a drag source through gtk_drag_source_set().
When @tool_item has a drag window it will intercept all events,
even those that would otherwise be sent to a child of @tool_item.</doc>
        <source-position filename="gtktoolitem.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1176">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="use_drag_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1177">Whether @tool_item has a drag window.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_horizontal"
              c:identifier="gtk_tool_item_set_visible_horizontal"
              glib:set-property="visible-horizontal"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1234">Sets whether @tool_item is visible when the toolbar is docked horizontally.</doc>
        <source-position filename="gtktoolitem.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1236">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="visible_horizontal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1237">Whether @tool_item is visible when in horizontal mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_vertical"
              c:identifier="gtk_tool_item_set_visible_vertical"
              glib:set-property="visible-vertical"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1281">Sets whether @tool_item is visible when the toolbar is docked
vertically. Some tool items, such as text entries, are too wide to be
useful on a vertically docked toolbar. If @visible_vertical is %FALSE
@tool_item will not appear on toolbars that are docked vertically.</doc>
        <source-position filename="gtktoolitem.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1283">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
          <parameter name="visible_vertical" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1284">whether @tool_item is visible when the toolbar
is in vertical mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="toolbar_reconfigured"
              c:identifier="gtk_tool_item_toolbar_reconfigured"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="1460">Emits the signal #GtkToolItem::toolbar_reconfigured on @tool_item.
#GtkToolbar and other #GtkToolShell implementations use this function
to notify children, when some aspect of their configuration changes.</doc>
        <source-position filename="gtktoolitem.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tool_item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="1462">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="is-important"
                writable="1"
                transfer-ownership="none"
                setter="set_is_important"
                getter="get_is_important"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="visible-horizontal"
                writable="1"
                transfer-ownership="none"
                setter="set_visible_horizontal"
                getter="get_visible_horizontal"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="visible-vertical"
                writable="1"
                transfer-ownership="none"
                setter="set_visible_vertical"
                getter="get_visible_vertical"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Bin" c:type="GtkBin"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ToolItemPrivate" c:type="GtkToolItemPrivate*"/>
      </field>
      <glib:signal name="create-menu-proxy" when="last">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="215">This signal is emitted when the toolbar needs information from @tool_item
about whether the item should appear in the toolbar overflow menu. In
response the tool item should either
&lt;itemizedlist&gt;
&lt;listitem&gt;call gtk_tool_item_set_proxy_menu_item() with a %NULL
pointer and return %TRUE to indicate that the item should not appear
in the overflow menu
&lt;/listitem&gt;
&lt;listitem&gt; call gtk_tool_item_set_proxy_menu_item() with a new menu
item and return %TRUE, or
&lt;/listitem&gt;
&lt;listitem&gt; return %FALSE to indicate that the signal was not
handled by the item. This means that
the item will not appear in the overflow menu unless a later handler
installs a menu item.
&lt;/listitem&gt;
&lt;/itemizedlist&gt;

The toolbar may cache the result of this signal. When the tool item changes
how it will respond to this signal it must call gtk_tool_item_rebuild_menu()
to invalidate the cache and ensure that the toolbar rebuilds its overflow
menu.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="242">%TRUE if the signal was handled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-tooltip"
                   when="last"
                   deprecated="1"
                   deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="277">This signal is emitted when the toolitem's tooltip changes.
Application developers can use gtk_tool_item_set_tooltip() to
set the item's tooltip.</doc>
        <doc-deprecated xml:space="preserve">With the new tooltip API, there is no
  need to use this signal anymore.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitem.c"
               line="288">%TRUE if the signal was handled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tooltips" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="280">the #GtkTooltips</doc>
            <type name="Tooltips"/>
          </parameter>
          <parameter name="tip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="281">the tooltip text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="tip_private" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitem.c"
                 line="282">the tooltip private text</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="toolbar-reconfigured" when="last">
        <doc xml:space="preserve"
             filename="gtktoolitem.c"
             line="253">This signal is emitted when some property of the toolbar that the
item is a child of changes. For custom subclasses of #GtkToolItem,
the default handler of this signal use the functions
&lt;itemizedlist&gt;
&lt;listitem&gt;gtk_tool_shell_get_orientation()&lt;/listitem&gt;
&lt;listitem&gt;gtk_tool_shell_get_style()&lt;/listitem&gt;
&lt;listitem&gt;gtk_tool_shell_get_icon_size()&lt;/listitem&gt;
&lt;listitem&gt;gtk_tool_shell_get_relief_style()&lt;/listitem&gt;
&lt;/itemizedlist&gt;
to find out what the toolbar should look like and change
themselves accordingly.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ToolItemClass"
            c:type="GtkToolItemClass"
            glib:is-gtype-struct-for="ToolItem">
      <source-position filename="gtktoolitem.h" line="77"/>
      <field name="parent_class">
        <type name="BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="create_menu_proxy">
        <callback name="create_menu_proxy">
          <source-position filename="gtktoolitem.h" line="61"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tool_item" transfer-ownership="none">
              <type name="ToolItem" c:type="GtkToolItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="toolbar_reconfigured">
        <callback name="toolbar_reconfigured">
          <source-position filename="gtktoolitem.h" line="62"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tool_item" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolitem.c"
                   line="1462">a #GtkToolItem</doc>
              <type name="ToolItem" c:type="GtkToolItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_tooltip">
        <callback name="set_tooltip">
          <source-position filename="gtktoolitem.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tool_item" transfer-ownership="none">
              <type name="ToolItem" c:type="GtkToolItem*"/>
            </parameter>
            <parameter name="tooltips" transfer-ownership="none">
              <type name="Tooltips" c:type="GtkTooltips*"/>
            </parameter>
            <parameter name="tip_text" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="tip_private" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoolitem.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoolitem.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoolitem.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktoolitem.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="ToolItemGroup"
           c:symbol-prefix="tool_item_group"
           c:type="GtkToolItemGroup"
           version="2.20"
           parent="Container"
           glib:type-name="GtkToolItemGroup"
           glib:get-type="gtk_tool_item_group_get_type"
           glib:type-struct="ToolItemGroupClass">
      <doc xml:space="preserve"
           filename="gtktoolitemgroup.c"
           line="44">A #GtkToolItemGroup is used together with #GtkToolPalette to add
#GtkToolItem&lt;!-- --&gt;s to a palette like container with different
categories and drag and drop support.</doc>
      <source-position filename="gtktoolitemgroup.h" line="59"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="ToolShell"/>
      <constructor name="new"
                   c:identifier="gtk_tool_item_group_new"
                   version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1634">Creates a new tool item group with label @label.</doc>
        <source-position filename="gtktoolitemgroup.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="1640">a new #GtkToolItemGroup.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1636">the label of the new group</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_collapsed"
              c:identifier="gtk_tool_item_group_get_collapsed"
              glib:get-property="collapsed"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1967">Gets whether @group is collapsed or expanded.</doc>
        <source-position filename="gtktoolitemgroup.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="1973">%TRUE if @group is collapsed, %FALSE if it is expanded</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1969">a GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_drop_item"
              c:identifier="gtk_tool_item_group_get_drop_item"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2177">Gets the tool item at position (x, y).</doc>
        <source-position filename="gtktoolitemgroup.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="2185">the #GtkToolItem at position (x, y)</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2179">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2180">the x position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2181">the y position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ellipsize"
              c:identifier="gtk_tool_item_group_get_ellipsize"
              glib:get-property="ellipsize"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1985">Gets the ellipsization mode of @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="1991">the #PangoEllipsizeMode of @group</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1987">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_header_relief"
              c:identifier="gtk_tool_item_group_get_header_relief"
              glib:get-property="header-relief"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2003">Gets the relief mode of the header button of @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="2009">the #GtkReliefStyle</doc>
          <type name="ReliefStyle" c:type="GtkReliefStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2005">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_item_position"
              c:identifier="gtk_tool_item_group_get_item_position"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2109">Gets the position of @item in @group as index.</doc>
        <source-position filename="gtktoolitemgroup.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="2116">the index of @item in @group or -1 if @item is no child of @group</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2111">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2112">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="gtk_tool_item_group_get_label"
              glib:get-property="label"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1921">Gets the label of @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="1927">the label of @group. The label is an internal string of @group
    and must not be modified. Note that %NULL is returned if a custom
    label has been set with gtk_tool_item_group_set_label_widget()</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1923">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label_widget"
              c:identifier="gtk_tool_item_group_get_label_widget"
              glib:get-property="label-widget"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1948">Gets the label widget of @group.
See gtk_tool_item_group_set_label_widget().</doc>
        <source-position filename="gtktoolitemgroup.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="1955">the label widget of @group</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1950">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_items"
              c:identifier="gtk_tool_item_group_get_n_items"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2135">Gets the number of tool items in @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="2141">the number of tool items in @group</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2137">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_item"
              c:identifier="gtk_tool_item_group_get_nth_item"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2153">Gets the tool item at @index in group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolitemgroup.c"
               line="2160">the #GtkToolItem at index</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2155">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2156">the index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert"
              c:identifier="gtk_tool_item_group_insert"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2021">Inserts @item at @position in the list of children of @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2023">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2024">the #GtkToolItem to insert into @group</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2025">the position of @item in @group, starting with 0.
    The position -1 means end of list.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_collapsed"
              c:identifier="gtk_tool_item_group_set_collapsed"
              glib:set-property="collapsed"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1846">Sets whether the @group should be collapsed or expanded.</doc>
        <source-position filename="gtktoolitemgroup.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1848">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="collapsed" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1849">whether the @group should be collapsed or expanded</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ellipsize"
              c:identifier="gtk_tool_item_group_set_ellipsize"
              glib:set-property="ellipsize"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1897">Sets the ellipsization mode which should be used by labels in @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1899">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="ellipsize" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1900">the #PangoEllipsizeMode labels in @group should use</doc>
            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_header_relief"
              c:identifier="gtk_tool_item_group_set_header_relief"
              glib:set-property="header-relief"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1735">Set the button relief of the group header.
See gtk_button_set_relief() for details.</doc>
        <source-position filename="gtktoolitemgroup.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1737">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1738">the #GtkReliefStyle</doc>
            <type name="ReliefStyle" c:type="GtkReliefStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_item_position"
              c:identifier="gtk_tool_item_group_set_item_position"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="2066">Sets the position of @item in the list of children of @group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2068">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2069">the #GtkToolItem to move to a new position, should
    be a child of @group.</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="2071">the new position of @item in @group, starting with 0.
    The position -1 means end of list.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="gtk_tool_item_group_set_label"
              glib:set-property="label"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1650">Sets the label of the tool item group. The label is displayed in the header
of the group.</doc>
        <source-position filename="gtktoolitemgroup.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1652">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1653">the new human-readable label of of the group</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label_widget"
              c:identifier="gtk_tool_item_group_set_label_widget"
              glib:set-property="label-widget"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolitemgroup.c"
             line="1679">Sets the label of the tool item group.
The label widget is displayed in the header of the group, in place
of the usual label.</doc>
        <source-position filename="gtktoolitemgroup.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1681">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </instance-parameter>
          <parameter name="label_widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolitemgroup.c"
                 line="1682">the widget to be displayed in place of the usual label</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <property name="collapsed"
                writable="1"
                transfer-ownership="none"
                setter="set_collapsed"
                getter="get_collapsed"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="ellipsize"
                writable="1"
                transfer-ownership="none"
                setter="set_ellipsize"
                getter="get_ellipsize"
                default-value="PANGO_ELLIPSIZE_NONE">
        <type name="Pango.EllipsizeMode"/>
      </property>
      <property name="header-relief"
                writable="1"
                transfer-ownership="none"
                setter="set_header_relief"
                getter="get_header_relief"
                default-value="GTK_RELIEF_NORMAL">
        <type name="ReliefStyle"/>
      </property>
      <property name="label"
                writable="1"
                transfer-ownership="none"
                setter="set_label"
                getter="get_label">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label-widget"
                writable="1"
                transfer-ownership="none"
                setter="set_label_widget"
                getter="get_label_widget">
        <type name="Widget"/>
      </property>
      <field name="parent_instance">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="priv">
        <type name="ToolItemGroupPrivate" c:type="GtkToolItemGroupPrivate*"/>
      </field>
    </class>
    <record name="ToolItemGroupClass"
            c:type="GtkToolItemGroupClass"
            glib:is-gtype-struct-for="ToolItemGroup">
      <source-position filename="gtktoolitemgroup.h" line="59"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
    </record>
    <record name="ToolItemGroupPrivate"
            c:type="GtkToolItemGroupPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoolitemgroup.h" line="43"/>
    </record>
    <record name="ToolItemPrivate"
            c:type="GtkToolItemPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoolitem.h" line="46"/>
    </record>
    <class name="ToolPalette"
           c:symbol-prefix="tool_palette"
           c:type="GtkToolPalette"
           version="2.20"
           parent="Container"
           glib:type-name="GtkToolPalette"
           glib:get-type="gtk_tool_palette_get_type"
           glib:type-struct="ToolPaletteClass">
      <doc xml:space="preserve"
           filename="gtktoolpalette.c"
           line="41">A #GtkToolPalette allows you to add #GtkToolItem&lt;!-- --&gt;s to a palette-like
container with different categories and drag and drop support.

A #GtkToolPalette is created with a call to gtk_tool_palette_new().

#GtkToolItem&lt;!-- --&gt;s cannot be added directly to a #GtkToolPalette -
instead they are added to a #GtkToolItemGroup which can than be added
to a #GtkToolPalette. To add a #GtkToolItemGroup to a #GtkToolPalette,
use gtk_container_add().

|[
GtkWidget *palette, *group;
GtkToolItem *item;

palette = gtk_tool_palette_new ();
group = gtk_tool_item_group_new (_("Test Category"));
gtk_container_add (GTK_CONTAINER (palette), group);

item = gtk_tool_button_new_from_stock (GTK_STOCK_OK);
gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
]|

The easiest way to use drag and drop with #GtkToolPalette is to call
gtk_tool_palette_add_drag_dest() with the desired drag source @palette
and the desired drag target @widget. Then gtk_tool_palette_get_drag_item()
can be used to get the dragged item in the #GtkWidget::drag-data-received
signal handler of the drag target.

|[
static void
passive_canvas_drag_data_received (GtkWidget        *widget,
                                   GdkDragContext   *context,
                                   gint              x,
                                   gint              y,
                                   GtkSelectionData *selection,
                                   guint             info,
                                   guint             time,
                                   gpointer          data)
{
  GtkWidget *palette;
  GtkWidget *item;

  /&lt;!-- --&gt;* Get the dragged item *&lt;!-- --&gt;/
  palette = gtk_widget_get_ancestor (gtk_drag_get_source_widget (context),
                                     GTK_TYPE_TOOL_PALETTE);
  if (palette != NULL)
    item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette),
                                           selection);

  /&lt;!-- --&gt;* Do something with item *&lt;!-- --&gt;/
}

GtkWidget *target, palette;

palette = gtk_tool_palette_new ();
target = gtk_drawing_area_new ();

g_signal_connect (G_OBJECT (target), "drag-data-received",
                  G_CALLBACK (passive_canvas_drag_data_received), NULL);
gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), target,
                                GTK_DEST_DEFAULT_ALL,
                                GTK_TOOL_PALETTE_DRAG_ITEMS,
                                GDK_ACTION_COPY);
]|</doc>
      <source-position filename="gtktoolpalette.h" line="86"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new"
                   c:identifier="gtk_tool_palette_new"
                   version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1064">Creates a new tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1069">a new #GtkToolPalette</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <function name="get_drag_target_group"
                c:identifier="gtk_tool_palette_get_drag_target_group"
                version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1862">Get the target entry for a dragged #GtkToolItemGroup.</doc>
        <source-position filename="gtktoolpalette.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1867">the #GtkTargetEntry for a dragged group</doc>
          <type name="TargetEntry" c:type="const GtkTargetEntry*"/>
        </return-value>
      </function>
      <function name="get_drag_target_item"
                c:identifier="gtk_tool_palette_get_drag_target_item"
                version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1847">Gets the target entry for a dragged #GtkToolItem.</doc>
        <source-position filename="gtktoolpalette.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1852">the #GtkTargetEntry for a dragged item.</doc>
          <type name="TargetEntry" c:type="const GtkTargetEntry*"/>
        </return-value>
      </function>
      <method name="add_drag_dest"
              c:identifier="gtk_tool_palette_add_drag_dest"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1689">Sets @palette as drag source (see gtk_tool_palette_set_drag_source())
and sets @widget as a drag destination for drags from @palette.
See gtk_drag_dest_set().</doc>
        <source-position filename="gtktoolpalette.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1691">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1692">a #GtkWidget which should be a drag destination for @palette</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1693">the flags that specify what actions GTK+ should take for drops
    on that widget</doc>
            <type name="DestDefaults" c:type="GtkDestDefaults"/>
          </parameter>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1695">the #GtkToolPaletteDragTarget&lt;!-- --&gt;s which the widget
    should support</doc>
            <type name="ToolPaletteDragTargets"
                  c:type="GtkToolPaletteDragTargets"/>
          </parameter>
          <parameter name="actions" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1697">the #GdkDragAction&lt;!-- --&gt;s which the widget should suppport</doc>
            <type name="Gdk.DragAction" c:type="GdkDragAction"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_drag_item"
              c:identifier="gtk_tool_palette_get_drag_item"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1614">Get the dragged item from the selection.
This could be a #GtkToolItem or a #GtkToolItemGroup.</doc>
        <source-position filename="gtktoolpalette.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1622">the dragged item in selection</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1616">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1617">a #GtkSelectionData</doc>
            <type name="SelectionData" c:type="const GtkSelectionData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_drop_group"
              c:identifier="gtk_tool_palette_get_drop_group"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1564">Gets the group at position (x, y).</doc>
        <source-position filename="gtktoolpalette.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1572">the #GtkToolItemGroup at position or %NULL
    if there is no such group</doc>
          <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1566">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1567">the x position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1568">the y position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_drop_item"
              c:identifier="gtk_tool_palette_get_drop_item"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1535">Gets the item at position (x, y).
See gtk_tool_palette_get_drop_group().</doc>
        <source-position filename="gtktoolpalette.h" line="118"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1544">the #GtkToolItem at position or %NULL if there is no such item</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1537">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1538">the x position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1539">the y position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_exclusive"
              c:identifier="gtk_tool_palette_get_exclusive"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1475">Gets whether @group is exclusive or not.
See gtk_tool_palette_set_exclusive().</doc>
        <source-position filename="gtktoolpalette.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1483">%TRUE if @group is exclusive</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1477">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1478">a #GtkToolItemGroup which is a child of palette</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_expand"
              c:identifier="gtk_tool_palette_get_expand"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1505">Gets whether group should be given extra space.
See gtk_tool_palette_set_expand().</doc>
        <source-position filename="gtktoolpalette.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1513">%TRUE if group should be given extra space, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1507">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1508">a #GtkToolItemGroup which is a child of palette</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group_position"
              c:identifier="gtk_tool_palette_get_group_position"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1444">Gets the position of @group in @palette as index.
See gtk_tool_palette_set_group_position().</doc>
        <source-position filename="gtktoolpalette.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1452">the index of group or -1 if @group is not a child of @palette</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1446">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1447">a #GtkToolItemGroup</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hadjustment"
              c:identifier="gtk_tool_palette_get_hadjustment"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1885">Gets the horizontal adjustment of the tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1891">the horizontal adjustment of @palette</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1887">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_size"
              c:identifier="gtk_tool_palette_get_icon_size"
              glib:get-property="icon-size"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1242">Gets the size of icons in the tool palette.
See gtk_tool_palette_set_icon_size().</doc>
        <source-position filename="gtktoolpalette.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1249">the #GtkIconSize of icons in the tool palette</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1244">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="gtk_tool_palette_get_style"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1261">Gets the style (icons, text or both) of items in the tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1267">the #GtkToolbarStyle of items in the tool palette.</doc>
          <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1263">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vadjustment"
              c:identifier="gtk_tool_palette_get_vadjustment"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1903">Gets the vertical adjustment of the tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolpalette.c"
               line="1909">the vertical adjustment of @palette</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1905">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_drag_source"
              c:identifier="gtk_tool_palette_set_drag_source"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1653">Sets the tool palette as a drag source.
Enables all groups and items in the tool palette as drag sources
on button 1 and button 3 press with copy and move actions.
See gtk_drag_source_set().</doc>
        <source-position filename="gtktoolpalette.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1655">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1656">the #GtkToolPaletteDragTarget&lt;!-- --&gt;s
    which the widget should support</doc>
            <type name="ToolPaletteDragTargets"
                  c:type="GtkToolPaletteDragTargets"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_exclusive"
              c:identifier="gtk_tool_palette_set_exclusive"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1358">Sets whether the group should be exclusive or not.
If an exclusive group is expanded all other groups are collapsed.</doc>
        <source-position filename="gtktoolpalette.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1360">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1361">a #GtkToolItemGroup which is a child of palette</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
          <parameter name="exclusive" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1362">whether the group should be exclusive or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expand"
              c:identifier="gtk_tool_palette_set_expand"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1410">Sets whether the group should be given extra space.</doc>
        <source-position filename="gtktoolpalette.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1412">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1413">a #GtkToolItemGroup which is a child of palette</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1414">whether the group should be given extra space</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_group_position"
              c:identifier="gtk_tool_palette_set_group_position"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1289">Sets the position of the group as an index of the tool palette.
If position is 0 the group will become the first child, if position is
-1 it will become the last child.</doc>
        <source-position filename="gtktoolpalette.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1291">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1292">a #GtkToolItemGroup which is a child of palette</doc>
            <type name="ToolItemGroup" c:type="GtkToolItemGroup*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1293">a new index for group</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_size"
              c:identifier="gtk_tool_palette_set_icon_size"
              glib:set-property="icon-size"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1079">Sets the size of icons in the tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1081">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="icon_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1082">the #GtkIconSize that icons in the tool
    palette shall have</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style"
              c:identifier="gtk_tool_palette_set_style"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1187">Sets the style (text, icons or both) of items in the tool palette.</doc>
        <source-position filename="gtktoolpalette.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1189">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1190">the #GtkToolbarStyle that items in the tool palette shall have</doc>
            <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_icon_size"
              c:identifier="gtk_tool_palette_unset_icon_size"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1124">Unsets the tool palette icon size set with gtk_tool_palette_set_icon_size(),
so that user preferences will be used to determine the icon size.</doc>
        <source-position filename="gtktoolpalette.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1126">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_style"
              c:identifier="gtk_tool_palette_unset_style"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1207">Unsets a toolbar style set with gtk_tool_palette_set_style(),
so that user preferences will be used to determine the toolbar style.</doc>
        <source-position filename="gtktoolpalette.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="palette" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="1209">a #GtkToolPalette</doc>
            <type name="ToolPalette" c:type="GtkToolPalette*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="icon-size"
                version="2.20"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_size"
                getter="get_icon_size"
                default-value="GTK_ICON_SIZE_SMALL_TOOLBAR">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="975">The size of the icons in a tool palette is normally determined by
the #GtkSettings:toolbar-icon-size setting. When this property is set,
it overrides the setting.

This should only be used for special-purpose tool palettes, normal
application tool palettes should respect the user preferences for the
size of icons.</doc>
        <type name="IconSize"/>
      </property>
      <property name="icon-size-set"
                version="2.20"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="997">Is %TRUE if the #GtkToolPalette:icon-size property has been set.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="toolbar-style"
                version="2.20"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_TOOLBAR_ICONS">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="1012">The style of items in the tool palette.</doc>
        <type name="ToolbarStyle"/>
      </property>
      <field name="parent_instance">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="priv">
        <type name="ToolPalettePrivate" c:type="GtkToolPalettePrivate*"/>
      </field>
      <glib:signal name="set-scroll-adjustments"
                   when="last"
                   action="1"
                   version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolpalette.c"
             line="949">Set the scroll adjustments for the viewport.
Usually scrolled containers like GtkScrolledWindow will emit this
signal to connect two instances of GtkScrollbar to the scroll
directions of the GtkToolpalette.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="hadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="952">The horizontal adjustment</doc>
            <type name="Adjustment"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolpalette.c"
                 line="953">The vertical adjustment</doc>
            <type name="Adjustment"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ToolPaletteClass"
            c:type="GtkToolPaletteClass"
            glib:is-gtype-struct-for="ToolPalette">
      <source-position filename="gtktoolpalette.h" line="86"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="set_scroll_adjustments">
        <callback name="set_scroll_adjustments">
          <source-position filename="gtktoolpalette.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoolpalette.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoolpalette.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoolpalette.h" line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktoolpalette.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved5" introspectable="0">
        <callback name="_gtk_reserved5">
          <source-position filename="gtktoolpalette.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved6" introspectable="0">
        <callback name="_gtk_reserved6">
          <source-position filename="gtktoolpalette.h" line="85"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="ToolPaletteDragTargets"
              glib:type-name="GtkToolPaletteDragTargets"
              glib:get-type="gtk_tool_palette_drag_targets_get_type"
              c:type="GtkToolPaletteDragTargets">
      <doc xml:space="preserve"
           filename="gtktoolpalette.h"
           line="46">Flags used to specify the supported drag targets.</doc>
      <member name="items"
              value="1"
              c:identifier="GTK_TOOL_PALETTE_DRAG_ITEMS"
              glib:nick="items"
              glib:name="GTK_TOOL_PALETTE_DRAG_ITEMS">
        <doc xml:space="preserve"
             filename="gtktoolpalette.h"
             line="48">Support drag of items.</doc>
      </member>
      <member name="groups"
              value="2"
              c:identifier="GTK_TOOL_PALETTE_DRAG_GROUPS"
              glib:nick="groups"
              glib:name="GTK_TOOL_PALETTE_DRAG_GROUPS">
        <doc xml:space="preserve"
             filename="gtktoolpalette.h"
             line="49">Support drag of groups.</doc>
      </member>
    </bitfield>
    <record name="ToolPalettePrivate"
            c:type="GtkToolPalettePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoolpalette.h" line="44"/>
    </record>
    <interface name="ToolShell"
               c:symbol-prefix="tool_shell"
               c:type="GtkToolShell"
               glib:type-name="GtkToolShell"
               glib:get-type="gtk_tool_shell_get_type"
               glib:type-struct="ToolShellIface">
      <doc xml:space="preserve"
           filename="gtktoolshell.c"
           line="29">The #GtkToolShell interface allows container widgets to provide additional
information when embedding #GtkToolItem widgets.</doc>
      <source-position filename="gtktoolshell.h" line="75"/>
      <prerequisite name="Widget"/>
      <virtual-method name="get_ellipsize_mode"
                      invoker="get_ellipsize_mode"
                      version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="205">Retrieves the current ellipsize mode for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_ellipsize_mode()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="213">the current ellipsize mode of @shell</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="207">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_icon_size">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="48">mandatory implementation of gtk_tool_shell_get_icon_size().</doc>
        <source-position filename="gtktoolshell.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="IconSize" c:type="GtkIconSize"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_orientation"
                      invoker="get_orientation"
                      version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="79">Retrieves the current orientation for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_orientation()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="87">the current orientation of @shell</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="81">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_relief_style"
                      invoker="get_relief_style"
                      version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="115">Returns the relief style of buttons on @shell. Tool items must not call this
function directly, but rely on gtk_tool_item_get_relief_style() instead.</doc>
        <source-position filename="gtktoolshell.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="122">The relief style of buttons on @shell.</doc>
          <type name="ReliefStyle" c:type="GtkReliefStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="117">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_style" invoker="get_style" version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="97">Retrieves whether the tool shell has text, icons, or both. Tool items must
not call this function directly, but rely on gtk_tool_item_get_style()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="105">the current style of @shell</doc>
          <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="99">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_alignment"
                      invoker="get_text_alignment"
                      version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="182">Retrieves the current text alignment for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_alignment()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="190">the current text alignment of @shell</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="184">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_orientation"
                      invoker="get_text_orientation"
                      version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="159">Retrieves the current text orientation for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_orientation()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="167">the current text orientation of @shell</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="161">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_size_group"
                      invoker="get_text_size_group"
                      version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="228">Retrieves the current text size group for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_size_group()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="236">the current text size group of @shell</doc>
          <type name="SizeGroup" c:type="GtkSizeGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="230">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="rebuild_menu"
                      invoker="rebuild_menu"
                      version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="137">Calling this function signals the tool shell that the overflow menu item for
tool items have changed. If there is an overflow menu and if it is visible
when this function it called, the menu will be rebuilt.

Tool items must not call this function directly, but rely on
gtk_tool_item_rebuild_menu() instead.</doc>
        <source-position filename="gtktoolshell.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="139">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_ellipsize_mode"
              c:identifier="gtk_tool_shell_get_ellipsize_mode"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="205">Retrieves the current ellipsize mode for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_ellipsize_mode()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="213">the current ellipsize mode of @shell</doc>
          <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="207">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_size"
              c:identifier="gtk_tool_shell_get_icon_size"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="62">Retrieves the icon size for the tool shell. Tool items must not call this
function directly, but rely on gtk_tool_item_get_icon_size() instead.</doc>
        <source-position filename="gtktoolshell.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="69">the current size for icons of @shell</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="64">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orientation"
              c:identifier="gtk_tool_shell_get_orientation"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="79">Retrieves the current orientation for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_orientation()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="87">the current orientation of @shell</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="81">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_relief_style"
              c:identifier="gtk_tool_shell_get_relief_style"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="115">Returns the relief style of buttons on @shell. Tool items must not call this
function directly, but rely on gtk_tool_item_get_relief_style() instead.</doc>
        <source-position filename="gtktoolshell.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="122">The relief style of buttons on @shell.</doc>
          <type name="ReliefStyle" c:type="GtkReliefStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="117">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="gtk_tool_shell_get_style"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="97">Retrieves whether the tool shell has text, icons, or both. Tool items must
not call this function directly, but rely on gtk_tool_item_get_style()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="105">the current style of @shell</doc>
          <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="99">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_alignment"
              c:identifier="gtk_tool_shell_get_text_alignment"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="182">Retrieves the current text alignment for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_alignment()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="190">the current text alignment of @shell</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="184">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_orientation"
              c:identifier="gtk_tool_shell_get_text_orientation"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="159">Retrieves the current text orientation for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_orientation()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="167">the current text orientation of @shell</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="161">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_text_size_group"
              c:identifier="gtk_tool_shell_get_text_size_group"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="228">Retrieves the current text size group for the tool shell. Tool items must not
call this function directly, but rely on gtk_tool_item_get_text_size_group()
instead.</doc>
        <source-position filename="gtktoolshell.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolshell.c"
               line="236">the current text size group of @shell</doc>
          <type name="SizeGroup" c:type="GtkSizeGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="230">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="rebuild_menu"
              c:identifier="gtk_tool_shell_rebuild_menu"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolshell.c"
             line="137">Calling this function signals the tool shell that the overflow menu item for
tool items have changed. If there is an overflow menu and if it is visible
when this function it called, the menu will be rebuilt.

Tool items must not call this function directly, but rely on
gtk_tool_item_rebuild_menu() instead.</doc>
        <source-position filename="gtktoolshell.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="139">a #GtkToolShell</doc>
            <type name="ToolShell" c:type="GtkToolShell*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="ToolShellIface"
            c:type="GtkToolShellIface"
            glib:is-gtype-struct-for="ToolShell">
      <doc xml:space="preserve"
           filename="gtktoolshell.h"
           line="46">Virtual function table for the #GtkToolShell interface.</doc>
      <source-position filename="gtktoolshell.h" line="75"/>
      <field name="g_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_icon_size">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="48">mandatory implementation of gtk_tool_shell_get_icon_size().</doc>
        <callback name="get_icon_size">
          <source-position filename="gtktoolshell.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="IconSize" c:type="GtkIconSize"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_orientation">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="49">mandatory implementation of gtk_tool_shell_get_orientation().</doc>
        <callback name="get_orientation">
          <source-position filename="gtktoolshell.h" line="67"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="87">the current orientation of @shell</doc>
            <type name="Orientation" c:type="GtkOrientation"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="81">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_style">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="50">mandatory implementation of gtk_tool_shell_get_style().</doc>
        <callback name="get_style">
          <source-position filename="gtktoolshell.h" line="68"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="105">the current style of @shell</doc>
            <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="99">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_relief_style">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="51">optional implementation of gtk_tool_shell_get_relief_style().</doc>
        <callback name="get_relief_style">
          <source-position filename="gtktoolshell.h" line="69"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="122">The relief style of buttons on @shell.</doc>
            <type name="ReliefStyle" c:type="GtkReliefStyle"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="117">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="rebuild_menu">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="52">optional implementation of gtk_tool_shell_rebuild_menu().</doc>
        <callback name="rebuild_menu">
          <source-position filename="gtktoolshell.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="139">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_orientation">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="53">optional implementation of gtk_tool_shell_get_text_orientation().</doc>
        <callback name="get_text_orientation">
          <source-position filename="gtktoolshell.h" line="71"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="167">the current text orientation of @shell</doc>
            <type name="Orientation" c:type="GtkOrientation"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="161">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_alignment">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="54">optional implementation of gtk_tool_shell_get_text_alignment().</doc>
        <callback name="get_text_alignment">
          <source-position filename="gtktoolshell.h" line="72"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="190">the current text alignment of @shell</doc>
            <type name="gfloat" c:type="gfloat"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="184">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_ellipsize_mode">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="55">optional implementation of gtk_tool_shell_get_ellipsize_mode().</doc>
        <callback name="get_ellipsize_mode">
          <source-position filename="gtktoolshell.h" line="73"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="213">the current ellipsize mode of @shell</doc>
            <type name="Pango.EllipsizeMode" c:type="PangoEllipsizeMode"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="207">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_size_group">
        <doc xml:space="preserve"
             filename="gtktoolshell.h"
             line="56">optional implementation of gtk_tool_shell_get_text_size_group().</doc>
        <callback name="get_text_size_group">
          <source-position filename="gtktoolshell.h" line="74"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolshell.c"
                 line="236">the current text size group of @shell</doc>
            <type name="SizeGroup" c:type="GtkSizeGroup*"/>
          </return-value>
          <parameters>
            <parameter name="shell" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktoolshell.c"
                   line="230">a #GtkToolShell</doc>
              <type name="ToolShell" c:type="GtkToolShell*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Toolbar"
           c:symbol-prefix="toolbar"
           c:type="GtkToolbar"
           parent="Container"
           glib:type-name="GtkToolbar"
           glib:get-type="gtk_toolbar_get_type"
           glib:type-struct="ToolbarClass">
      <source-position filename="gtktoolbar.h" line="139"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <implements name="ToolShell"/>
      <constructor name="new" c:identifier="gtk_toolbar_new">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2731">Creates a new toolbar.</doc>
        <source-position filename="gtktoolbar.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2736">the newly-created toolbar.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <virtual-method name="orientation_changed">
        <source-position filename="gtktoolbar.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <type name="Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="popup_context_menu">
        <source-position filename="gtktoolbar.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="button_number" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="style_changed">
        <source-position filename="gtktoolbar.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="append_element"
              c:identifier="gtk_toolbar_append_element"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3610">Adds a new element to the end of a toolbar.

If @type == %GTK_TOOLBAR_CHILD_WIDGET, @widget is used as the new element.
If @type == %GTK_TOOLBAR_CHILD_RADIOBUTTON, @widget is used to determine
the radio group for the new element. In all other cases, @widget must
be %NULL.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="237"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3632">the new toolbar element as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3612">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3613">a value of type #GtkToolbarChildType that determines what @widget will be.</doc>
            <type name="ToolbarChildType" c:type="GtkToolbarChildType"/>
          </parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3614">a #GtkWidget, or %NULL.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3615">the element's label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3616">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3617">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3618">a #GtkWidget that provides pictorial representation of the element's function.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="7">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3619">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3620">any data you wish to pass to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_item"
              c:identifier="gtk_toolbar_append_item"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3292">Inserts a new item into the toolbar. You must specify the position
in the toolbar where it will be inserted.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="197"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3308">the new toolbar item as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3294">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3295">give your toolbar button a label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3296">a string that appears when the user holds the mouse over this item.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3297">use with #GtkTipsQuery.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3298">a #GtkWidget that should be used as the button's icon.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="5">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3299">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3300">a pointer to any data you wish to be passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="append_space"
              c:identifier="gtk_toolbar_append_space"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3439">Adds a new space to the end of the toolbar.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3441">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="append_widget"
              c:identifier="gtk_toolbar_append_widget"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3536">Adds a widget to the end of the given toolbar.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="269"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3538">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3539">a #GtkWidget to add to the toolbar.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tooltip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3540">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3541">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_drop_index"
              c:identifier="gtk_toolbar_get_drop_index"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3135">Returns the position corresponding to the indicated point on
@toolbar. This is useful when dragging items to the toolbar:
this function returns the position a new item should be
inserted.

@x and @y are in @toolbar coordinates.</doc>
        <source-position filename="gtktoolbar.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3148">The position corresponding to the point (@x, @y) on the toolbar.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3137">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3138">x coordinate of a point on the toolbar</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3139">y coordinate of a point on the toolbar</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_icon_size"
              c:identifier="gtk_toolbar_get_icon_size"
              glib:get-property="icon-size">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3036">Retrieves the icon size for the toolbar. See gtk_toolbar_set_icon_size().</doc>
        <source-position filename="gtktoolbar.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3042">the current icon size for the icons on
the toolbar.</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3038">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_item_index"
              c:identifier="gtk_toolbar_get_item_index"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2777">Returns the position of @item on the toolbar, starting from 0.
It is an error if @item is not a child of the toolbar.</doc>
        <source-position filename="gtktoolbar.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2785">the position of item on the toolbar.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2779">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2780">a #GtkToolItem that is a child of @toolbar</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_items"
              c:identifier="gtk_toolbar_get_n_items"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2970">Returns the number of items on the toolbar.</doc>
        <source-position filename="gtktoolbar.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2976">the number of items on the toolbar</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2972">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_nth_item"
              c:identifier="gtk_toolbar_get_nth_item"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2995">Returns the @n&lt;!-- --&gt;'th item on @toolbar, or %NULL if the
toolbar does not contain an @n&lt;!-- --&gt;'th item.</doc>
        <source-position filename="gtktoolbar.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3003">The @n&lt;!-- --&gt;'th #GtkToolItem on @toolbar,
    or %NULL if there isn't an @n&lt;!-- --&gt;'th item.</doc>
          <type name="ToolItem" c:type="GtkToolItem*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2997">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2998">A position on the toolbar</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_orientation"
              c:identifier="gtk_toolbar_get_orientation"
              deprecated="1"
              deprecated-version="2.16">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2841">Retrieves the current orientation of the toolbar. See
gtk_toolbar_set_orientation().</doc>
        <doc-deprecated xml:space="preserve">Use gtk_orientable_get_orientation() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2848">the orientation</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2843">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_relief_style"
              c:identifier="gtk_toolbar_get_relief_style"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3053">Returns the relief style of buttons on @toolbar. See
gtk_button_set_relief().</doc>
        <source-position filename="gtktoolbar.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3060">The relief style of buttons on @toolbar.</doc>
          <type name="ReliefStyle" c:type="GtkReliefStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3055">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_arrow"
              c:identifier="gtk_toolbar_get_show_arrow"
              glib:get-property="show-arrow"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3109">Returns whether the toolbar has an overflow menu.
See gtk_toolbar_set_show_arrow().</doc>
        <source-position filename="gtktoolbar.h" line="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3116">%TRUE if the toolbar has an overflow menu.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3111">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style" c:identifier="gtk_toolbar_get_style">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2877">Retrieves whether the toolbar has text, icons, or both . See
gtk_toolbar_set_style().</doc>
        <source-position filename="gtktoolbar.h" line="158"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2884">the current style of @toolbar</doc>
          <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2879">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltips"
              c:identifier="gtk_toolbar_get_tooltips"
              glib:get-property="tooltips"
              deprecated="1"
              deprecated-version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2950">Retrieves whether tooltips are enabled. See
gtk_toolbar_set_tooltips().</doc>
        <doc-deprecated xml:space="preserve">The toolkit-wide #GtkSettings:gtk-enable-tooltips property
is now used instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="192"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="2957">%TRUE if tooltips are enabled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2952">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="gtk_toolbar_insert" version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2748">Insert a #GtkToolItem into the toolbar at position @pos. If @pos is
0 the item is prepended to the start of the toolbar. If @pos is
negative, the item is appended to the end of the toolbar.</doc>
        <source-position filename="gtktoolbar.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2750">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2751">a #GtkToolItem</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2752">the position of the new item</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_element"
              c:identifier="gtk_toolbar_insert_element"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3695">Inserts a new element in the toolbar at the given position.

If @type == %GTK_TOOLBAR_CHILD_WIDGET, @widget is used as the new element.
If @type == %GTK_TOOLBAR_CHILD_RADIOBUTTON, @widget is used to determine
the radio group for the new element. In all other cases, @widget must
be %NULL.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="257"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3719">the new toolbar element as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3697">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3698">a value of type #GtkToolbarChildType that determines what @widget
  will be.</doc>
            <type name="ToolbarChildType" c:type="GtkToolbarChildType"/>
          </parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3700">a #GtkWidget, or %NULL.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3701">the element's label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3702">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3703">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3704">a #GtkWidget that provides pictorial representation of the element's function.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="7">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3705">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3706">any data you wish to pass to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3707">the number of widgets to insert this element after.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_item"
              c:identifier="gtk_toolbar_insert_item"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3363">Inserts a new item into the toolbar. You must specify the position in the
toolbar where it will be inserted.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="211"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3380">the new toolbar item as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3365">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3366">give your toolbar button a label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3367">a string that appears when the user holds the mouse over this item.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3368">use with #GtkTipsQuery.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3369">a #GtkWidget that should be used as the button's icon.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="5">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3370">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3371">a pointer to any data you wish to be passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3372">the number of widgets to insert this item after.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_space"
              c:identifier="gtk_toolbar_insert_space"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3475">Inserts a new space in the toolbar at the specified position.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="232"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3477">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3478">the number of widgets after which a space should be inserted.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_stock"
              c:identifier="gtk_toolbar_insert_stock"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3401">Inserts a stock item at the specified position of the toolbar.  If
@stock_id is not a known stock item ID, it's inserted verbatim,
except that underscores used to mark mnemonics are removed.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="221"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3419">the inserted widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3403">A #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3404">The id of the stock item you want to insert</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3405">The text in the tooltip of the toolbar button</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3406">The private text of the tooltip</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="4">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3407">The callback called when the toolbar button is clicked.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3408">user data passed to callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3409">The position the button shall be inserted at.
           -1 means at the end.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_widget"
              c:identifier="gtk_toolbar_insert_widget"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3584">Inserts a widget in the toolbar at the given position.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="277"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3586">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3587">a #GtkWidget to add to the toolbar.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tooltip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3588">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3589">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3590">the number of widgets to insert this widget after.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_element"
              c:identifier="gtk_toolbar_prepend_element"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3653">Adds a new element to the beginning of a toolbar.

If @type == %GTK_TOOLBAR_CHILD_WIDGET, @widget is used as the new element.
If @type == %GTK_TOOLBAR_CHILD_RADIOBUTTON, @widget is used to determine
the radio group for the new element. In all other cases, @widget must
be %NULL.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="247"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3675">the new toolbar element as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3655">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3656">a value of type #GtkToolbarChildType that determines what @widget will be.</doc>
            <type name="ToolbarChildType" c:type="GtkToolbarChildType"/>
          </parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3657">a #GtkWidget, or %NULL</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3658">the element's label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3659">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3660">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3661">a #GtkWidget that provides pictorial representation of the element's function.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="7">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3662">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3663">any data you wish to pass to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_item"
              c:identifier="gtk_toolbar_prepend_item"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3328">Adds a new button to the beginning (top or left edges) of the given toolbar.

@callback must be a pointer to a function taking a #GtkWidget and a gpointer as
arguments. Use G_CALLBACK() to cast the function to #GCallback.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="204"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="3343">the new toolbar item as a #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3330">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3331">give your toolbar button a label.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3332">a string that appears when the user holds the mouse over this item.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3333">use with #GtkTipsQuery.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3334">a #GtkWidget that should be used as the button's icon.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none" closure="5">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3335">the function to be executed when the button is pressed.</doc>
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3336">a pointer to any data you wish to be passed to the callback.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend_space"
              c:identifier="gtk_toolbar_prepend_space"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3457">Adds a new space to the beginning of the toolbar.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="231"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3459">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_widget"
              c:identifier="gtk_toolbar_prepend_widget"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3560">Adds a widget to the beginning of the given toolbar.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="273"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3562">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3563">a #GtkWidget to add to the toolbar.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tooltip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3564">the element's tooltip.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tooltip_private_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3565">used for context-sensitive help about this toolbar element.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_space"
              c:identifier="gtk_toolbar_remove_space"
              deprecated="1"
              deprecated-version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3495">Removes a space from the specified position.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_toolbar_insert() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="234"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3497">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3498">the index of the space to remove.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_drop_highlight_item"
              c:identifier="gtk_toolbar_set_drop_highlight_item"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2255">Highlights @toolbar to give an idea of what it would look like
if @item was added to @toolbar at the position indicated by @index_.
If @item is %NULL, highlighting is turned off. In that case @index_
is ignored.

The @tool_item passed to this function must not be part of any widget
hierarchy. When an item is set as drop highlight item it can not
added to any widget hierarchy or used as highlight item for another
toolbar.</doc>
        <source-position filename="gtktoolbar.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2257">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="tool_item"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2258">a #GtkToolItem, or %NULL to turn of highlighting</doc>
            <type name="ToolItem" c:type="GtkToolItem*"/>
          </parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2259">a position on @toolbar</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_size"
              c:identifier="gtk_toolbar_set_icon_size"
              glib:set-property="icon-size">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3211">This function sets the size of stock icons in the toolbar. You
can call it both before you add the icons and after they've been
added. The size you set will override user preferences for the default
icon size.

This should only be used for special-purpose toolbars, normal
application toolbars should respect the user preferences for the
size of icons.</doc>
        <source-position filename="gtktoolbar.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3213">A #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="icon_size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3214">The #GtkIconSize that stock icons in the
    toolbar shall have.</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_orientation"
              c:identifier="gtk_toolbar_set_orientation"
              deprecated="1"
              deprecated-version="2.16">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2823">Sets whether a toolbar should appear horizontally or vertically.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_orientable_set_orientation() instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="190"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2825">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2826">a new #GtkOrientation.</doc>
            <type name="Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_arrow"
              c:identifier="gtk_toolbar_set_show_arrow"
              glib:set-property="show-arrow"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3072">Sets whether to show an overflow menu when @toolbar isn’t allocated enough
size to show all of its items. If %TRUE, items which can’t fit in @toolbar,
and which have a proxy menu item set by gtk_tool_item_set_proxy_menu_item()
or #GtkToolItem::create-menu-proxy, will be available in an overflow menu,
which can be opened by an added arrow button. If %FALSE, @toolbar will
request enough size to fit all of its child items without any overflow.</doc>
        <source-position filename="gtktoolbar.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3074">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="show_arrow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3075">Whether to show an overflow menu</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style" c:identifier="gtk_toolbar_set_style">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2860">Alters the view of @toolbar to display either icons only, text only, or both.</doc>
        <source-position filename="gtktoolbar.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2862">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2863">the new style for @toolbar.</doc>
            <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltips"
              c:identifier="gtk_toolbar_set_tooltips"
              glib:set-property="tooltips"
              deprecated="1"
              deprecated-version="2.14">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2926">Sets if the tooltips of a toolbar should be active or not.</doc>
        <doc-deprecated xml:space="preserve">The toolkit-wide #GtkSettings:gtk-enable-tooltips property
is now used instead.</doc-deprecated>
        <source-position filename="gtktoolbar.h" line="193"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2928">a #GtkToolbar.</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2929">set to %FALSE to disable the tooltips, or %TRUE to enable them.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_icon_size"
              c:identifier="gtk_toolbar_unset_icon_size">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="3250">Unsets toolbar icon size set with gtk_toolbar_set_icon_size(), so that
user preferences will be used to determine the icon size.</doc>
        <source-position filename="gtktoolbar.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="3252">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_style" c:identifier="gtk_toolbar_unset_style">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="2894">Unsets a toolbar style set with gtk_toolbar_set_style(), so that
user preferences will be used to determine the toolbar style.</doc>
        <source-position filename="gtktoolbar.h" line="161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toolbar" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="2896">a #GtkToolbar</doc>
            <type name="Toolbar" c:type="GtkToolbar*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="icon-size"
                version="2.10"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_size"
                getter="get_icon_size"
                default-value="3">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="526">The size of the icons in a toolbar is normally determined by
the toolbar-icon-size setting. When this property is set, it
overrides the setting.

This should only be used for special-purpose toolbars, normal
application toolbars should respect the user preferences for the
size of icons.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="icon-size-set"
                version="2.10"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="548">Is %TRUE if the icon-size property has been set.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="show-arrow"
                writable="1"
                transfer-ownership="none"
                setter="set_show_arrow"
                getter="get_show_arrow"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="toolbar-style"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_TOOLBAR_BOTH">
        <type name="ToolbarStyle"/>
      </property>
      <property name="tooltips"
                version="2.8"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltips"
                getter="get_tooltips"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="510">If the tooltips of the toolbar should be active or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="container">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="num_children">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="children">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="orientation">
        <type name="Orientation" c:type="GtkOrientation"/>
      </field>
      <field name="style">
        <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
      </field>
      <field name="icon_size">
        <type name="IconSize" c:type="GtkIconSize"/>
      </field>
      <field name="tooltips">
        <type name="Tooltips" c:type="GtkTooltips*"/>
      </field>
      <field name="button_maxw" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="button_maxh" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="_gtk_reserved1" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="_gtk_reserved2" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="style_set" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="icon_size_set" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="focus-home-or-end" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="468">A keybinding signal used internally by GTK+. This signal can't
be used in application code</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="476">%TRUE if the signal was handled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="focus_home" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="471">%TRUE if the first item should be focused</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="orientation-changed" when="first">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="407">Emitted when the orientation of the toolbar changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="410">the new #GtkOrientation of the toolbar</doc>
            <type name="Orientation"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="popup-context-menu" when="last">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="439">Emitted when the user right-clicks the toolbar or uses the
keybinding to display a popup menu.

Application developers should handle this signal if they want
to display a context menu on the toolbar. The context-menu should
appear at the coordinates given by @x and @y. The mouse button
number is given by the @button parameter. If the menu was popped
up using the keybaord, @button is -1.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktoolbar.c"
               line="455">return %TRUE if the signal was handled, %FALSE if not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="442">the x coordinate of the point where the menu should appear</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="443">the y coordinate of the point where the menu should appear</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="444">the mouse button the user pressed, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="style-changed" when="first">
        <doc xml:space="preserve"
             filename="gtktoolbar.c"
             line="423">Emitted when the style of the toolbar changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktoolbar.c"
                 line="426">the new #GtkToolbarStyle of the toolbar</doc>
            <type name="ToolbarStyle"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ToolbarChild" c:type="GtkToolbarChild">
      <source-position filename="gtktoolbar.h" line="79"/>
      <field name="type" writable="1">
        <type name="ToolbarChildType" c:type="GtkToolbarChildType"/>
      </field>
      <field name="widget" writable="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="icon" writable="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="label" writable="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
    </record>
    <enumeration name="ToolbarChildType"
                 glib:type-name="GtkToolbarChildType"
                 glib:get-type="gtk_toolbar_child_type_get_type"
                 c:type="GtkToolbarChildType">
      <member name="space"
              value="0"
              c:identifier="GTK_TOOLBAR_CHILD_SPACE"
              glib:nick="space"
              glib:name="GTK_TOOLBAR_CHILD_SPACE">
      </member>
      <member name="button"
              value="1"
              c:identifier="GTK_TOOLBAR_CHILD_BUTTON"
              glib:nick="button"
              glib:name="GTK_TOOLBAR_CHILD_BUTTON">
      </member>
      <member name="togglebutton"
              value="2"
              c:identifier="GTK_TOOLBAR_CHILD_TOGGLEBUTTON"
              glib:nick="togglebutton"
              glib:name="GTK_TOOLBAR_CHILD_TOGGLEBUTTON">
      </member>
      <member name="radiobutton"
              value="3"
              c:identifier="GTK_TOOLBAR_CHILD_RADIOBUTTON"
              glib:nick="radiobutton"
              glib:name="GTK_TOOLBAR_CHILD_RADIOBUTTON">
      </member>
      <member name="widget"
              value="4"
              c:identifier="GTK_TOOLBAR_CHILD_WIDGET"
              glib:nick="widget"
              glib:name="GTK_TOOLBAR_CHILD_WIDGET">
      </member>
    </enumeration>
    <record name="ToolbarClass"
            c:type="GtkToolbarClass"
            glib:is-gtype-struct-for="Toolbar">
      <source-position filename="gtktoolbar.h" line="139"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="orientation_changed">
        <callback name="orientation_changed">
          <source-position filename="gtktoolbar.h" line="126"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="toolbar" transfer-ownership="none">
              <type name="Toolbar" c:type="GtkToolbar*"/>
            </parameter>
            <parameter name="orientation" transfer-ownership="none">
              <type name="Orientation" c:type="GtkOrientation"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="style_changed">
        <callback name="style_changed">
          <source-position filename="gtktoolbar.h" line="128"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="toolbar" transfer-ownership="none">
              <type name="Toolbar" c:type="GtkToolbar*"/>
            </parameter>
            <parameter name="style" transfer-ownership="none">
              <type name="ToolbarStyle" c:type="GtkToolbarStyle"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="popup_context_menu">
        <callback name="popup_context_menu">
          <source-position filename="gtktoolbar.h" line="130"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="toolbar" transfer-ownership="none">
              <type name="Toolbar" c:type="GtkToolbar*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="button_number" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktoolbar.h" line="136"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktoolbar.h" line="137"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktoolbar.h" line="138"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ToolbarPrivate"
            c:type="GtkToolbarPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktoolbar.h" line="91"/>
    </record>
    <enumeration name="ToolbarSpaceStyle"
                 glib:type-name="GtkToolbarSpaceStyle"
                 glib:get-type="gtk_toolbar_space_style_get_type"
                 c:type="GtkToolbarSpaceStyle">
      <member name="empty"
              value="0"
              c:identifier="GTK_TOOLBAR_SPACE_EMPTY"
              glib:nick="empty"
              glib:name="GTK_TOOLBAR_SPACE_EMPTY">
      </member>
      <member name="line"
              value="1"
              c:identifier="GTK_TOOLBAR_SPACE_LINE"
              glib:nick="line"
              glib:name="GTK_TOOLBAR_SPACE_LINE">
      </member>
    </enumeration>
    <enumeration name="ToolbarStyle"
                 glib:type-name="GtkToolbarStyle"
                 glib:get-type="gtk_toolbar_style_get_type"
                 c:type="GtkToolbarStyle">
      <member name="icons"
              value="0"
              c:identifier="GTK_TOOLBAR_ICONS"
              glib:nick="icons"
              glib:name="GTK_TOOLBAR_ICONS">
      </member>
      <member name="text"
              value="1"
              c:identifier="GTK_TOOLBAR_TEXT"
              glib:nick="text"
              glib:name="GTK_TOOLBAR_TEXT">
      </member>
      <member name="both"
              value="2"
              c:identifier="GTK_TOOLBAR_BOTH"
              glib:nick="both"
              glib:name="GTK_TOOLBAR_BOTH">
      </member>
      <member name="both_horiz"
              value="3"
              c:identifier="GTK_TOOLBAR_BOTH_HORIZ"
              glib:nick="both-horiz"
              glib:name="GTK_TOOLBAR_BOTH_HORIZ">
      </member>
    </enumeration>
    <class name="Tooltip"
           c:symbol-prefix="tooltip"
           c:type="GtkTooltip"
           parent="GObject.Object"
           glib:type-name="GtkTooltip"
           glib:get-type="gtk_tooltip_get_type">
      <function name="trigger_tooltip_query"
                c:identifier="gtk_tooltip_trigger_tooltip_query"
                version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="493">Triggers a new tooltip query on @display, in order to update the current
visible tooltip, or to show/hide the current tooltip.  This function is
useful to call when, for example, the state of the widget changed by a
key press.</doc>
        <source-position filename="gtktooltip.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="495">a #GdkDisplay</doc>
            <type name="Gdk.Display" c:type="GdkDisplay*"/>
          </parameter>
        </parameters>
      </function>
      <method name="set_custom"
              c:identifier="gtk_tooltip_set_custom"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="409">Replaces the widget packed into the tooltip with
@custom_widget. @custom_widget does not get destroyed when the tooltip goes
away.
By default a box with a #GtkImage and #GtkLabel is embedded in
the tooltip, which can be configured using gtk_tooltip_set_markup()
and gtk_tooltip_set_icon().</doc>
        <source-position filename="gtktooltip.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="411">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="custom_widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="412">a #GtkWidget, or %NULL to unset the old custom widget.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon"
              c:identifier="gtk_tooltip_set_icon"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="302">Sets the icon of the tooltip (which is in front of the text) to be
@pixbuf.  If @pixbuf is %NULL, the image will be hidden.</doc>
        <source-position filename="gtktooltip.h" line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="304">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="pixbuf"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="305">a #GdkPixbuf, or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_from_gicon"
              c:identifier="gtk_tooltip_set_icon_from_gicon"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="382">Sets the icon of the tooltip (which is in front of the text)
to be the icon indicated by @gicon with the size indicated
by @size. If @gicon is %NULL, the image will be hidden.</doc>
        <source-position filename="gtktooltip.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="384">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="gicon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="385">a #GIcon representing the icon, or %NULL</doc>
            <type name="Gio.Icon" c:type="GIcon*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="386">a stock icon size</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_from_icon_name"
              c:identifier="gtk_tooltip_set_icon_from_icon_name"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="355">Sets the icon of the tooltip (which is in front of the text) to be
the icon indicated by @icon_name with the size indicated
by @size.  If @icon_name is %NULL, the image will be hidden.</doc>
        <source-position filename="gtktooltip.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="357">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="icon_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="358">an icon name, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="359">a stock icon size</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_from_stock"
              c:identifier="gtk_tooltip_set_icon_from_stock"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="328">Sets the icon of the tooltip (which is in front of the text) to be
the stock item indicated by @stock_id with the size indicated
by @size.  If @stock_id is %NULL, the image will be hidden.</doc>
        <source-position filename="gtktooltip.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="330">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="stock_id"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="331">a stock id, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="332">a stock icon size</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_markup"
              c:identifier="gtk_tooltip_set_markup"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="252">Sets the text of the tooltip to be @markup, which is marked up
with the &lt;link
linkend="PangoMarkupFormat"&gt;Pango text markup language&lt;/link&gt;.
If @markup is %NULL, the label will be hidden.</doc>
        <source-position filename="gtktooltip.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="254">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="markup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="255">a markup string (see &lt;link linkend="PangoMarkupFormat"&gt;Pango markup format&lt;/link&gt;) or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_text"
              c:identifier="gtk_tooltip_set_text"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="278">Sets the text of the tooltip to be @text. If @text is %NULL, the label
will be hidden. See also gtk_tooltip_set_markup().</doc>
        <source-position filename="gtktooltip.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="280">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="281">a text string or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tip_area"
              c:identifier="gtk_tooltip_set_tip_area"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltip.c"
             line="462">Sets the area of the widget, where the contents of this tooltip apply,
to be @rect (in widget coordinates).  This is especially useful for
properly setting tooltips on #GtkTreeView rows and cells, #GtkIconViews,
etc.

For setting tooltips on #GtkTreeView, please refer to the convenience
functions for this: gtk_tree_view_set_tooltip_row() and
gtk_tree_view_set_tooltip_cell().</doc>
        <source-position filename="gtktooltip.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="464">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltip.c"
                 line="465">a #GdkRectangle</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <class name="Tooltips"
           c:symbol-prefix="tooltips"
           c:type="GtkTooltips"
           parent="Object"
           glib:type-name="GtkTooltips"
           glib:get-type="gtk_tooltips_get_type"
           glib:type-struct="TooltipsClass">
      <source-position filename="gtktooltips.h" line="85"/>
      <constructor name="new" c:identifier="gtk_tooltips_new">
        <source-position filename="gtktooltips.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="Tooltips" c:type="GtkTooltips*"/>
        </return-value>
      </constructor>
      <function name="get_info_from_tip_window"
                c:identifier="gtk_tooltips_get_info_from_tip_window"
                version="2.4"
                deprecated="1"
                deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltips.c"
             line="295">Determines the tooltips and the widget they belong to from the window in
which they are displayed.

This function is mostly intended for use by accessibility technologies;
applications should have little use for it.</doc>
        <source-position filename="gtktooltips.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktooltips.c"
               line="309">%TRUE if @tip_window is displaying tooltips, otherwise %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tip_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="297">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </parameter>
          <parameter name="tooltips" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="298">the return location for the tooltips which are displayed
   in @tip_window, or %NULL</doc>
            <type name="Tooltips" c:type="GtkTooltips**"/>
          </parameter>
          <parameter name="current_widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="300">the return location for the widget whose tooltips
   are displayed, or %NULL</doc>
            <type name="Widget" c:type="GtkWidget**"/>
          </parameter>
        </parameters>
      </function>
      <method name="disable" c:identifier="gtk_tooltips_disable">
        <source-position filename="gtktooltips.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltips" transfer-ownership="none">
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="enable" c:identifier="gtk_tooltips_enable">
        <source-position filename="gtktooltips.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltips" transfer-ownership="none">
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="force_window" c:identifier="gtk_tooltips_force_window">
        <source-position filename="gtktooltips.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltips" transfer-ownership="none">
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_delay" c:identifier="gtk_tooltips_set_delay">
        <source-position filename="gtktooltips.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltips" transfer-ownership="none">
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </instance-parameter>
          <parameter name="delay" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tip"
              c:identifier="gtk_tooltips_set_tip"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktooltips.c"
             line="214">Adds a tooltip containing the message @tip_text to the specified #GtkWidget.</doc>
        <source-position filename="gtktooltips.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tooltips" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="216">a #GtkTooltips.</doc>
            <type name="Tooltips" c:type="GtkTooltips*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="217">the #GtkWidget you wish to associate the tip with.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="tip_text"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="218">a string containing the tip itself.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="tip_private"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktooltips.c"
                 line="219">a string of any further information that may be useful if the user gets stuck.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Object" c:type="GtkObject"/>
      </field>
      <field name="tip_window" readable="0" private="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="tip_label" readable="0" private="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="active_tips_data" readable="0" private="1">
        <type name="TooltipsData" c:type="GtkTooltipsData*"/>
      </field>
      <field name="tips_data_list" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="delay" readable="0" bits="30" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="enabled" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="have_grab" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="use_sticky_delay" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="timer_tag" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="last_popdown" readable="0" private="1">
        <type name="GLib.TimeVal" c:type="GTimeVal"/>
      </field>
    </class>
    <record name="TooltipsClass"
            c:type="GtkTooltipsClass"
            glib:is-gtype-struct-for="Tooltips">
      <source-position filename="gtktooltips.h" line="85"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtkObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktooltips.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktooltips.h" line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktooltips.h" line="83"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktooltips.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TooltipsData" c:type="GtkTooltipsData">
      <source-position filename="gtktooltips.h" line="56"/>
      <field name="tooltips" writable="1">
        <type name="Tooltips" c:type="GtkTooltips*"/>
      </field>
      <field name="widget" writable="1">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="tip_text" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="tip_private" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <function name="get"
                c:identifier="gtk_tooltips_data_get"
                introspectable="0">
        <source-position filename="gtktooltips.h" line="98"/>
        <return-value>
          <type name="TooltipsData" c:type="GtkTooltipsData*"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <callback name="TranslateFunc" c:type="GtkTranslateFunc">
      <source-position filename="gtktypeutils.h" line="61"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="func_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc">
      <source-position filename="gtktreeviewcolumn.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tree_column" transfer-ownership="none">
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </parameter>
        <parameter name="cell" transfer-ownership="none">
          <type name="CellRenderer" c:type="GtkCellRenderer*"/>
        </parameter>
        <parameter name="tree_model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeDestroyCountFunc" c:type="GtkTreeDestroyCountFunc">
      <source-position filename="gtktreeview.h" line="365"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tree_view" transfer-ownership="none">
          <type name="TreeView" c:type="GtkTreeView*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="children" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="TreeDragDest"
               c:symbol-prefix="tree_drag_dest"
               c:type="GtkTreeDragDest"
               glib:type-name="GtkTreeDragDest"
               glib:get-type="gtk_tree_drag_dest_get_type"
               glib:type-struct="TreeDragDestIface">
      <source-position filename="gtktreednd.h" line="95"/>
      <virtual-method name="drag_data_received" invoker="drag_data_received">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="163">Asks the #GtkTreeDragDest to insert a row before the path @dest,
deriving the contents of the row from @selection_data. If @dest is
outside the tree so that inserting before it is impossible, %FALSE
will be returned. Also, %FALSE may be returned if the new row is
not created for some model-specific reason.  Should robustly handle
a @dest no longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="176">whether a new row was created before position @dest</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="165">a #GtkTreeDragDest</doc>
            <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="166">row to drop in front of</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="167">data to drop</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_drop_possible" invoker="row_drop_possible">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="193">Determines whether a drop is possible before the given @dest_path,
at the same depth as @dest_path. i.e., can we drop the data in
@selection_data at that location. @dest_path does not have to
exist; the return value will almost certainly be %FALSE if the
parent of @dest_path doesn't exist, though.</doc>
        <source-position filename="gtktreednd.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="205">%TRUE if a drop is possible before @dest_path</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="195">a #GtkTreeDragDest</doc>
            <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
          </instance-parameter>
          <parameter name="dest_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="196">destination row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="197">the data being dragged</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="drag_data_received"
              c:identifier="gtk_tree_drag_dest_drag_data_received">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="163">Asks the #GtkTreeDragDest to insert a row before the path @dest,
deriving the contents of the row from @selection_data. If @dest is
outside the tree so that inserting before it is impossible, %FALSE
will be returned. Also, %FALSE may be returned if the new row is
not created for some model-specific reason.  Should robustly handle
a @dest no longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="176">whether a new row was created before position @dest</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="165">a #GtkTreeDragDest</doc>
            <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="166">row to drop in front of</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="167">data to drop</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_drop_possible"
              c:identifier="gtk_tree_drag_dest_row_drop_possible">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="193">Determines whether a drop is possible before the given @dest_path,
at the same depth as @dest_path. i.e., can we drop the data in
@selection_data at that location. @dest_path does not have to
exist; the return value will almost certainly be %FALSE if the
parent of @dest_path doesn't exist, though.</doc>
        <source-position filename="gtktreednd.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="205">%TRUE if a drop is possible before @dest_path</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="195">a #GtkTreeDragDest</doc>
            <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
          </instance-parameter>
          <parameter name="dest_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="196">destination row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="197">the data being dragged</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="TreeDragDestIface"
            c:type="GtkTreeDragDestIface"
            glib:is-gtype-struct-for="TreeDragDest">
      <source-position filename="gtktreednd.h" line="95"/>
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="drag_data_received">
        <callback name="drag_data_received">
          <source-position filename="gtktreednd.h" line="88"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="176">whether a new row was created before position @dest</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="drag_dest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="165">a #GtkTreeDragDest</doc>
              <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
            </parameter>
            <parameter name="dest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="166">row to drop in front of</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="167">data to drop</doc>
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_drop_possible">
        <callback name="row_drop_possible">
          <source-position filename="gtktreednd.h" line="92"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="205">%TRUE if a drop is possible before @dest_path</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="drag_dest" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="195">a #GtkTreeDragDest</doc>
              <type name="TreeDragDest" c:type="GtkTreeDragDest*"/>
            </parameter>
            <parameter name="dest_path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="196">destination row</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="197">the data being dragged</doc>
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="TreeDragSource"
               c:symbol-prefix="tree_drag_source"
               c:type="GtkTreeDragSource"
               glib:type-name="GtkTreeDragSource"
               glib:get-type="gtk_tree_drag_source_get_type"
               glib:type-struct="TreeDragSourceIface">
      <source-position filename="gtktreednd.h" line="55"/>
      <virtual-method name="drag_data_delete" invoker="drag_data_delete">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="110">Asks the #GtkTreeDragSource to delete the row at @path, because
it was moved somewhere else via drag-and-drop. Returns %FALSE
if the deletion fails because @path no longer exists, or for
some model-specific reason. Should robustly handle a @path no
longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="121">%TRUE if the row was successfully deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="112">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="113">row that was being dragged</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_get" invoker="drag_data_get">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="135">Asks the #GtkTreeDragSource to fill in @selection_data with a
representation of the row at @path. @selection_data-&gt;target gives
the required type of the data.  Should robustly handle a @path no
longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="49"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="147">%TRUE if data of the required type was provided</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="137">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="138">row that was dragged</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="139">a #GtkSelectionData to fill with data
                 from the dragged row</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_draggable" invoker="row_draggable">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="81">Asks the #GtkTreeDragSource whether a particular row can be used as
the source of a DND operation. If the source doesn't implement
this interface, the row is assumed draggable.</doc>
        <source-position filename="gtktreednd.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="90">%TRUE if the row can be dragged</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="83">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="84">row on which user is initiating a drag</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="drag_data_delete"
              c:identifier="gtk_tree_drag_source_drag_data_delete">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="110">Asks the #GtkTreeDragSource to delete the row at @path, because
it was moved somewhere else via drag-and-drop. Returns %FALSE
if the deletion fails because @path no longer exists, or for
some model-specific reason. Should robustly handle a @path no
longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="121">%TRUE if the row was successfully deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="112">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="113">row that was being dragged</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="drag_data_get"
              c:identifier="gtk_tree_drag_source_drag_data_get">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="135">Asks the #GtkTreeDragSource to fill in @selection_data with a
representation of the row at @path. @selection_data-&gt;target gives
the required type of the data.  Should robustly handle a @path no
longer found in the model!</doc>
        <source-position filename="gtktreednd.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="147">%TRUE if data of the required type was provided</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="137">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="138">row that was dragged</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="selection_data"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="139">a #GtkSelectionData to fill with data
                 from the dragged row</doc>
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_draggable"
              c:identifier="gtk_tree_drag_source_row_draggable">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="81">Asks the #GtkTreeDragSource whether a particular row can be used as
the source of a DND operation. If the source doesn't implement
this interface, the row is assumed draggable.</doc>
        <source-position filename="gtktreednd.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="90">%TRUE if the row can be dragged</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="drag_source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="83">a #GtkTreeDragSource</doc>
            <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="84">row on which user is initiating a drag</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="TreeDragSourceIface"
            c:type="GtkTreeDragSourceIface"
            glib:is-gtype-struct-for="TreeDragSource">
      <source-position filename="gtktreednd.h" line="55"/>
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="row_draggable">
        <callback name="row_draggable">
          <source-position filename="gtktreednd.h" line="46"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="90">%TRUE if the row can be dragged</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="drag_source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="83">a #GtkTreeDragSource</doc>
              <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="84">row on which user is initiating a drag</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_get">
        <callback name="drag_data_get">
          <source-position filename="gtktreednd.h" line="49"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="147">%TRUE if data of the required type was provided</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="drag_source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="137">a #GtkTreeDragSource</doc>
              <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="138">row that was dragged</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="selection_data"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="139">a #GtkSelectionData to fill with data
                 from the dragged row</doc>
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_delete">
        <callback name="drag_data_delete">
          <source-position filename="gtktreednd.h" line="53"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreednd.c"
                 line="121">%TRUE if the row was successfully deleted</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="drag_source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="112">a #GtkTreeDragSource</doc>
              <type name="TreeDragSource" c:type="GtkTreeDragSource*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreednd.c"
                   line="113">row that was being dragged</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="TreeIter"
            c:type="GtkTreeIter"
            glib:type-name="GtkTreeIter"
            glib:get-type="gtk_tree_iter_get_type"
            c:symbol-prefix="tree_iter">
      <source-position filename="gtktreemodel.h" line="63"/>
      <field name="stamp" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="user_data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="user_data2" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="user_data3" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <method name="copy" c:identifier="gtk_tree_iter_copy">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="874">Creates a dynamically allocated tree iterator as a copy of @iter.
This function is not intended for use in applications, because you
can just copy the structs by value
(&lt;literal&gt;GtkTreeIter new_iter = iter;&lt;/literal&gt;).
You must free this iter with gtk_tree_iter_free().</doc>
        <source-position filename="gtktreemodel.h" line="186"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="884">a newly-allocated copy of @iter.</doc>
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="876">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_tree_iter_free">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="899">Frees an iterator that has been allocated by gtk_tree_iter_copy().
This function is mainly used for language bindings.</doc>
        <source-position filename="gtktreemodel.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="901">A dynamically allocated tree iterator.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc">
      <source-position filename="gtktreesortable.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="a" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="TreeModel"
               c:symbol-prefix="tree_model"
               c:type="GtkTreeModel"
               glib:type-name="GtkTreeModel"
               glib:get-type="gtk_tree_model_get_type"
               glib:type-struct="TreeModelIface">
      <source-position filename="gtktreemodel.h" line="121"/>
      <virtual-method name="get_column_type" invoker="get_column_type">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="971">Returns the type of the column.</doc>
        <source-position filename="gtktreemodel.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="978">The type of the column.</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="973">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="974">The column index.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_flags" invoker="get_flags">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="927">Returns a set of flags supported by this interface.  The flags are a bitwise
combination of #GtkTreeModelFlags.  The flags supported should not change
during the lifecycle of the @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="935">The flags supported by this interface.</doc>
          <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="929">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_iter" invoker="get_iter">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="995">Sets @iter to a valid iterator pointing to @path.</doc>
        <source-position filename="gtktreemodel.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1003">%TRUE, if @iter was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="997">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="998">The uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="999">The #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_n_columns" invoker="get_n_columns">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="951">Returns the number of columns supported by @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="957">The number of columns.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="953">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_path" invoker="get_path">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1118">Returns a newly-created #GtkTreePath referenced by @iter.  This path should
be freed with gtk_tree_path_free().</doc>
        <source-position filename="gtktreemodel.h" line="95"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1126">a newly-created #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1120">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1121">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_value" invoker="get_value">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1143">Initializes and sets @value to that at @column.
When done with @value, g_value_unset() needs to be called
to free any allocated memory.</doc>
        <source-position filename="gtktreemodel.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1145">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1146">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1147">The column to lookup the value at.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1148">An empty #GValue to set.</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_children" invoker="iter_children">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1197">Sets @iter to point to the first child of @parent.  If @parent has no
children, %FALSE is returned and @iter is set to be invalid.  @parent
will remain a valid node after this function has been called.

If @parent is %NULL returns the first node, equivalent to
&lt;literal&gt;gtk_tree_model_get_iter_first (tree_model, iter);&lt;/literal&gt;</doc>
        <source-position filename="gtktreemodel.h" line="103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1210">%TRUE, if @child has been set to the first child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1199">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1200">The new #GtkTreeIter to be set to the child.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1201">The #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_has_child" invoker="iter_has_child">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1230">Returns %TRUE if @iter has children, %FALSE otherwise.</doc>
        <source-position filename="gtktreemodel.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1237">%TRUE if @iter has children.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1232">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1233">The #GtkTreeIter to test for children.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_n_children" invoker="iter_n_children">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1254">Returns the number of children that @iter has.  As a special case, if @iter
is %NULL, then the number of toplevel nodes is returned.</doc>
        <source-position filename="gtktreemodel.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1262">The number of children of @iter.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1256">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1257">The #GtkTreeIter, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_next" invoker="iter_next">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1172">Sets @iter to point to the node following it at the current level.  If there
is no next @iter, %FALSE is returned and @iter is set to be invalid.</doc>
        <source-position filename="gtktreemodel.h" line="101"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1180">%TRUE if @iter has been changed to the next node.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1174">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1175">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_nth_child" invoker="iter_nth_child">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1278">Sets @iter to be the child of @parent, using the given index.  The first
index is 0.  If @n is too big, or @parent has no children, @iter is set
to an invalid iterator and %FALSE is returned.  @parent will remain a valid
node after this function has been called.  As a special case, if @parent is
%NULL, then the @n&lt;!-- --&gt;th root node is set.</doc>
        <source-position filename="gtktreemodel.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1291">%TRUE, if @parent has an @n&lt;!-- --&gt;th child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1280">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1281">The #GtkTreeIter to set to the nth child.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1282">The #GtkTreeIter to get the child from, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1283">Then index of the desired child.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="iter_parent" invoker="iter_parent">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1313">Sets @iter to be the parent of @child.  If @child is at the toplevel, and
doesn't have a parent, then @iter is set to an invalid iterator and %FALSE
is returned.  @child will remain a valid node after this function has been
called.</doc>
        <source-position filename="gtktreemodel.h" line="114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1324">%TRUE, if @iter is set to the parent of @child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1315">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1316">The new #GtkTreeIter to set to the parent.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1317">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ref_node" invoker="ref_node">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1345">Lets the tree ref the node.  This is an optional method for models to
implement.  To be more specific, models may ignore this call as it exists
primarily for performance reasons.

This function is primarily meant as a way for views to let caching model
know when nodes are being displayed (and hence, whether or not to cache that
node.)  For example, a file-system based model would not want to keep the
entire file-hierarchy in memory, just the sections that are currently being
displayed by every current view.

A model should be expected to be able to get an iter independent of its
reffed state.</doc>
        <source-position filename="gtktreemodel.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1347">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1348">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_changed" invoker="row_changed">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1488">Emits the "row-changed" signal on @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1490">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1491">A #GtkTreePath pointing to the changed row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1492">A valid #GtkTreeIter pointing to the changed row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_deleted" invoker="row_deleted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1549">Emits the "row-deleted" signal on @tree_model.  This should be called by
models after a row has been removed.  The location pointed to by @path
should be the location that the row previously was at.  It may not be a
valid location anymore.</doc>
        <source-position filename="gtktreemodel.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1551">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1552">A #GtkTreePath pointing to the previous location of the deleted row.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_has_child_toggled"
                      invoker="row_has_child_toggled">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1528">Emits the "row-has-child-toggled" signal on @tree_model.  This should be
called by models after the child state of a node changes.</doc>
        <source-position filename="gtktreemodel.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1530">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1531">A #GtkTreePath pointing to the changed row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1532">A valid #GtkTreeIter pointing to the changed row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_inserted" invoker="row_inserted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1508">Emits the "row-inserted" signal on @tree_model</doc>
        <source-position filename="gtktreemodel.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1510">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1511">A #GtkTreePath pointing to the inserted row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1512">A valid #GtkTreeIter pointing to the inserted row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="rows_reordered" invoker="rows_reordered">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1569">Emits the "rows-reordered" signal on @tree_model.  This should be called by
models when their rows have been reordered.</doc>
        <source-position filename="gtktreemodel.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1571">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1572">A #GtkTreePath pointing to the tree node whose children have been
     reordered</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1574">A valid #GtkTreeIter pointing to the node whose children have been
     reordered, or %NULL if the depth of @path is 0.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="new_order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1576">an array of integers mapping the current position of each child
     to its old position before the re-ordering,
     i.e. @new_order&lt;literal&gt;[newpos] = oldpos&lt;/literal&gt;.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unref_node" invoker="unref_node">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1376">Lets the tree unref the node.  This is an optional method for models to
implement.  To be more specific, models may ignore this call as it exists
primarily for performance reasons.

For more information on what this means, see gtk_tree_model_ref_node().
Please note that nodes that are deleted are not unreffed.</doc>
        <source-position filename="gtktreemodel.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1378">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1379">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="filter_new"
              c:identifier="gtk_tree_model_filter_new"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="2961">Creates a new #GtkTreeModel, with @child_model as the child_model
and @root as the virtual root.</doc>
        <source-position filename="gtktreemodelfilter.h" line="74"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelfilter.c"
               line="2969">A new #GtkTreeModel.</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="child_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="2963">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="root"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="2964">A #GtkTreePath or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="gtk_tree_model_foreach">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1625">Calls func on each node in model in a depth-first fashion.
If @func returns %TRUE, then the tree ceases to be walked, and
gtk_tree_model_foreach() returns.</doc>
        <source-position filename="gtktreemodel.h" line="242"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1627">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1628">A function to be called on each row</doc>
            <type name="TreeModelForeachFunc"
                  c:type="GtkTreeModelForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1629">User data to passed to func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get" c:identifier="gtk_tree_model_get" introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1402">Gets the value of one or more cells in the row referenced by @iter.
The variable argument list should contain integer column numbers,
each column number followed by a place to store the value being
retrieved.  The list is terminated by a -1. For example, to get a
value from column 0 with type %G_TYPE_STRING, you would
write: &lt;literal&gt;gtk_tree_model_get (model, iter, 0, &amp;amp;place_string_here, -1)&lt;/literal&gt;,
where &lt;literal&gt;place_string_here&lt;/literal&gt; is a &lt;type&gt;gchar*&lt;/type&gt; to be
filled with the string.

Returned values with type %G_TYPE_OBJECT have to be unreferenced, values
with type %G_TYPE_STRING or %G_TYPE_BOXED have to be freed. Other values are
passed by value.</doc>
        <source-position filename="gtktreemodel.h" line="234"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1404">a #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1405">a row in @tree_model</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1406">pairs of column number and value return locations, terminated by -1</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="get_column_type"
              c:identifier="gtk_tree_model_get_column_type">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="971">Returns the type of the column.</doc>
        <source-position filename="gtktreemodel.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="978">The type of the column.</doc>
          <type name="GType" c:type="GType"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="973">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="974">The column index.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_flags" c:identifier="gtk_tree_model_get_flags">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="927">Returns a set of flags supported by this interface.  The flags are a bitwise
combination of #GtkTreeModelFlags.  The flags supported should not change
during the lifecycle of the @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="935">The flags supported by this interface.</doc>
          <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="929">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_iter" c:identifier="gtk_tree_model_get_iter">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="995">Sets @iter to a valid iterator pointing to @path.</doc>
        <source-position filename="gtktreemodel.h" line="198"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1003">%TRUE, if @iter was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="997">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="998">The uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="999">The #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_first"
              c:identifier="gtk_tree_model_get_iter_first">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1091">Initializes @iter with the first iterator in the tree (the one at the path
"0") and returns %TRUE.  Returns %FALSE if the tree is empty.</doc>
        <source-position filename="gtktreemodel.h" line="206"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1099">%TRUE, if @iter was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1093">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1094">The uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_iter_from_string"
              c:identifier="gtk_tree_model_get_iter_from_string">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1025">Sets @iter to a valid iterator pointing to @path_string, if it
exists. Otherwise, @iter is left invalid and %FALSE is returned.</doc>
        <source-position filename="gtktreemodel.h" line="201"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1034">%TRUE, if @iter was set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1027">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1028">An uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path_string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1029">A string representation of a #GtkTreePath.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_columns" c:identifier="gtk_tree_model_get_n_columns">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="951">Returns the number of columns supported by @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="192"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="957">The number of columns.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="953">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="gtk_tree_model_get_path">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1118">Returns a newly-created #GtkTreePath referenced by @iter.  This path should
be freed with gtk_tree_path_free().</doc>
        <source-position filename="gtktreemodel.h" line="208"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1126">a newly-created #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1120">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1121">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_string_from_iter"
              c:identifier="gtk_tree_model_get_string_from_iter"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1058">Generates a string representation of the iter. This string is a ':'
separated list of numbers. For example, "4:10:0:3" would be an
acceptable return value for this string.</doc>
        <source-position filename="gtktreemodel.h" line="204"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1067">A newly-allocated string. Must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1060">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1061">An #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_valist"
              c:identifier="gtk_tree_model_get_valist"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1436">See gtk_tree_model_get(), this version takes a &lt;type&gt;va_list&lt;/type&gt;
for language bindings to use.</doc>
        <source-position filename="gtktreemodel.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1438">a #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1439">a row in @tree_model</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1440">&lt;type&gt;va_list&lt;/type&gt; of column/return location pairs</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value" c:identifier="gtk_tree_model_get_value">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1143">Initializes and sets @value to that at @column.
When done with @value, g_value_unset() needs to be called
to free any allocated memory.</doc>
        <source-position filename="gtktreemodel.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1145">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1146">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1147">The column to lookup the value at.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1148">An empty #GValue to set.</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_children" c:identifier="gtk_tree_model_iter_children">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1197">Sets @iter to point to the first child of @parent.  If @parent has no
children, %FALSE is returned and @iter is set to be invalid.  @parent
will remain a valid node after this function has been called.

If @parent is %NULL returns the first node, equivalent to
&lt;literal&gt;gtk_tree_model_get_iter_first (tree_model, iter);&lt;/literal&gt;</doc>
        <source-position filename="gtktreemodel.h" line="216"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1210">%TRUE, if @child has been set to the first child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1199">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1200">The new #GtkTreeIter to be set to the child.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1201">The #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_has_child"
              c:identifier="gtk_tree_model_iter_has_child">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1230">Returns %TRUE if @iter has children, %FALSE otherwise.</doc>
        <source-position filename="gtktreemodel.h" line="219"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1237">%TRUE if @iter has children.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1232">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1233">The #GtkTreeIter to test for children.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_n_children"
              c:identifier="gtk_tree_model_iter_n_children">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1254">Returns the number of children that @iter has.  As a special case, if @iter
is %NULL, then the number of toplevel nodes is returned.</doc>
        <source-position filename="gtktreemodel.h" line="221"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1262">The number of children of @iter.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1256">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1257">The #GtkTreeIter, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_next" c:identifier="gtk_tree_model_iter_next">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1172">Sets @iter to point to the node following it at the current level.  If there
is no next @iter, %FALSE is returned and @iter is set to be invalid.</doc>
        <source-position filename="gtktreemodel.h" line="214"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1180">%TRUE if @iter has been changed to the next node.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1174">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1175">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_nth_child"
              c:identifier="gtk_tree_model_iter_nth_child">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1278">Sets @iter to be the child of @parent, using the given index.  The first
index is 0.  If @n is too big, or @parent has no children, @iter is set
to an invalid iterator and %FALSE is returned.  @parent will remain a valid
node after this function has been called.  As a special case, if @parent is
%NULL, then the @n&lt;!-- --&gt;th root node is set.</doc>
        <source-position filename="gtktreemodel.h" line="223"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1291">%TRUE, if @parent has an @n&lt;!-- --&gt;th child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1280">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1281">The #GtkTreeIter to set to the nth child.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1282">The #GtkTreeIter to get the child from, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1283">Then index of the desired child.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_parent" c:identifier="gtk_tree_model_iter_parent">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1313">Sets @iter to be the parent of @child.  If @child is at the toplevel, and
doesn't have a parent, then @iter is set to an invalid iterator and %FALSE
is returned.  @child will remain a valid node after this function has been
called.</doc>
        <source-position filename="gtktreemodel.h" line="227"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1324">%TRUE, if @iter is set to the parent of @child.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1315">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1316">The new #GtkTreeIter to set to the parent.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="child" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1317">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref_node" c:identifier="gtk_tree_model_ref_node">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1345">Lets the tree ref the node.  This is an optional method for models to
implement.  To be more specific, models may ignore this call as it exists
primarily for performance reasons.

This function is primarily meant as a way for views to let caching model
know when nodes are being displayed (and hence, whether or not to cache that
node.)  For example, a file-system based model would not want to keep the
entire file-hierarchy in memory, just the sections that are currently being
displayed by every current view.

A model should be expected to be able to get an iter independent of its
reffed state.</doc>
        <source-position filename="gtktreemodel.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1347">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1348">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_changed" c:identifier="gtk_tree_model_row_changed">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1488">Emits the "row-changed" signal on @tree_model.</doc>
        <source-position filename="gtktreemodel.h" line="252"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1490">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1491">A #GtkTreePath pointing to the changed row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1492">A valid #GtkTreeIter pointing to the changed row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_deleted" c:identifier="gtk_tree_model_row_deleted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1549">Emits the "row-deleted" signal on @tree_model.  This should be called by
models after a row has been removed.  The location pointed to by @path
should be the location that the row previously was at.  It may not be a
valid location anymore.</doc>
        <source-position filename="gtktreemodel.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1551">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1552">A #GtkTreePath pointing to the previous location of the deleted row.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_has_child_toggled"
              c:identifier="gtk_tree_model_row_has_child_toggled">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1528">Emits the "row-has-child-toggled" signal on @tree_model.  This should be
called by models after the child state of a node changes.</doc>
        <source-position filename="gtktreemodel.h" line="258"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1530">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1531">A #GtkTreePath pointing to the changed row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1532">A valid #GtkTreeIter pointing to the changed row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_inserted" c:identifier="gtk_tree_model_row_inserted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1508">Emits the "row-inserted" signal on @tree_model</doc>
        <source-position filename="gtktreemodel.h" line="255"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1510">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1511">A #GtkTreePath pointing to the inserted row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1512">A valid #GtkTreeIter pointing to the inserted row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="rows_reordered"
              c:identifier="gtk_tree_model_rows_reordered">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1569">Emits the "rows-reordered" signal on @tree_model.  This should be called by
models when their rows have been reordered.</doc>
        <source-position filename="gtktreemodel.h" line="263"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1571">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1572">A #GtkTreePath pointing to the tree node whose children have been
     reordered</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1574">A valid #GtkTreeIter pointing to the node whose children have been
     reordered, or %NULL if the depth of @path is 0.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="new_order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1576">an array of integers mapping the current position of each child
     to its old position before the re-ordering,
     i.e. @new_order&lt;literal&gt;[newpos] = oldpos&lt;/literal&gt;.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sort_new_with_model"
              c:identifier="gtk_tree_model_sort_new_with_model">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="321">Creates a new #GtkTreeModel, with @child_model as the child model.</doc>
        <source-position filename="gtktreemodelsort.h" line="85"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="327">A new #GtkTreeModel.</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="child_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="323">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref_node" c:identifier="gtk_tree_model_unref_node">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1376">Lets the tree unref the node.  This is an optional method for models to
implement.  To be more specific, models may ignore this call as it exists
primarily for performance reasons.

For more information on what this means, see gtk_tree_model_ref_node().
Please note that nodes that are deleted are not unreffed.</doc>
        <source-position filename="gtktreemodel.h" line="232"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1378">A #GtkTreeModel.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1379">The #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="row-changed" when="last">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="149">This signal is emitted when a row in the model has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="152">a #GtkTreePath identifying the changed row</doc>
            <type name="TreePath"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="153">a valid #GtkTreeIter pointing to the changed row</doc>
            <type name="TreeIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-deleted" when="first">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="225">This signal is emitted when a row has been deleted.

Note that no iterator is passed to the signal handler,
since the row is already deleted.

This should be called by models after a row has been removed.
The location pointed to by @path should be the location that
the row previously was at. It may not be a valid location anymore.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="228">a #GtkTreePath identifying the row</doc>
            <type name="TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-has-child-toggled" when="last">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="205">This signal is emitted when a row has gotten the first child row or lost
its last child row.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="208">a #GtkTreePath identifying the row</doc>
            <type name="TreePath"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="209">a valid #GtkTreeIter pointing to the row</doc>
            <type name="TreeIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-inserted" when="first">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="181">This signal is emitted when a new row has been inserted in the model.

Note that the row may still be empty at this point, since
it is a common pattern to first insert an empty row, and
then fill it with the desired values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="184">a #GtkTreePath identifying the new row</doc>
            <type name="TreePath"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="185">a valid #GtkTreeIter pointing to the new row</doc>
            <type name="TreeIter"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="rows-reordered" when="first">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="251">This signal is emitted when the children of a node in the #GtkTreeModel
have been reordered.

Note that this signal is &lt;emphasis&gt;not&lt;/emphasis&gt; emitted
when rows are reordered by DND, since this is implemented
by removing and then reinserting the row.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="254">a #GtkTreePath identifying the tree node whose children
       have been reordered</doc>
            <type name="TreePath"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="256">a valid #GtkTreeIter pointing to the node whose</doc>
            <type name="TreeIter"/>
          </parameter>
          <parameter name="new_order"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="257">an array of integers mapping the current position of
            each child to its old position before the re-ordering,
            i.e. @new_order&lt;literal&gt;[newpos] = oldpos&lt;/literal&gt;.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <class name="TreeModelFilter"
           c:symbol-prefix="tree_model_filter"
           c:type="GtkTreeModelFilter"
           parent="GObject.Object"
           glib:type-name="GtkTreeModelFilter"
           glib:get-type="gtk_tree_model_filter_get_type"
           glib:type-struct="TreeModelFilterClass">
      <source-position filename="gtktreemodelfilter.h" line="70"/>
      <implements name="TreeDragSource"/>
      <implements name="TreeModel"/>
      <method name="clear_cache"
              c:identifier="gtk_tree_model_filter_clear_cache"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3482">This function should almost never be called. It clears the @filter
of any cached iterators that haven't been reffed with
gtk_tree_model_ref_node(). This might be useful if the child model
being filtered is static (and doesn't change often) and there has been
a lot of unreffed access to nodes. As a side effect of this function,
all unreffed iters will be invalid.</doc>
        <source-position filename="gtktreemodelfilter.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3484">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="convert_child_iter_to_iter"
              c:identifier="gtk_tree_model_filter_convert_child_iter_to_iter"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3149">Sets @filter_iter to point to the row in @filter that corresponds to the
row pointed at by @child_iter.  If @filter_iter was not set, %FALSE is
returned.</doc>
        <source-position filename="gtktreemodelfilter.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodelfilter.c"
               line="3159">%TRUE, if @filter_iter was set, i.e. if @child_iter is a
valid iterator pointing to a visible row in child model.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3151">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="filter_iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3152">An uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="child_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3153">A valid #GtkTreeIter pointing to a row on the child model.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_child_path_to_path"
              c:identifier="gtk_tree_model_filter_convert_child_path_to_path"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3328">Converts @child_path to a path relative to @filter. That is, @child_path
points to a path in the child model. The rerturned path will point to the
same row in the filtered model. If @child_path isn't a valid path on the
child model or points to a row which is not visible in @filter, then %NULL
is returned.</doc>
        <source-position filename="gtktreemodelfilter.h" line="98"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelfilter.c"
               line="3339">A newly allocated #GtkTreePath, or %NULL.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3330">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="child_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3331">A #GtkTreePath to convert.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_iter_to_child_iter"
              c:identifier="gtk_tree_model_filter_convert_iter_to_child_iter"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3196">Sets @child_iter to point to the row pointed to by @filter_iter.</doc>
        <source-position filename="gtktreemodelfilter.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3198">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="child_iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3199">An uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="filter_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3200">A valid #GtkTreeIter pointing to a row on @filter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_path_to_child_path"
              c:identifier="gtk_tree_model_filter_convert_path_to_child_path"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3372">Converts @filter_path to a path on the child model of @filter. That is,
@filter_path points to a location in @filter. The returned path will
point to the same location in the model not being filtered. If @filter_path
does not point to a location in the child model, %NULL is returned.</doc>
        <source-position filename="gtktreemodelfilter.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelfilter.c"
               line="3382">A newly allocated #GtkTreePath, or %NULL.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3374">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="filter_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3375">A #GtkTreePath to convert.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_model"
              c:identifier="gtk_tree_model_filter_get_model"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="2997">Returns a pointer to the child model of @filter.</doc>
        <source-position filename="gtktreemodelfilter.h" line="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodelfilter.c"
               line="3003">A pointer to a #GtkTreeModel.</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="2999">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="refilter"
              c:identifier="gtk_tree_model_filter_refilter"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3462">Emits ::row_changed for each row in the child model, which causes
the filter to re-evaluate whether a row is visible or not.</doc>
        <source-position filename="gtktreemodelfilter.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3464">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_modify_func"
              c:identifier="gtk_tree_model_filter_set_modify_func"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3073">With the @n_columns and @types parameters, you give an array of column
types for this model (which will be exposed to the parent model/view).
The @func, @data and @destroy parameters are for specifying the modify
function. The modify function will get called for &lt;emphasis&gt;each&lt;/emphasis&gt;
data access, the goal of the modify function is to return the data which
should be displayed at the location specified using the parameters of the
modify function.</doc>
        <source-position filename="gtktreemodelfilter.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3075">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3076">The number of columns in the filter model.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3077">The #GType&lt;!-- --&gt;s of the columns.</doc>
            <array length="0" zero-terminated="0" c:type="GType*">
              <type name="GType" c:type="GType"/>
            </array>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3078">A #GtkTreeModelFilterModifyFunc</doc>
            <type name="TreeModelFilterModifyFunc"
                  c:type="GtkTreeModelFilterModifyFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3079">User data to pass to the modify function, or %NULL.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3080">Destroy notifier of @data, or %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_column"
              c:identifier="gtk_tree_model_filter_set_visible_column"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3122">Sets @column of the child_model to be the column where @filter should
look for visibility information. @columns should be a column of type
%G_TYPE_BOOLEAN, where %TRUE means that a row is visible, and %FALSE
if not.</doc>
        <source-position filename="gtktreemodelfilter.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3124">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3125">A #gint which is the column containing the visible information.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible_func"
              c:identifier="gtk_tree_model_filter_set_visible_func"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreemodelfilter.c"
             line="3015">Sets the visible function used when filtering the @filter to be @func. The
function should return %TRUE if the given row should be visible and
%FALSE otherwise.

If the condition calculated by the function changes over time (e.g. because
it depends on some global parameters), you must call
gtk_tree_model_filter_refilter() to keep the visibility information of
the model uptodate.

Note that @func is called whenever a row is inserted, when it may still be
empty. The visible function should therefore take special care of empty
rows, like in the example below.

&lt;informalexample&gt;&lt;programlisting&gt;
static gboolean
visible_func (GtkTreeModel *model,
              GtkTreeIter  *iter,
              gpointer      data)
{
  /&amp;ast; Visible if row is non-empty and first column is "HI" &amp;ast;/
  gchar *str;
  gboolean visible = FALSE;

  gtk_tree_model_get (model, iter, 0, &amp;str, -1);
  if (str &amp;&amp; strcmp (str, "HI") == 0)
    visible = TRUE;
  g_free (str);

  return visible;
}
&lt;/programlisting&gt;&lt;/informalexample&gt;</doc>
        <source-position filename="gtktreemodelfilter.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3017">A #GtkTreeModelFilter.</doc>
            <type name="TreeModelFilter" c:type="GtkTreeModelFilter*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3018">A #GtkTreeModelFilterVisibleFunc, the visible function.</doc>
            <type name="TreeModelFilterVisibleFunc"
                  c:type="GtkTreeModelFilterVisibleFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3019">User data to pass to the visible function, or %NULL.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreemodelfilter.c"
                 line="3020">Destroy notifier of @data, or %NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <property name="child-model"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="TreeModel"/>
      </property>
      <property name="virtual-root"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="TreePath"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="TreeModelFilterPrivate"
              c:type="GtkTreeModelFilterPrivate*"/>
      </field>
    </class>
    <record name="TreeModelFilterClass"
            c:type="GtkTreeModelFilterClass"
            glib:is-gtype-struct-for="TreeModelFilter">
      <source-position filename="gtktreemodelfilter.h" line="70"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved0" introspectable="0">
        <callback name="_gtk_reserved0">
          <source-position filename="gtktreemodelfilter.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreemodelfilter.h" line="67"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreemodelfilter.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreemodelfilter.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TreeModelFilterModifyFunc"
              c:type="GtkTreeModelFilterModifyFunc">
      <source-position filename="gtktreemodelfilter.h" line="43"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="column" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TreeModelFilterPrivate"
            c:type="GtkTreeModelFilterPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktreemodelfilter.h" line="51"/>
    </record>
    <callback name="TreeModelFilterVisibleFunc"
              c:type="GtkTreeModelFilterVisibleFunc">
      <source-position filename="gtktreemodelfilter.h" line="40"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="TreeModelFlags"
              glib:type-name="GtkTreeModelFlags"
              glib:get-type="gtk_tree_model_flags_get_type"
              c:type="GtkTreeModelFlags">
      <member name="iters_persist"
              value="1"
              c:identifier="GTK_TREE_MODEL_ITERS_PERSIST"
              glib:nick="iters-persist"
              glib:name="GTK_TREE_MODEL_ITERS_PERSIST">
      </member>
      <member name="list_only"
              value="2"
              c:identifier="GTK_TREE_MODEL_LIST_ONLY"
              glib:nick="list-only"
              glib:name="GTK_TREE_MODEL_LIST_ONLY">
      </member>
    </bitfield>
    <callback name="TreeModelForeachFunc" c:type="GtkTreeModelForeachFunc">
      <source-position filename="gtktreemodel.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TreeModelIface"
            c:type="GtkTreeModelIface"
            glib:is-gtype-struct-for="TreeModel">
      <source-position filename="gtktreemodel.h" line="121"/>
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="row_changed">
        <callback name="row_changed">
          <source-position filename="gtktreemodel.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1490">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1491">A #GtkTreePath pointing to the changed row</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1492">A valid #GtkTreeIter pointing to the changed row</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_inserted">
        <callback name="row_inserted">
          <source-position filename="gtktreemodel.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1510">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1511">A #GtkTreePath pointing to the inserted row</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1512">A valid #GtkTreeIter pointing to the inserted row</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_has_child_toggled">
        <callback name="row_has_child_toggled">
          <source-position filename="gtktreemodel.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1530">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1531">A #GtkTreePath pointing to the changed row</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1532">A valid #GtkTreeIter pointing to the changed row</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_deleted">
        <callback name="row_deleted">
          <source-position filename="gtktreemodel.h" line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1551">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1552">A #GtkTreePath pointing to the previous location of the deleted row.</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="rows_reordered">
        <callback name="rows_reordered">
          <source-position filename="gtktreemodel.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1571">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1572">A #GtkTreePath pointing to the tree node whose children have been
     reordered</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1574">A valid #GtkTreeIter pointing to the node whose children have been
     reordered, or %NULL if the depth of @path is 0.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="new_order" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1576">an array of integers mapping the current position of each child
     to its old position before the re-ordering,
     i.e. @new_order&lt;literal&gt;[newpos] = oldpos&lt;/literal&gt;.</doc>
              <type name="gint" c:type="gint*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_flags">
        <callback name="get_flags">
          <source-position filename="gtktreemodel.h" line="87"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="935">The flags supported by this interface.</doc>
            <type name="TreeModelFlags" c:type="GtkTreeModelFlags"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="929">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_n_columns">
        <callback name="get_n_columns">
          <source-position filename="gtktreemodel.h" line="89"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="957">The number of columns.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="953">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_column_type">
        <callback name="get_column_type">
          <source-position filename="gtktreemodel.h" line="90"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="978">The type of the column.</doc>
            <type name="GType" c:type="GType"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="973">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="index_" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="974">The column index.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_iter">
        <callback name="get_iter">
          <source-position filename="gtktreemodel.h" line="92"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1003">%TRUE, if @iter was set.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="997">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="998">The uninitialized #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="999">The #GtkTreePath.</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_path">
        <callback name="get_path">
          <source-position filename="gtktreemodel.h" line="95"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1126">a newly-created #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1120">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1121">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_value">
        <callback name="get_value">
          <source-position filename="gtktreemodel.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1145">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1146">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="column" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1147">The column to lookup the value at.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="value"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1148">An empty #GValue to set.</doc>
              <type name="GObject.Value" c:type="GValue*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_next">
        <callback name="iter_next">
          <source-position filename="gtktreemodel.h" line="101"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1180">%TRUE if @iter has been changed to the next node.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1174">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1175">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_children">
        <callback name="iter_children">
          <source-position filename="gtktreemodel.h" line="103"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1210">%TRUE, if @child has been set to the first child.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1199">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1200">The new #GtkTreeIter to be set to the child.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="parent"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1201">The #GtkTreeIter, or %NULL</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_has_child">
        <callback name="iter_has_child">
          <source-position filename="gtktreemodel.h" line="106"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1237">%TRUE if @iter has children.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1232">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1233">The #GtkTreeIter to test for children.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_n_children">
        <callback name="iter_n_children">
          <source-position filename="gtktreemodel.h" line="108"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1262">The number of children of @iter.</doc>
            <type name="gint" c:type="gint"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1256">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1257">The #GtkTreeIter, or %NULL.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_nth_child">
        <callback name="iter_nth_child">
          <source-position filename="gtktreemodel.h" line="110"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1291">%TRUE, if @parent has an @n&lt;!-- --&gt;th child.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1280">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1281">The #GtkTreeIter to set to the nth child.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="parent"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1282">The #GtkTreeIter to get the child from, or %NULL.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="n" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1283">Then index of the desired child.</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="iter_parent">
        <callback name="iter_parent">
          <source-position filename="gtktreemodel.h" line="114"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1324">%TRUE, if @iter is set to the parent of @child.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1315">A #GtkTreeModel</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter"
                       direction="out"
                       caller-allocates="1"
                       transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1316">The new #GtkTreeIter to set to the parent.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="child" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1317">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ref_node">
        <callback name="ref_node">
          <source-position filename="gtktreemodel.h" line="117"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1347">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1348">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unref_node">
        <callback name="unref_node">
          <source-position filename="gtktreemodel.h" line="119"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_model" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1378">A #GtkTreeModel.</doc>
              <type name="TreeModel" c:type="GtkTreeModel*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreemodel.c"
                   line="1379">The #GtkTreeIter.</doc>
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="TreeModelSort"
           c:symbol-prefix="tree_model_sort"
           c:type="GtkTreeModelSort"
           parent="GObject.Object"
           glib:type-name="GtkTreeModelSort"
           glib:get-type="gtk_tree_model_sort_get_type"
           glib:type-struct="TreeModelSortClass">
      <source-position filename="gtktreemodelsort.h" line="81"/>
      <implements name="TreeDragSource"/>
      <implements name="TreeModel"/>
      <implements name="TreeSortable"/>
      <method name="clear_cache"
              c:identifier="gtk_tree_model_sort_clear_cache">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2453">This function should almost never be called.  It clears the @tree_model_sort
of any cached iterators that haven't been reffed with
gtk_tree_model_ref_node().  This might be useful if the child model being
sorted is static (and doesn't change often) and there has been a lot of
unreffed access to nodes.  As a side effect of this function, all unreffed
iters will be invalid.</doc>
        <source-position filename="gtktreemodelsort.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2455">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="convert_child_iter_to_iter"
              c:identifier="gtk_tree_model_sort_convert_child_iter_to_iter">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2087">Sets @sort_iter to point to the row in @tree_model_sort that corresponds to
the row pointed at by @child_iter.  If @sort_iter was not set, %FALSE
is returned.  Note: a boolean is only returned since 2.14.</doc>
        <source-position filename="gtktreemodelsort.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="2097">%TRUE, if @sort_iter was set, i.e. if @sort_iter is a
valid iterator pointer to a visible row in the child model.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2089">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
          <parameter name="sort_iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2090">An uninitialized #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="child_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2091">A valid #GtkTreeIter pointing to a row on the child model</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_child_path_to_path"
              c:identifier="gtk_tree_model_sort_convert_child_path_to_path">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2064">Converts @child_path to a path relative to @tree_model_sort.  That is,
@child_path points to a path in the child model.  The returned path will
point to the same row in the sorted model.  If @child_path isn't a valid
path on the child model, then %NULL is returned.</doc>
        <source-position filename="gtktreemodelsort.h" line="88"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="2074">A newly allocated #GtkTreePath, or %NULL</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2066">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
          <parameter name="child_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2067">A #GtkTreePath to convert</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_iter_to_child_iter"
              c:identifier="gtk_tree_model_sort_convert_iter_to_child_iter">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2194">Sets @child_iter to point to the row pointed to by @sorted_iter.</doc>
        <source-position filename="gtktreemodelsort.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2196">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
          <parameter name="child_iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2197">An uninitialized #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="sorted_iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2198">A valid #GtkTreeIter pointing to a row on @tree_model_sort.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_path_to_child_path"
              c:identifier="gtk_tree_model_sort_convert_path_to_child_path">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2135">Converts @sorted_path to a path on the child model of @tree_model_sort.
That is, @sorted_path points to a location in @tree_model_sort.  The
returned path will point to the same location in the model not being
sorted.  If @sorted_path does not point to a location in the child model,
%NULL is returned.</doc>
        <source-position filename="gtktreemodelsort.h" line="93"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="2146">A newly allocated #GtkTreePath, or %NULL</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2137">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
          <parameter name="sorted_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2138">A #GtkTreePath to convert</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_model"
              c:identifier="gtk_tree_model_sort_get_model"
              glib:get-property="model">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="1986">Returns the model the #GtkTreeModelSort is sorting.</doc>
        <source-position filename="gtktreemodelsort.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="1992">the "child model" being sorted</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="1988">a #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iter_is_valid"
              c:identifier="gtk_tree_model_sort_iter_is_valid"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2494">&lt;warning&gt;&lt;para&gt;
This function is slow. Only use it for debugging and/or testing purposes.
&lt;/para&gt;&lt;/warning&gt;

Checks if the given iter is a valid iter for this #GtkTreeModelSort.</doc>
        <source-position filename="gtktreemodelsort.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodelsort.c"
               line="2505">%TRUE if the iter is valid, %FALSE if the iter is invalid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2496">A #GtkTreeModelSort.</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2497">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_default_sort_func"
              c:identifier="gtk_tree_model_sort_reset_default_sort_func">
        <doc xml:space="preserve"
             filename="gtktreemodelsort.c"
             line="2422">This resets the default sort function to be in the 'unsorted' state.  That
is, it is in the same order as the child model. It will re-sort the model
to be in the same order as the child model only if the #GtkTreeModelSort
is in 'unsorted' state.</doc>
        <source-position filename="gtktreemodelsort.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_model_sort" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodelsort.c"
                 line="2424">A #GtkTreeModelSort</doc>
            <type name="TreeModelSort" c:type="GtkTreeModelSort*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="model"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_model">
        <type name="TreeModel"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="root" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="stamp" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="child_flags" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="child_model" readable="0" private="1">
        <type name="TreeModel" c:type="GtkTreeModel*"/>
      </field>
      <field name="zero_ref_count" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="sort_list" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="sort_column_id" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="order" readable="0" private="1">
        <type name="SortType" c:type="GtkSortType"/>
      </field>
      <field name="default_sort_func" readable="0" private="1">
        <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
      </field>
      <field name="default_sort_data" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="default_sort_destroy" readable="0" private="1">
        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
      </field>
      <field name="changed_id" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="inserted_id" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_child_toggled_id" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="deleted_id" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="reordered_id" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="TreeModelSortClass"
            c:type="GtkTreeModelSortClass"
            glib:is-gtype-struct-for="TreeModelSort">
      <source-position filename="gtktreemodelsort.h" line="81"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreemodelsort.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreemodelsort.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreemodelsort.h" line="79"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktreemodelsort.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="TreePath"
            c:type="GtkTreePath"
            opaque="1"
            glib:type-name="GtkTreePath"
            glib:get-type="gtk_tree_path_get_type"
            c:symbol-prefix="tree_path">
      <source-position filename="gtktreemodel.h" line="44"/>
      <constructor name="new" c:identifier="gtk_tree_path_new">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="380">Creates a new #GtkTreePath.  This structure refers to a row.</doc>
        <source-position filename="gtktreemodel.h" line="125"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="385">A newly created #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
      </constructor>
      <constructor name="new_first" c:identifier="gtk_tree_path_new_first">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="522">Creates a new #GtkTreePath.  The string representation of this path is "0"</doc>
        <source-position filename="gtktreemodel.h" line="130"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="527">A new #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_indices"
                   c:identifier="gtk_tree_path_new_from_indices"
                   version="2.2"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="450">Creates a new path with @first_index and @varargs as indices.</doc>
        <source-position filename="gtktreemodel.h" line="127"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="457">A newly created #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <parameter name="first_index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="452">first integer</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="gtk_tree_path_new_from_string">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="399">Creates a new #GtkTreePath initialized to @path.  @path is expected to be a
colon separated list of numbers.  For example, the string "10:4:0" would
create a path of depth 3 pointing to the 11th child of the root node, the 5th
child of that 11th child, and the 1st child of that 5th child.  If an invalid
path string is passed in, %NULL is returned.</doc>
        <source-position filename="gtktreemodel.h" line="126"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="409">A newly-created #GtkTreePath, or %NULL</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="401">The string representation of a path.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="append_index" c:identifier="gtk_tree_path_append_index">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="540">Appends a new index to a path.  As a result, the depth of the path is
increased.</doc>
        <source-position filename="gtktreemodel.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="542">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="543">The index.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="gtk_tree_path_compare">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="698">Compares two paths.  If @a appears before @b in a tree, then -1 is returned.
If @b appears before @a, then 1 is returned.  If the two nodes are equal,
then 0 is returned.</doc>
        <source-position filename="gtktreemodel.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="707">The relative positions of @a and @b</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="700">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="const GtkTreePath*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="701">A #GtkTreePath to compare with.</doc>
            <type name="TreePath" c:type="const GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="gtk_tree_path_copy">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="663">Creates a new #GtkTreePath as a copy of @path.</doc>
        <source-position filename="gtktreemodel.h" line="140"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="669">A new #GtkTreePath.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="665">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="const GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="down" c:identifier="gtk_tree_path_down">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="860">Moves @path to point to the first child of the current path.</doc>
        <source-position filename="gtktreemodel.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="862">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_tree_path_free">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="647">Frees @path.</doc>
        <source-position filename="gtktreemodel.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="649">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_depth" c:identifier="gtk_tree_path_get_depth">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="589">Returns the current depth of @path.</doc>
        <source-position filename="gtktreemodel.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="595">The depth of @path</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="591">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indices" c:identifier="gtk_tree_path_get_indices">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="605">Returns the current indices of @path.  This is an array of integers, each
representing a node in a tree.  This value should not be freed.</doc>
        <source-position filename="gtktreemodel.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="612">The current indices, or %NULL.</doc>
          <type name="gint" c:type="gint*"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="607">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_indices_with_depth"
              c:identifier="gtk_tree_path_get_indices_with_depth"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="622">Returns the current indices of @path.
This is an array of integers, each representing a node in a tree.
It also returns the number of elements in the array.
The array should not be freed.</doc>
        <source-position filename="gtktreemodel.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="632">The current indices, or %NULL.</doc>
          <array length="0" zero-terminated="0" c:type="gint*">
            <type name="gint" c:type="gint"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="624">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
          <parameter name="depth"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="625">Number of elements returned in the integer array</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_ancestor" c:identifier="gtk_tree_path_is_ancestor">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="732">Returns %TRUE if @descendant is a descendant of @path.</doc>
        <source-position filename="gtktreemodel.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="739">%TRUE if @descendant is contained inside @path</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="734">a #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
          <parameter name="descendant" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="735">another #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_descendant" c:identifier="gtk_tree_path_is_descendant">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="765">Returns %TRUE if @path is a descendant of @ancestor.</doc>
        <source-position filename="gtktreemodel.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="772">%TRUE if @ancestor contains @path somewhere below it</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="767">a #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
          <parameter name="ancestor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="768">another #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="gtk_tree_path_next">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="799">Moves the @path to point to the next node at the current depth.</doc>
        <source-position filename="gtktreemodel.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="801">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="prepend_index" c:identifier="gtk_tree_path_prepend_index">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="560">Prepends a new index to a path.  As a result, the depth of the path is
increased.</doc>
        <source-position filename="gtktreemodel.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="562">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="563">The index.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="prev" c:identifier="gtk_tree_path_prev">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="814">Moves the @path to point to the previous node at the current depth,
if it exists.</doc>
        <source-position filename="gtktreemodel.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="821">%TRUE if @path has a previous node, and the move was made.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="816">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="gtk_tree_path_to_string">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="485">Generates a string representation of the path.  This string is a ':'
separated list of numbers.  For example, "4:10:0:3" would be an acceptable return value for this string.</doc>
        <source-position filename="gtktreemodel.h" line="129"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="492">A newly-allocated string.  Must be freed with g_free().</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="487">A #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="up" c:identifier="gtk_tree_path_up">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="839">Moves the @path to point to its parent node, if it has a parent.</doc>
        <source-position filename="gtktreemodel.h" line="146"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="845">%TRUE if @path has a parent, and the move was made.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="841">A #GtkTreePath.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="TreeRowReference"
            c:type="GtkTreeRowReference"
            opaque="1"
            glib:type-name="GtkTreeRowReference"
            glib:get-type="gtk_tree_row_reference_get_type"
            c:symbol-prefix="tree_row_reference">
      <source-position filename="gtktreemodel.h" line="45"/>
      <constructor name="new" c:identifier="gtk_tree_row_reference_new">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1906">Creates a row reference based on @path.  This reference will keep pointing
to the node pointed to by @path, so long as it exists.  It listens to all
signals emitted by @model, and updates its path appropriately.  If @path
isn't a valid path in @model, then %NULL is returned.</doc>
        <source-position filename="gtktreemodel.h" line="164"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1916">A newly allocated #GtkTreeRowReference, or %NULL</doc>
          <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
        </return-value>
        <parameters>
          <parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1908">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1909">A valid #GtkTreePath to monitor</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_proxy"
                   c:identifier="gtk_tree_row_reference_new_proxy">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="1932">You do not need to use this function.  Creates a row reference based on
@path.  This reference will keep pointing to the node pointed to by @path,
so long as it exists.  If @path isn't a valid path in @model, then %NULL is
returned.  However, unlike references created with
gtk_tree_row_reference_new(), it does not listen to the model for changes.
The creator of the row reference must do this explicitly using
gtk_tree_row_reference_inserted(), gtk_tree_row_reference_deleted(),
gtk_tree_row_reference_reordered().

These functions must be called exactly once per proxy when the
corresponding signal on the model is emitted. This single call
updates all row references for that proxy. Since built-in GTK+
objects like #GtkTreeView already use this mechanism internally,
using them as the proxy object will produce unpredictable results.
Further more, passing the same object as @model and @proxy
doesn't work for reasons of internal implementation.

This type of row reference is primarily meant by structures that need to
carefully monitor exactly when a row reference updates itself, and is not
generally needed by most applications.</doc>
        <source-position filename="gtktreemodel.h" line="166"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="1959">A newly allocated #GtkTreeRowReference, or %NULL</doc>
          <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
        </return-value>
        <parameters>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1934">A proxy #GObject</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1935">A #GtkTreeModel</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="1936">A valid #GtkTreePath to monitor</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy"
              c:identifier="gtk_tree_row_reference_copy"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2078">Copies a #GtkTreeRowReference.</doc>
        <source-position filename="gtktreemodel.h" line="172"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2084">a copy of @reference.</doc>
          <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reference" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2080">a #GtkTreeRowReference</doc>
            <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gtk_tree_row_reference_free">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2096">Free's @reference. @reference may be %NULL.</doc>
        <source-position filename="gtktreemodel.h" line="173"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reference"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2098">A #GtkTreeRowReference, or %NULL</doc>
            <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_model"
              c:identifier="gtk_tree_row_reference_get_model"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2041">Returns the model that the row reference is monitoring.</doc>
        <source-position filename="gtktreemodel.h" line="170"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2047">the model</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reference" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2043">A #GtkTreeRowReference</doc>
            <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path" c:identifier="gtk_tree_row_reference_get_path">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2018">Returns a path that the row reference currently points to, or %NULL if the
path pointed to is no longer valid.</doc>
        <source-position filename="gtktreemodel.h" line="169"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2025">A current path, or %NULL.</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reference" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2020">A #GtkTreeRowReference</doc>
            <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="valid" c:identifier="gtk_tree_row_reference_valid">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2059">Returns %TRUE if the @reference is non-%NULL and refers to a current valid
path.</doc>
        <source-position filename="gtktreemodel.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2066">%TRUE if @reference points to a valid path.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="reference"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2061">A #GtkTreeRowReference, or %NULL</doc>
            <type name="TreeRowReference" c:type="GtkTreeRowReference*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="deleted" c:identifier="gtk_tree_row_reference_deleted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2155">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "row_deleted" signal.</doc>
        <source-position filename="gtktreemodel.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2157">A #GObject</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2158">The path position that was deleted</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </function>
      <function name="inserted" c:identifier="gtk_tree_row_reference_inserted">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2138">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "row_inserted" signal.</doc>
        <source-position filename="gtktreemodel.h" line="176"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2140">A #GObject</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2141">The row position that was inserted</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </function>
      <function name="reordered"
                c:identifier="gtk_tree_row_reference_reordered">
        <doc xml:space="preserve"
             filename="gtktreemodel.c"
             line="2172">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "rows_reordered" signal.</doc>
        <source-position filename="gtktreemodel.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2174">A #GObject</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2175">The parent path of the reordered signal</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2176">The iter pointing to the parent of the reordered</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="new_order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreemodel.c"
                 line="2177">The new order of rows</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="TreeSelection"
           c:symbol-prefix="tree_selection"
           c:type="GtkTreeSelection"
           parent="GObject.Object"
           glib:type-name="GtkTreeSelection"
           glib:get-type="gtk_tree_selection_get_type"
           glib:type-struct="TreeSelectionClass">
      <source-position filename="gtktreeselection.h" line="73"/>
      <virtual-method name="changed">
        <source-position filename="gtktreeselection.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="count_selected_rows"
              c:identifier="gtk_tree_selection_count_selected_rows"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="536">Returns the number of rows that have been selected in @tree.</doc>
        <source-position filename="gtktreeselection.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="542">The number of rows selected.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="538">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mode" c:identifier="gtk_tree_selection_get_mode">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="226">Gets the selection mode for @selection. See
gtk_tree_selection_set_mode().</doc>
        <source-position filename="gtktreeselection.h" line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="233">the current selection mode</doc>
          <type name="SelectionMode" c:type="GtkSelectionMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="228">a #GtkTreeSelection</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_select_function"
              c:identifier="gtk_tree_selection_get_select_function"
              version="2.14"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="277">Returns the current selection function.</doc>
        <source-position filename="gtktreeselection.h" line="88"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="283">The function.</doc>
          <type name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="279">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="gtk_tree_selection_get_selected">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="327">Sets @iter to the currently selected node if @selection is set to
#GTK_SELECTION_SINGLE or #GTK_SELECTION_BROWSE.  @iter may be NULL if you
just want to test if @selection has any selected nodes.  @model is filled
with the current model as a convenience.  This function will not work if you
use @selection is #GTK_SELECTION_MULTIPLE.</doc>
        <source-position filename="gtktreeselection.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="339">TRUE, if there is a selected node.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="329">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="model"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="330">A pointer to set to the #GtkTreeModel, or NULL.</doc>
            <type name="TreeModel" c:type="GtkTreeModel**"/>
          </parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="331">The #GtkTreeIter, or NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_selected_rows"
              c:identifier="gtk_tree_selection_get_selected_rows"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="402">Creates a list of path of all selected rows. Additionally, if you are
planning on modifying the model after calling this function, you may
want to convert the returned list into a list of #GtkTreeRowReference&lt;!-- --&gt;s.
To do this, you can use gtk_tree_row_reference_new().

To free the return value, use:
|[
g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
g_list_free (list);
]|</doc>
        <source-position filename="gtktreeselection.h" line="95"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="418">A #GList containing a #GtkTreePath for each selected row.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TreePath"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="404">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="model"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="405">A pointer to set to the #GtkTreeModel, or %NULL.</doc>
            <type name="TreeModel" c:type="GtkTreeModel**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tree_view"
              c:identifier="gtk_tree_selection_get_tree_view">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="311">Returns the tree view associated with @selection.</doc>
        <source-position filename="gtktreeselection.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="317">A #GtkTreeView</doc>
          <type name="TreeView" c:type="GtkTreeView*"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="313">A #GtkTreeSelection</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_data"
              c:identifier="gtk_tree_selection_get_user_data"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="295">Returns the user data for the selection function.</doc>
        <source-position filename="gtktreeselection.h" line="85"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="301">The user data.</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="297">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iter_is_selected"
              c:identifier="gtk_tree_selection_iter_is_selected">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="898">Returns %TRUE if the row at @iter is currently selected.</doc>
        <source-position filename="gtktreeselection.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="905">%TRUE, if @iter is selected</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="900">A #GtkTreeSelection</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="901">A valid #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="path_is_selected"
              c:identifier="gtk_tree_selection_path_is_selected">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="861">Returns %TRUE if the row pointed to by @path is currently selected.  If @path
does not point to a valid location, %FALSE is returned</doc>
        <source-position filename="gtktreeselection.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeselection.c"
               line="869">%TRUE if @path is selected.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="863">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="864">A #GtkTreePath to check selection on.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_all" c:identifier="gtk_tree_selection_select_all">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="986">Selects all the nodes. @selection must be set to #GTK_SELECTION_MULTIPLE
mode.</doc>
        <source-position filename="gtktreeselection.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="988">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="select_iter" c:identifier="gtk_tree_selection_select_iter">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="804">Selects the specified iterator.</doc>
        <source-position filename="gtktreeselection.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="806">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="807">The #GtkTreeIter to be selected.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_path" c:identifier="gtk_tree_selection_select_path">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="728">Select the row at @path.</doc>
        <source-position filename="gtktreeselection.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="730">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="731">The #GtkTreePath to be selected.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="select_range"
              c:identifier="gtk_tree_selection_select_range">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="1205">Selects a range of nodes, determined by @start_path and @end_path inclusive.
@selection must be set to #GTK_SELECTION_MULTIPLE mode.</doc>
        <source-position filename="gtktreeselection.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1207">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="start_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1208">The initial node of the range.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="end_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1209">The final node of the range.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="selected_foreach"
              c:identifier="gtk_tree_selection_selected_foreach">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="585">Calls a function for each selected node. Note that you cannot modify
the tree or selection from within this function. As a result,
gtk_tree_selection_get_selected_rows() might be more useful.</doc>
        <source-position filename="gtktreeselection.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="587">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="588">The function to call for each selected node.</doc>
            <type name="TreeSelectionForeachFunc"
                  c:type="GtkTreeSelectionForeachFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="589">user data to pass to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mode" c:identifier="gtk_tree_selection_set_mode">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="149">Sets the selection mode of the @selection.  If the previous type was
#GTK_SELECTION_MULTIPLE, then the anchor is kept selected, if it was
previously selected.</doc>
        <source-position filename="gtktreeselection.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="151">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="152">The selection mode</doc>
            <type name="SelectionMode" c:type="GtkSelectionMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_select_function"
              c:identifier="gtk_tree_selection_set_select_function">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="243">Sets the selection function.  If set, this function is called before any node
is selected or unselected, giving some control over which nodes are selected.
The select function should return %TRUE if the state of the node may be toggled,
and %FALSE if the state of the node should be left unchanged.</doc>
        <source-position filename="gtktreeselection.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="245">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="246">The selection function.</doc>
            <type name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="247">The selection function's data.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="248">The destroy function for user data.  May be NULL.</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_all"
              c:identifier="gtk_tree_selection_unselect_all">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="1090">Unselects all the nodes.</doc>
        <source-position filename="gtktreeselection.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1092">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unselect_iter"
              c:identifier="gtk_tree_selection_unselect_iter">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="833">Unselects the specified iterator.</doc>
        <source-position filename="gtktreeselection.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="835">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="836">The #GtkTreeIter to be unselected.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_path"
              c:identifier="gtk_tree_selection_unselect_path">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="768">Unselects the row at @path.</doc>
        <source-position filename="gtktreeselection.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="770">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="771">The #GtkTreePath to be unselected.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unselect_range"
              c:identifier="gtk_tree_selection_unselect_range"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeselection.c"
             line="1228">Unselects a range of nodes, determined by @start_path and @end_path
inclusive.</doc>
        <source-position filename="gtktreeselection.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1230">A #GtkTreeSelection.</doc>
            <type name="TreeSelection" c:type="GtkTreeSelection*"/>
          </instance-parameter>
          <parameter name="start_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1231">The initial node of the range.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="end_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeselection.c"
                 line="1232">The initial node of the range.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="tree_view" readable="0" private="1">
        <type name="TreeView" c:type="GtkTreeView*"/>
      </field>
      <field name="type" readable="0" private="1">
        <type name="SelectionMode" c:type="GtkSelectionMode"/>
      </field>
      <field name="user_func" readable="0" private="1">
        <type name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc"/>
      </field>
      <field name="user_data" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="destroy" readable="0" private="1">
        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
      </field>
      <glib:signal name="changed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TreeSelectionClass"
            c:type="GtkTreeSelectionClass"
            glib:is-gtype-struct-for="TreeSelection">
      <source-position filename="gtktreeselection.h" line="73"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="gtktreeselection.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="selection" transfer-ownership="none">
              <type name="TreeSelection" c:type="GtkTreeSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreeselection.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreeselection.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreeselection.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktreeselection.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TreeSelectionForeachFunc"
              c:type="GtkTreeSelectionForeachFunc">
      <source-position filename="gtktreeselection.h" line="44"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeSelectionFunc" c:type="GtkTreeSelectionFunc">
      <source-position filename="gtktreeselection.h" line="39"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="selection" transfer-ownership="none">
          <type name="TreeSelection" c:type="GtkTreeSelection*"/>
        </parameter>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="path_currently_selected" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="TreeSortable"
               c:symbol-prefix="tree_sortable"
               c:type="GtkTreeSortable"
               glib:type-name="GtkTreeSortable"
               glib:get-type="gtk_tree_sortable_get_type"
               glib:type-struct="TreeSortableIface">
      <source-position filename="gtktreesortable.h" line="78"/>
      <prerequisite name="TreeModel"/>
      <virtual-method name="get_sort_column_id" invoker="get_sort_column_id">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="99">Fills in @sort_column_id and @order with the current sort column and the
order. It returns %TRUE unless the @sort_column_id is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
%GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.</doc>
        <source-position filename="gtktreesortable.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreesortable.c"
               line="110">%TRUE if the sort column is not one of the special sort
  column ids.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="101">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="102">The sort column id to be filled in</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="103">The #GtkSortType to be filled in</doc>
            <type name="SortType" c:type="GtkSortType*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="has_default_sort_func"
                      invoker="has_default_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="236">Returns %TRUE if the model has a default sort function. This is used
primarily by GtkTreeViewColumns in order to determine if a model can
go back to the default state, or not.</doc>
        <source-position filename="gtktreesortable.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreesortable.c"
               line="244">%TRUE, if the model has a default sort function</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="238">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_default_sort_func"
                      invoker="set_default_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="201">Sets the default comparison function used when sorting to be @sort_func.
If the current sort column id of @sortable is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using
this function.

If @sort_func is %NULL, then there will be no default comparison function.
This means that once the model  has been sorted, it can't go back to the
default state. In this case, when the current sort column id of @sortable
is %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted.</doc>
        <source-position filename="gtktreesortable.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="203">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="206">Destroy notifier of @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_sort_column_id" invoker="set_sort_column_id">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="130">Sets the current sort column to be @sort_column_id. The @sortable will
resort itself to reflect this change, after emitting a
#GtkTreeSortable::sort-column-changed signal. @sort_column_id may either be
a regular column id, or one of the following special values:
&lt;variablelist&gt;
&lt;varlistentry&gt;
  &lt;term&gt;%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID&lt;/term&gt;
  &lt;listitem&gt;the default sort function will be used, if it is set&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;varlistentry&gt;
  &lt;term&gt;%GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID&lt;/term&gt;
  &lt;listitem&gt;no sorting will occur&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;/variablelist&gt;</doc>
        <source-position filename="gtktreesortable.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="132">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="133">the sort column id to set</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="134">The sort order of the column</doc>
            <type name="SortType" c:type="GtkSortType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_sort_func" invoker="set_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="168">Sets the comparison function used when sorting to be @sort_func. If the
current sort column id of @sortable is the same as @sort_column_id, then
the model will sort using this function.</doc>
        <source-position filename="gtktreesortable.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="170">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="171">the sort column id to set the function for</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="174">Destroy notifier of @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="sort_column_changed" invoker="sort_column_changed">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="85">Emits a #GtkTreeSortable::sort-column-changed signal on @sortable.</doc>
        <source-position filename="gtktreesortable.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="87">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_sort_column_id"
              c:identifier="gtk_tree_sortable_get_sort_column_id">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="99">Fills in @sort_column_id and @order with the current sort column and the
order. It returns %TRUE unless the @sort_column_id is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID or
%GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID.</doc>
        <source-position filename="gtktreesortable.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreesortable.c"
               line="110">%TRUE if the sort column is not one of the special sort
  column ids.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="101">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="102">The sort column id to be filled in</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="103">The #GtkSortType to be filled in</doc>
            <type name="SortType" c:type="GtkSortType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_default_sort_func"
              c:identifier="gtk_tree_sortable_has_default_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="236">Returns %TRUE if the model has a default sort function. This is used
primarily by GtkTreeViewColumns in order to determine if a model can
go back to the default state, or not.</doc>
        <source-position filename="gtktreesortable.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreesortable.c"
               line="244">%TRUE, if the model has a default sort function</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="238">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_default_sort_func"
              c:identifier="gtk_tree_sortable_set_default_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="201">Sets the default comparison function used when sorting to be @sort_func.
If the current sort column id of @sortable is
%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, then the model will sort using
this function.

If @sort_func is %NULL, then there will be no default comparison function.
This means that once the model  has been sorted, it can't go back to the
default state. In this case, when the current sort column id of @sortable
is %GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, the model will be unsorted.</doc>
        <source-position filename="gtktreesortable.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="203">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="204">The comparison function</doc>
            <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="205">User data to pass to @sort_func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="206">Destroy notifier of @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_column_id"
              c:identifier="gtk_tree_sortable_set_sort_column_id">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="130">Sets the current sort column to be @sort_column_id. The @sortable will
resort itself to reflect this change, after emitting a
#GtkTreeSortable::sort-column-changed signal. @sort_column_id may either be
a regular column id, or one of the following special values:
&lt;variablelist&gt;
&lt;varlistentry&gt;
  &lt;term&gt;%GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID&lt;/term&gt;
  &lt;listitem&gt;the default sort function will be used, if it is set&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;varlistentry&gt;
  &lt;term&gt;%GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID&lt;/term&gt;
  &lt;listitem&gt;no sorting will occur&lt;/listitem&gt;
&lt;/varlistentry&gt;
&lt;/variablelist&gt;</doc>
        <source-position filename="gtktreesortable.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="132">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="133">the sort column id to set</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="134">The sort order of the column</doc>
            <type name="SortType" c:type="GtkSortType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_func"
              c:identifier="gtk_tree_sortable_set_sort_func">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="168">Sets the comparison function used when sorting to be @sort_func. If the
current sort column id of @sortable is the same as @sort_column_id, then
the model will sort using this function.</doc>
        <source-position filename="gtktreesortable.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="170">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="171">the sort column id to set the function for</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="sort_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="172">The comparison function</doc>
            <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="173">User data to pass to @sort_func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="174">Destroy notifier of @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="sort_column_changed"
              c:identifier="gtk_tree_sortable_sort_column_changed">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="85">Emits a #GtkTreeSortable::sort-column-changed signal on @sortable.</doc>
        <source-position filename="gtktreesortable.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sortable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="87">A #GtkTreeSortable</doc>
            <type name="TreeSortable" c:type="GtkTreeSortable*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="sort-column-changed" when="last">
        <doc xml:space="preserve"
             filename="gtktreesortable.c"
             line="66">The ::sort-column-changed signal is emitted when the sort column
or sort order of @sortable is changed. The signal is emitted before
the contents of @sortable are resorted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="TreeSortableIface"
            c:type="GtkTreeSortableIface"
            glib:is-gtype-struct-for="TreeSortable">
      <source-position filename="gtktreesortable.h" line="78"/>
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="sort_column_changed">
        <callback name="sort_column_changed">
          <source-position filename="gtktreesortable.h" line="59"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="87">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_sort_column_id">
        <callback name="get_sort_column_id">
          <source-position filename="gtktreesortable.h" line="62"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="110">%TRUE if the sort column is not one of the special sort
  column ids.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="101">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
            <parameter name="sort_column_id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="102">The sort column id to be filled in</doc>
              <type name="gint" c:type="gint*"/>
            </parameter>
            <parameter name="order" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="103">The #GtkSortType to be filled in</doc>
              <type name="SortType" c:type="GtkSortType*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_sort_column_id">
        <callback name="set_sort_column_id">
          <source-position filename="gtktreesortable.h" line="65"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="132">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
            <parameter name="sort_column_id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="133">the sort column id to set</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="order" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="134">The sort order of the column</doc>
              <type name="SortType" c:type="GtkSortType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_sort_func">
        <callback name="set_sort_func">
          <source-position filename="gtktreesortable.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="170">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
            <parameter name="sort_column_id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="171">the sort column id to set the function for</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="func"
                       transfer-ownership="none"
                       scope="notified"
                       closure="3"
                       destroy="4">
              <type name="TreeIterCompareFunc"
                    c:type="GtkTreeIterCompareFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="destroy"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="174">Destroy notifier of @user_data, or %NULL</doc>
              <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_default_sort_func">
        <callback name="set_default_sort_func">
          <source-position filename="gtktreesortable.h" line="73"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="203">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
            <parameter name="func"
                       transfer-ownership="none"
                       scope="notified"
                       closure="2"
                       destroy="3">
              <type name="TreeIterCompareFunc"
                    c:type="GtkTreeIterCompareFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="destroy"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="206">Destroy notifier of @user_data, or %NULL</doc>
              <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="has_default_sort_func">
        <callback name="has_default_sort_func">
          <source-position filename="gtktreesortable.h" line="77"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreesortable.c"
                 line="244">%TRUE, if the model has a default sort function</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="sortable" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreesortable.c"
                   line="238">A #GtkTreeSortable</doc>
              <type name="TreeSortable" c:type="GtkTreeSortable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="TreeStore"
           c:symbol-prefix="tree_store"
           c:type="GtkTreeStore"
           parent="GObject.Object"
           glib:type-name="GtkTreeStore"
           glib:get-type="gtk_tree_store_get_type"
           glib:type-struct="TreeStoreClass">
      <source-position filename="gtktreestore.h" line="73"/>
      <implements name="Buildable"/>
      <implements name="TreeDragDest"/>
      <implements name="TreeDragSource"/>
      <implements name="TreeModel"/>
      <implements name="TreeSortable"/>
      <constructor name="new"
                   c:identifier="gtk_tree_store_new"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="242">Creates a new tree store as with @n_columns columns each of the types passed
in.  Note that only types derived from standard GObject fundamental types
are supported.

As an example, &lt;literal&gt;gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING,
GDK_TYPE_PIXBUF);&lt;/literal&gt; will create a new #GtkTreeStore with three columns, of type
&lt;type&gt;int&lt;/type&gt;, &lt;type&gt;string&lt;/type&gt; and #GdkPixbuf respectively.</doc>
        <source-position filename="gtktreestore.h" line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="255">a new #GtkTreeStore</doc>
          <type name="TreeStore" c:type="GtkTreeStore*"/>
        </return-value>
        <parameters>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="244">number of columns in the tree store</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="245">all #GType types for the columns, from first to last</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="newv" c:identifier="gtk_tree_store_newv">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="288">Non vararg creation function.  Used primarily by language bindings.</doc>
        <source-position filename="gtktreestore.h" line="79"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="295">a new #GtkTreeStore</doc>
          <type name="TreeStore" c:type="GtkTreeStore*"/>
        </return-value>
        <parameters>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="290">number of columns in the tree store</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="291">an array of #GType types for the columns, from first to last</doc>
            <array length="0" zero-terminated="0" c:type="GType*">
              <type name="GType" c:type="GType"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="append" c:identifier="gtk_tree_store_append">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1607">Appends a new row to @tree_store.  If @parent is non-%NULL, then it will append the
new row after the last child of @parent, otherwise it will append a row to
the top level.  @iter will be changed to point to this new row.  The row will
be empty after this function is called.  To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().</doc>
        <source-position filename="gtktreestore.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1609">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1610">An unset #GtkTreeIter to set to the appended row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1611">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="gtk_tree_store_clear">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1761">Removes all rows from @tree_store</doc>
        <source-position filename="gtktreestore.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1763">a #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="gtk_tree_store_insert">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1159">Creates a new row at @position.  If parent is non-%NULL, then the row will be
made a child of @parent.  Otherwise, the row will be created at the toplevel.
If @position is larger than the number of rows at that level, then the new
row will be inserted to the end of the list.  @iter will be changed to point
to this new row.  The row will be empty after this function is called.  To
fill in values, you need to call gtk_tree_store_set() or
gtk_tree_store_set_value().</doc>
        <source-position filename="gtktreestore.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1161">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1162">An unset #GtkTreeIter to set to the new row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1163">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1164">position to insert the new row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_after" c:identifier="gtk_tree_store_insert_after">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1300">Inserts a new row after @sibling.  If @sibling is %NULL, then the row will be
prepended to @parent 's children.  If @parent and @sibling are %NULL, then
the row will be prepended to the toplevel.  If both @sibling and @parent are
set, then @parent must be the parent of @sibling.  When @sibling is set,
@parent is optional.

@iter will be changed to point to this new row.  The row will be empty after
this function is called.  To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().</doc>
        <source-position filename="gtktreestore.h" line="112"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1302">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1303">An unset #GtkTreeIter to set to the new row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1304">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="sibling"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1305">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_before" c:identifier="gtk_tree_store_insert_before">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1220">Inserts a new row before @sibling.  If @sibling is %NULL, then the row will
be appended to @parent 's children.  If @parent and @sibling are %NULL, then
the row will be appended to the toplevel.  If both @sibling and @parent are
set, then @parent must be the parent of @sibling.  When @sibling is set,
@parent is optional.

@iter will be changed to point to this new row.  The row will be empty after
this function is called.  To fill in values, you need to call
gtk_tree_store_set() or gtk_tree_store_set_value().</doc>
        <source-position filename="gtktreestore.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1222">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1223">An unset #GtkTreeIter to set to the new row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1224">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="sibling"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1225">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_with_values"
              c:identifier="gtk_tree_store_insert_with_values"
              version="2.10"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1381">Creates a new row at @position.  @iter will be changed to point to this
new row.  If @position is larger than the number of rows on the list, then
the new row will be appended to the list.  The row will be filled with
the values given to this function.

Calling
&lt;literal&gt;gtk_tree_store_insert_with_values (tree_store, iter, position, ...)&lt;/literal&gt;
has the same effect as calling
|[
gtk_tree_store_insert (tree_store, iter, position);
gtk_tree_store_set (tree_store, iter, ...);
]|
with the different that the former will only emit a row_inserted signal,
while the latter will emit row_inserted, row_changed and if the tree store
is sorted, rows_reordered.  Since emitting the rows_reordered signal
repeatedly can affect the performance of the program,
gtk_tree_store_insert_with_values() should generally be preferred when
inserting rows in a sorted tree store.</doc>
        <source-position filename="gtktreestore.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1383">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1384">An unset #GtkTreeIter to set the new row, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1385">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1386">position to insert the new row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1387">pairs of column number and value, terminated with -1</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_with_valuesv"
              c:identifier="gtk_tree_store_insert_with_valuesv"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1472">A variant of gtk_tree_store_insert_with_values() which takes
the columns and values as two arrays, instead of varargs.  This
function is mainly intended for language bindings.</doc>
        <source-position filename="gtktreestore.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1474">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1475">An unset #GtkTreeIter to set the new row, or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1476">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1477">position to insert the new row</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1478">an array of column numbers</doc>
            <array length="5" zero-terminated="0" c:type="gint*">
              <type name="gint" c:type="gint"/>
            </array>
          </parameter>
          <parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1479">an array of GValues</doc>
            <array length="5" zero-terminated="0" c:type="GValue*">
              <type name="GObject.Value" c:type="GValue"/>
            </array>
          </parameter>
          <parameter name="n_values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1480">the length of the @columns and @values arrays</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_ancestor" c:identifier="gtk_tree_store_is_ancestor">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1665">Returns %TRUE if @iter is an ancestor of @descendant.  That is, @iter is the
parent (or grandparent or great-grandparent) of @descendant.</doc>
        <source-position filename="gtktreestore.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="1674">%TRUE, if @iter is an ancestor of @descendant</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1667">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1668">A valid #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="descendant" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1669">A valid #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_depth" c:identifier="gtk_tree_store_iter_depth">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1690">Returns the depth of @iter.  This will be 0 for anything on the root level, 1
for anything down a level, etc.</doc>
        <source-position filename="gtktreestore.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="1698">The depth of @iter</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1692">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1693">A valid #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_is_valid"
              c:identifier="gtk_tree_store_iter_is_valid"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1800">WARNING: This function is slow. Only use it for debugging and/or testing
purposes.

Checks if the given iter is a valid iter for this #GtkTreeStore.</doc>
        <source-position filename="gtktreestore.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="1810">%TRUE if the iter is valid, %FALSE if the iter is invalid.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1802">A #GtkTreeStore.</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1803">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_after"
              c:identifier="gtk_tree_store_move_after"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="2712">Moves @iter in @tree_store to the position after @position. @iter and
@position should be in the same level. Note that this function only
works with unsorted stores. If @position is %NULL, @iter will be moved
to the start of the level.</doc>
        <source-position filename="gtktreestore.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2714">A #GtkTreeStore.</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2715">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="position"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2716">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_before"
              c:identifier="gtk_tree_store_move_before"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="2691">Moves @iter in @tree_store to the position before @position. @iter and
@position should be in the same level. Note that this function only
works with unsorted stores. If @position is %NULL, @iter will be
moved to the end of the level.</doc>
        <source-position filename="gtktreestore.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2693">A #GtkTreeStore.</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2694">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="position"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2695">A #GtkTreeIter or %NULL.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="prepend" c:identifier="gtk_tree_store_prepend">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1549">Prepends a new row to @tree_store.  If @parent is non-%NULL, then it will prepend
the new row before the first child of @parent, otherwise it will prepend a row
to the top level.  @iter will be changed to point to this new row.  The row
will be empty after this function is called.  To fill in values, you need to
call gtk_tree_store_set() or gtk_tree_store_set_value().</doc>
        <source-position filename="gtktreestore.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1551">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1552">An unset #GtkTreeIter to set to the prepended row</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1553">A valid #GtkTreeIter, or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="gtk_tree_store_remove">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1092">Removes @iter from @tree_store.  After being removed, @iter is set to the
next valid row at that level, or invalidated if it previously pointed to the
last one.</doc>
        <source-position filename="gtktreestore.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreestore.c"
               line="1101">%TRUE if @iter is still valid, %FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1094">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1095">A valid #GtkTreeIter</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reorder"
              c:identifier="gtk_tree_store_reorder"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="2142">Reorders the children of @parent in @tree_store to follow the order
indicated by @new_order. Note that this function only works with
unsorted stores.</doc>
        <source-position filename="gtktreestore.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2144">A #GtkTreeStore.</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2145">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="new_order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2146">an array of integers mapping the new position of each child
     to its old position before the re-ordering,
     i.e. @new_order&lt;literal&gt;[newpos] = oldpos&lt;/literal&gt;.</doc>
            <array zero-terminated="0" c:type="gint*">
              <type name="gint" c:type="gint"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set" c:identifier="gtk_tree_store_set" introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1064">Sets the value of one or more cells in the row referenced by @iter.
The variable argument list should contain integer column numbers,
each column number followed by the value to be set.
The list is terminated by a -1. For example, to set column 0 with type
%G_TYPE_STRING to "Foo", you would write
&lt;literal&gt;gtk_tree_store_set (store, iter, 0, "Foo", -1)&lt;/literal&gt;.

The value will be referenced by the store if it is a %G_TYPE_OBJECT, and it
will be copied if it is a %G_TYPE_STRING or %G_TYPE_BOXED.</doc>
        <source-position filename="gtktreestore.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1066">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1067">A valid #GtkTreeIter for the row being modified</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1068">pairs of column number and value, terminated with -1</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_column_types"
              c:identifier="gtk_tree_store_set_column_types">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="324">This function is meant primarily for #GObjects that inherit from
#GtkTreeStore, and should only be used when constructing a new
#GtkTreeStore.  It will not function after a row has been added,
or a method on the #GtkTreeModel interface is called.</doc>
        <source-position filename="gtktreestore.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="326">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="327">Number of columns for the tree store</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="328">An array of #GType types, one for each column</doc>
            <array length="0" zero-terminated="0" c:type="GType*">
              <type name="GType" c:type="GType"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_valist"
              c:identifier="gtk_tree_store_set_valist"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="1025">See gtk_tree_store_set(); this version takes a &lt;type&gt;va_list&lt;/type&gt; for
use by language bindings.</doc>
        <source-position filename="gtktreestore.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1027">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1028">A valid #GtkTreeIter for the row being modified</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="1029">&lt;type&gt;va_list&lt;/type&gt; of column/value pairs</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_value" c:identifier="gtk_tree_store_set_value">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="837">Sets the data in the cell specified by @iter and @column.
The type of @value must be convertible to the type of the
column.</doc>
        <source-position filename="gtktreestore.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="839">a #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="840">A valid #GtkTreeIter for the row being modified</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="841">column number to modify</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="842">new value for the cell</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_valuesv"
              c:identifier="gtk_tree_store_set_valuesv"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="979">A variant of gtk_tree_store_set_valist() which takes
the columns and values as two arrays, instead of varargs.  This
function is mainly intended for language bindings or in case
the number of columns to change is not known until run-time.</doc>
        <source-position filename="gtktreestore.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="981">A #GtkTreeStore</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="982">A valid #GtkTreeIter for the row being modified</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="983">an array of column numbers</doc>
            <array length="3" zero-terminated="0" c:type="gint*">
              <type name="gint" c:type="gint"/>
            </array>
          </parameter>
          <parameter name="values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="984">an array of GValues</doc>
            <array length="3" zero-terminated="0" c:type="GValue*">
              <type name="GObject.Value" c:type="GValue"/>
            </array>
          </parameter>
          <parameter name="n_values" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="985">the length of the @columns and @values arrays</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="swap" c:identifier="gtk_tree_store_swap" version="2.2">
        <doc xml:space="preserve"
             filename="gtktreestore.c"
             line="2227">Swaps @a and @b in the same level of @tree_store. Note that this function
only works with unsorted stores.</doc>
        <source-position filename="gtktreestore.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_store" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2229">A #GtkTreeStore.</doc>
            <type name="TreeStore" c:type="GtkTreeStore*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2230">A #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreestore.c"
                 line="2231">Another #GtkTreeIter.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="stamp">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="root">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="last">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="n_columns">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="sort_column_id">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="sort_list">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="order">
        <type name="SortType" c:type="GtkSortType"/>
      </field>
      <field name="column_headers">
        <type name="GType" c:type="GType*"/>
      </field>
      <field name="default_sort_func">
        <type name="TreeIterCompareFunc" c:type="GtkTreeIterCompareFunc"/>
      </field>
      <field name="default_sort_data">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="default_sort_destroy">
        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
      </field>
      <field name="columns_dirty" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="TreeStoreClass"
            c:type="GtkTreeStoreClass"
            glib:is-gtype-struct-for="TreeStore">
      <source-position filename="gtktreestore.h" line="73"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreestore.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreestore.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreestore.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktreestore.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="TreeView"
           c:symbol-prefix="tree_view"
           c:type="GtkTreeView"
           parent="Container"
           glib:type-name="GtkTreeView"
           glib:get-type="gtk_tree_view_get_type"
           glib:type-struct="TreeViewClass">
      <source-position filename="gtktreeview.h" line="115"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_tree_view_new">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10683">Creates a new #GtkTreeView widget.</doc>
        <source-position filename="gtktreeview.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10688">A newly created #GtkTreeView widget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_model"
                   c:identifier="gtk_tree_view_new_with_model">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10696">Creates a new #GtkTreeView widget with the model initialized to @model.</doc>
        <source-position filename="gtktreeview.h" line="142"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10702">A newly created #GtkTreeView widget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10698">the model.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="columns_changed">
        <source-position filename="gtktreeview.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="cursor_changed">
        <source-position filename="gtktreeview.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="expand_collapse_cursor_row">
        <source-position filename="gtktreeview.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="logical" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="expand" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="open_all" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_cursor">
        <source-position filename="gtktreeview.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="step" transfer-ownership="none">
            <type name="MovementStep" c:type="GtkMovementStep"/>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_activated" invoker="row_activated">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11793">Activates the cell determined by @path and @column.</doc>
        <source-position filename="gtktreeview.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11795">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11796">The #GtkTreePath to be activated.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11797">The #GtkTreeViewColumn to be activated.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_collapsed">
        <source-position filename="gtktreeview.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="row_expanded">
        <source-position filename="gtktreeview.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_all">
        <source-position filename="gtktreeview.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_cursor_parent">
        <source-position filename="gtktreeview.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="select_cursor_row">
        <source-position filename="gtktreeview.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="start_editing" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_scroll_adjustments">
        <source-position filename="gtktreeview.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start_interactive_search">
        <source-position filename="gtktreeview.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="test_collapse_row">
        <source-position filename="gtktreeview.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="test_expand_row">
        <source-position filename="gtktreeview.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="toggle_cursor_row">
        <source-position filename="gtktreeview.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unselect_all">
        <source-position filename="gtktreeview.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="append_column" c:identifier="gtk_tree_view_append_column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11190">Appends @column to the list of columns. If @tree_view has "fixed_height"
mode enabled, then @column must have its "sizing" property set to be
GTK_TREE_VIEW_COLUMN_FIXED.</doc>
        <source-position filename="gtktreeview.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11199">The number of columns in @tree_view after appending.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11192">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11193">The #GtkTreeViewColumn to add.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="collapse_all" c:identifier="gtk_tree_view_collapse_all">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11996">Recursively collapses all visible, expanded nodes in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="214"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11998">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="collapse_row" c:identifier="gtk_tree_view_collapse_row">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12365">Collapses a row (hides its child rows, if they exist).</doc>
        <source-position filename="gtktreeview.h" line="220"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12372">%TRUE if the row was collapsed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12367">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12368">path to a row in the @tree_view</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="columns_autosize"
              c:identifier="gtk_tree_view_columns_autosize">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11060">Resizes all columns to their optimal width. Only works after the
treeview has been realized.</doc>
        <source-position filename="gtktreeview.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11062">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="convert_bin_window_to_tree_coords"
              c:identifier="gtk_tree_view_convert_bin_window_to_tree_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13308">Converts bin_window coordinates to coordinates for the
tree (the full scrollable area of the tree).</doc>
        <source-position filename="gtktreeview.h" line="357"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13310">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="bx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13311">X coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="by" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13312">Y coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13313">return location for tree X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="ty"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13314">return location for tree Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_bin_window_to_widget_coords"
              c:identifier="gtk_tree_view_convert_bin_window_to_widget_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13252">Converts bin_window coordinates (see gtk_tree_view_get_bin_window())
to widget relative coordinates.</doc>
        <source-position filename="gtktreeview.h" line="347"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13254">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="bx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13255">bin_window X coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="by" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13256">bin_window Y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13257">return location for widget X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="wy"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13258">return location for widget Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_tree_to_bin_window_coords"
              c:identifier="gtk_tree_view_convert_tree_to_bin_window_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13280">Converts tree coordinates (coordinates in full scrollable area of the tree)
to bin_window coordinates.</doc>
        <source-position filename="gtktreeview.h" line="352"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13282">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13283">tree X coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13284">tree Y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13285">return location for X coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="by"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13286">return location for Y coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_tree_to_widget_coords"
              c:identifier="gtk_tree_view_convert_tree_to_widget_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13192">Converts tree coordinates (coordinates in full scrollable area of the tree)
to widget coordinates.</doc>
        <source-position filename="gtktreeview.h" line="337"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13194">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13195">X coordinate relative to the tree</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13196">Y coordinate relative to the tree</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13197">return location for widget X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="wy"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13198">return location for widget Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_widget_to_bin_window_coords"
              c:identifier="gtk_tree_view_convert_widget_to_bin_window_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13224">Converts widget coordinates to coordinates for the bin_window
(see gtk_tree_view_get_bin_window()).</doc>
        <source-position filename="gtktreeview.h" line="342"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13226">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="wx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13227">X coordinate relative to the widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13228">Y coordinate relative to the widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13229">return location for bin_window X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="by"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13230">return location for bin_window Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="convert_widget_to_tree_coords"
              c:identifier="gtk_tree_view_convert_widget_to_tree_coords"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13160">Converts widget coordinates to coordinates for the
tree (the full scrollable area of the tree).</doc>
        <source-position filename="gtktreeview.h" line="332"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13162">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="wx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13163">X coordinate relative to the widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13164">Y coordinate relative to the widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tx"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13165">return location for tree X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="ty"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13166">return location for tree Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_row_drag_icon"
              c:identifier="gtk_tree_view_create_row_drag_icon">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13759">Creates a #GdkPixmap representation of the row at @path.
This image is used for a drag icon.</doc>
        <source-position filename="gtktreeview.h" line="306"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="13767">a newly-allocated pixmap of the drag icon.</doc>
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13761">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13762">a #GtkTreePath in @tree_view</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="enable_model_drag_dest"
              c:identifier="gtk_tree_view_enable_model_drag_dest">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13448">Turns @tree_view into a drop destination for automatic DND. Calling
this method sets #GtkTreeView:reorderable to %FALSE.</doc>
        <source-position filename="gtktreeview.h" line="286"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13450">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13451">the table of targets that the drag will support</doc>
            <array length="1"
                   zero-terminated="0"
                   c:type="const GtkTargetEntry*">
              <type name="TargetEntry" c:type="GtkTargetEntry"/>
            </array>
          </parameter>
          <parameter name="n_targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13452">the number of items in @targets</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="actions" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13453">the bitmask of possible actions for a drag from this
   widget</doc>
            <type name="Gdk.DragAction" c:type="GdkDragAction"/>
          </parameter>
        </parameters>
      </method>
      <method name="enable_model_drag_source"
              c:identifier="gtk_tree_view_enable_model_drag_source">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13410">Turns @tree_view into a drag source for automatic DND. Calling this
method sets #GtkTreeView:reorderable to %FALSE.</doc>
        <source-position filename="gtktreeview.h" line="281"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13412">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="start_button_mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13413">Mask of allowed buttons to start drag</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13414">the table of targets that the drag will support</doc>
            <array length="2"
                   zero-terminated="0"
                   c:type="const GtkTargetEntry*">
              <type name="TargetEntry" c:type="GtkTargetEntry"/>
            </array>
          </parameter>
          <parameter name="n_targets" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13415">the number of items in @targets</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="actions" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13416">the bitmask of possible actions for a drag from this
   widget</doc>
            <type name="Gdk.DragAction" c:type="GdkDragAction"/>
          </parameter>
        </parameters>
      </method>
      <method name="expand_all" c:identifier="gtk_tree_view_expand_all">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11841">Recursively expands all nodes in the @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11843">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="expand_row" c:identifier="gtk_tree_view_expand_row">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12176">Opens the row so its children are visible.</doc>
        <source-position filename="gtktreeview.h" line="217"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12184">%TRUE if the row existed and had children</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12178">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12179">path to a row</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="open_all" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12180">whether to recursively expand, or just expand immediate children</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="expand_to_path"
              c:identifier="gtk_tree_view_expand_to_path"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12035">Expands the row at @path. This will also expand all parent rows of
@path as necessary.</doc>
        <source-position filename="gtktreeview.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12037">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12038">path to a row.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_background_area"
              c:identifier="gtk_tree_view_get_background_area">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13007">Fills the bounding rectangle in bin_window coordinates for the cell at the
row specified by @path and the column specified by @column.  If @path is
%NULL, or points to a node not found in the tree, the @y and @height fields of
the rectangle will be filled with 0. If @column is %NULL, the @x and @width
fields will be filled with 0.  The returned rectangle is equivalent to the
@background_area passed to gtk_cell_renderer_render().  These background
areas tile to cover the entire bin window.  Contrast with the @cell_area,
returned by gtk_tree_view_get_cell_area(), which returns only the cell
itself, excluding surrounding borders and the tree expander area.</doc>
        <source-position filename="gtktreeview.h" line="257"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13009">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13010">a #GtkTreePath for the row, or %NULL to get only horizontal coordinates</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13011">a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordiantes</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13012">rectangle to fill with cell background rect</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_bin_window"
              c:identifier="gtk_tree_view_get_bin_window">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12769">Returns the window that @tree_view renders to.
This is used primarily to compare to &lt;literal&gt;event-&gt;window&lt;/literal&gt;
to confirm that the event on @tree_view is on the right window.</doc>
        <source-position filename="gtktreeview.h" line="245"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12777">A #GdkWindow, or %NULL when @tree_view
    hasn't been realized yet</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12771">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cell_area" c:identifier="gtk_tree_view_get_cell_area">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12922">Fills the bounding rectangle in bin_window coordinates for the cell at the
row specified by @path and the column specified by @column.  If @path is
%NULL, or points to a path not currently displayed, the @y and @height fields
of the rectangle will be filled with 0. If @column is %NULL, the @x and @width
fields will be filled with 0.  The sum of all cell rects does not cover the
entire tree; there are extra pixels in between rows, for example. The
returned rectangle is equivalent to the @cell_area passed to
gtk_cell_renderer_render().  This function is only valid if @tree_view is
realized.</doc>
        <source-position filename="gtktreeview.h" line="253"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12924">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12925">a #GtkTreePath for the row, or %NULL to get only horizontal coordinates</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12926">a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordinates</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12927">rectangle to fill with cell rect</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_column" c:identifier="gtk_tree_view_get_column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11444">Gets the #GtkTreeViewColumn at the given position in the #tree_view.</doc>
        <source-position filename="gtktreeview.h" line="186"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11451">The #GtkTreeViewColumn, or %NULL if the
    position is outside the range of columns.</doc>
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11446">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="n" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11447">The position of the column, counting from 0.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_columns" c:identifier="gtk_tree_view_get_columns">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11469">Returns a #GList of all the #GtkTreeViewColumn s currently in @tree_view.
The returned list must be freed with g_list_free ().</doc>
        <source-position filename="gtktreeview.h" line="188"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11476">A list of #GtkTreeViewColumn s</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="TreeViewColumn"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11471">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor" c:identifier="gtk_tree_view_get_cursor">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12634">Fills in @path and @focus_column with the current path and focus column.  If
the cursor isn't currently set, then *@path will be %NULL.  If no column
currently has focus, then *@focus_column will be %NULL.

The returned #GtkTreePath must be freed with gtk_tree_path_free() when
you are done with it.</doc>
        <source-position filename="gtktreeview.h" line="239"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12636">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12637">A pointer to be filled with the current cursor path, or %NULL</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="focus_column"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12638">A pointer to be filled with the current focus column, or %NULL</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dest_row_at_pos"
              c:identifier="gtk_tree_view_get_dest_row_at_pos">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13655">Determines the destination row for a given position.  @drag_x and
@drag_y are expected to be in widget coordinates.  This function is only
meaningful if @tree_view is realized.  Therefore this function will always
return %FALSE if @tree_view is not realized or does not have a model.</doc>
        <source-position filename="gtktreeview.h" line="301"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="13668">whether there is a row at the given position, %TRUE if this
is indeed the case.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13657">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="drag_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13658">the position to determine the destination row for</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="drag_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13659">the position to determine the destination row for</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13660">Return location for the path of the highlighted row, or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="pos"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13661">Return location for the drop position, or %NULL</doc>
            <type name="TreeViewDropPosition"
                  c:type="GtkTreeViewDropPosition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_drag_dest_row"
              c:identifier="gtk_tree_view_get_drag_dest_row">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13623">Gets information about the row that is highlighted for feedback.</doc>
        <source-position filename="gtktreeview.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13625">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13626">Return location for the path of the highlighted row, or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="pos"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13627">Return location for the drop position, or %NULL</doc>
            <type name="TreeViewDropPosition"
                  c:type="GtkTreeViewDropPosition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_enable_search"
              c:identifier="gtk_tree_view_get_enable_search"
              glib:get-property="enable-search">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13974">Returns whether or not the tree allows to start interactive searching
by typing in text.</doc>
        <source-position filename="gtktreeview.h" line="312"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="13981">whether or not to let the user search interactively</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13976">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enable_tree_lines"
              c:identifier="gtk_tree_view_get_enable_tree_lines"
              glib:get-property="enable-tree-lines"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15270">Returns whether or not tree lines are drawn in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="398"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15276">%TRUE if tree lines are drawn in @tree_view, %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15272">a #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expander_column"
              c:identifier="gtk_tree_view_get_expander_column"
              glib:get-property="expander-column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11580">Returns the column that is the current expander column.
This column has the expander arrow drawn next to it.</doc>
        <source-position filename="gtktreeview.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11587">The expander column.</doc>
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11582">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fixed_height_mode"
              c:identifier="gtk_tree_view_get_fixed_height_mode"
              glib:get-property="fixed-height-mode"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="7792">Returns whether fixed height mode is turned on for @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="376"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="7798">%TRUE if @tree_view is in fixed height mode</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="7794">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_grid_lines"
              c:identifier="gtk_tree_view_get_grid_lines"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15183">Returns which grid lines are enabled in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="395"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15189">a #GtkTreeViewGridLines value indicating which grid lines
are enabled.</doc>
          <type name="TreeViewGridLines" c:type="GtkTreeViewGridLines"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15185">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hadjustment"
              c:identifier="gtk_tree_view_get_hadjustment"
              glib:get-property="hadjustment">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10901">Gets the #GtkAdjustment currently being used for the horizontal aspect.</doc>
        <source-position filename="gtktreeview.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10907">A #GtkAdjustment object, or %NULL
    if none is currently being used.</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10903">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_headers_clickable"
              c:identifier="gtk_tree_view_get_headers_clickable"
              glib:get-property="headers-clickable"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11111">Returns whether all header columns are clickable.</doc>
        <source-position filename="gtktreeview.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11117">%TRUE if all header columns are clickable, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11113">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_headers_visible"
              c:identifier="gtk_tree_view_get_headers_visible"
              glib:get-property="headers-visible">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10983">Returns %TRUE if the headers on the @tree_view are visible.</doc>
        <source-position filename="gtktreeview.h" line="155"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10989">Whether the headers are visible or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10985">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hover_expand"
              c:identifier="gtk_tree_view_get_hover_expand"
              glib:get-property="hover-expand"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15016">Returns whether hover expansion mode is turned on for @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="382"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15022">%TRUE if @tree_view is in hover expansion mode</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15018">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hover_selection"
              c:identifier="gtk_tree_view_get_hover_selection"
              glib:get-property="hover-selection"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14975">Returns whether hover selection mode is turned on for @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="379"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="14981">%TRUE if @tree_view is in hover selection mode</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14977">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_level_indentation"
              c:identifier="gtk_tree_view_get_level_indentation"
              glib:get-property="level-indentation"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15434">Returns the amount, in pixels, of extra indentation for child levels
in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="406"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15441">the amount of extra indentation for child levels in
@tree_view.  A return value of 0 means that this feature is disabled.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15436">a #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_model"
              c:identifier="gtk_tree_view_get_model"
              glib:get-property="model">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10713">Returns the model the #GtkTreeView is based on.  Returns %NULL if the
model is unset.</doc>
        <source-position filename="gtktreeview.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10720">A #GtkTreeModel, or %NULL if none is currently being used.</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10715">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_path_at_pos"
              c:identifier="gtk_tree_view_get_path_at_pos">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12788">Finds the path at the point (@x, @y), relative to bin_window coordinates
(please see gtk_tree_view_get_bin_window()).
That is, @x and @y are relative to an events coordinates. @x and @y must
come from an event on the @tree_view only where &lt;literal&gt;event-&gt;window ==
gtk_tree_view_get_bin_window (&lt;!-- --&gt;)&lt;/literal&gt;. It is primarily for
things like popup menus. If @path is non-%NULL, then it will be filled
with the #GtkTreePath at that point.  This path should be freed with
gtk_tree_path_free().  If @column is non-%NULL, then it will be filled
with the column at that point.  @cell_x and @cell_y return the coordinates
relative to the cell background (i.e. the @background_area passed to
gtk_cell_renderer_render()).  This function is only meaningful if
@tree_view is realized.  Therefore this function will always return %FALSE
if @tree_view is not realized or does not have a model.

For converting widget coordinates (eg. the ones you get from
GtkWidget::query-tooltip), please see
gtk_tree_view_convert_widget_to_bin_window_coords().</doc>
        <source-position filename="gtktreeview.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12816">%TRUE if a row exists at that coordinate.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12790">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12791">The x position to be identified (relative to bin_window).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12792">The y position to be identified (relative to bin_window).</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12793">A pointer to a #GtkTreePath pointer to be filled in, or %NULL</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="column"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12794">A pointer to a #GtkTreeViewColumn pointer to be filled in, or %NULL</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn**"/>
          </parameter>
          <parameter name="cell_x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12795">A pointer where the X coordinate relative to the cell can be placed, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="cell_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12796">A pointer where the Y coordinate relative to the cell can be placed, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_reorderable"
              c:identifier="gtk_tree_view_get_reorderable"
              glib:get-property="reorderable">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12482">Retrieves whether the user can reorder the tree via drag-and-drop. See
gtk_tree_view_set_reorderable().</doc>
        <source-position filename="gtktreeview.h" line="229"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12489">%TRUE if the tree can be reordered.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12484">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_row_separator_func"
              c:identifier="gtk_tree_view_get_row_separator_func"
              version="2.6"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15099">Returns the current row separator function.</doc>
        <source-position filename="gtktreeview.h" line="389"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15105">the current row separator function.</doc>
          <type name="TreeViewRowSeparatorFunc"
                c:type="GtkTreeViewRowSeparatorFunc"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15101">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rubber_banding"
              c:identifier="gtk_tree_view_get_rubber_banding"
              glib:get-property="rubber-banding"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15057">Returns whether rubber banding is turned on for @tree_view.  If the
selection mode is #GTK_SELECTION_MULTIPLE, rubber banding will allow the
user to select multiple rows by dragging the mouse.</doc>
        <source-position filename="gtktreeview.h" line="385"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15065">%TRUE if rubber banding in @tree_view is enabled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15059">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rules_hint"
              c:identifier="gtk_tree_view_get_rules_hint"
              glib:get-property="rules-hint">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11171">Gets the setting set by gtk_tree_view_set_rules_hint().</doc>
        <source-position filename="gtktreeview.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11177">%TRUE if rules are useful for the user of this tree</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11173">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_column"
              c:identifier="gtk_tree_view_get_search_column"
              glib:get-property="search-column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13992">Gets the column searched on by the interactive search code.</doc>
        <source-position filename="gtktreeview.h" line="313"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="13998">the column the interactive search code searches in.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13994">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_entry"
              c:identifier="gtk_tree_view_get_search_entry"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14084">Returns the #GtkEntry which is currently in use as interactive search
entry for @tree_view.  In case the built-in entry is being used, %NULL
will be returned.</doc>
        <source-position filename="gtktreeview.h" line="322"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="14092">the entry currently in use as search entry.</doc>
          <type name="Entry" c:type="GtkEntry*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14086">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_equal_func"
              c:identifier="gtk_tree_view_get_search_equal_func"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14037">Returns the compare function currently in use.</doc>
        <source-position filename="gtktreeview.h" line="316"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="14043">the currently used compare function for the search code.</doc>
          <type name="TreeViewSearchEqualFunc"
                c:type="GtkTreeViewSearchEqualFunc"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14039">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_search_position_func"
              c:identifier="gtk_tree_view_get_search_position_func"
              version="2.10"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14204">Returns the positioning function currently in use.</doc>
        <source-position filename="gtktreeview.h" line="325"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="14210">the currently used function for positioning the search dialog.</doc>
          <type name="TreeViewSearchPositionFunc"
                c:type="GtkTreeViewSearchPositionFunc"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14206">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection" c:identifier="gtk_tree_view_get_selection">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10885">Gets the #GtkTreeSelection associated with @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10891">A #GtkTreeSelection object.</doc>
          <type name="TreeSelection" c:type="GtkTreeSelection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10887">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_expanders"
              c:identifier="gtk_tree_view_get_show_expanders"
              glib:get-property="show-expanders"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15393">Returns whether or not expanders are drawn in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="403"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15399">%TRUE if expanders are drawn in @tree_view, %FALSE
otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15395">a #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_column"
              c:identifier="gtk_tree_view_get_tooltip_column"
              glib:get-property="tooltip-column"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15744">Returns the column of @tree_view's model which is being used for
displaying tooltips on @tree_view's rows.</doc>
        <source-position filename="gtktreeview.h" line="426"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15751">the index of the tooltip column that is currently being
used, or -1 if this is disabled.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15746">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_context"
              c:identifier="gtk_tree_view_get_tooltip_context"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15570">This function is supposed to be used in a #GtkWidget::query-tooltip
signal handler for #GtkTreeView.  The @x, @y and @keyboard_tip values
which are received in the signal handler, should be passed to this
function without modification.

The return value indicates whether there is a tree view row at the given
coordinates (%TRUE) or not (%FALSE) for mouse tooltips.  For keyboard
tooltips the row returned will be the cursor row.  When %TRUE, then any of
@model, @path and @iter which have been provided will be set to point to
that row and the corresponding model.  @x and @y will always be converted
to be relative to @tree_view's bin_window if @keyboard_tooltip is %FALSE.</doc>
        <source-position filename="gtktreeview.h" line="417"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15592">whether or not the given tooltip context points to a row.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15572">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15573">the x coordinate (relative to widget coordinates)</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15574">the y coordinate (relative to widget coordinates)</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="keyboard_tip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15575">whether this is a keyboard tooltip or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="model"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15576">a pointer to receive a #GtkTreeModel or %NULL</doc>
            <type name="TreeModel" c:type="GtkTreeModel**"/>
          </parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15577">a pointer to receive a #GtkTreePath or %NULL</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="iter"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15578">a pointer to receive a #GtkTreeIter or %NULL</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_vadjustment"
              c:identifier="gtk_tree_view_get_vadjustment"
              glib:get-property="vadjustment">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10941">Gets the #GtkAdjustment currently being used for the vertical aspect.</doc>
        <source-position filename="gtktreeview.h" line="152"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="10947">A #GtkAdjustment object, or %NULL
    if none is currently being used.</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10943">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible_range"
              c:identifier="gtk_tree_view_get_visible_range"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13338">Sets @start_path and @end_path to be the first and last visible path.
Note that there may be invisible paths in between.

The paths should be freed with gtk_tree_path_free() after use.</doc>
        <source-position filename="gtktreeview.h" line="276"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="13350">%TRUE, if valid paths were placed in @start_path and @end_path.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13340">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="start_path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13341">Return location for start of region,
             or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
          <parameter name="end_path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13343">Return location for end of region, or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_visible_rect"
              c:identifier="gtk_tree_view_get_visible_rect">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13065">Fills @visible_rect with the currently-visible region of the
buffer, in tree coordinates. Convert to bin_window coordinates with
gtk_tree_view_convert_tree_to_bin_window_coords().
Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire
scrollable area of the tree.</doc>
        <source-position filename="gtktreeview.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13067">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="visible_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13068">rectangle to fill</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_column" c:identifier="gtk_tree_view_insert_column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11280">This inserts the @column into the @tree_view at @position.  If @position is
-1, then the column is inserted at the end. If @tree_view has
"fixed_height" mode enabled, then @column must have its "sizing" property
set to be GTK_TREE_VIEW_COLUMN_FIXED.</doc>
        <source-position filename="gtktreeview.h" line="171"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11291">The number of columns in @tree_view after insertion.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11282">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11283">The #GtkTreeViewColumn to be inserted.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11284">The position to insert @column in.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_column_with_attributes"
              c:identifier="gtk_tree_view_insert_column_with_attributes"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11344">Creates a new #GtkTreeViewColumn and inserts it into the @tree_view at
@position.  If @position is -1, then the newly created column is inserted at
the end.  The column is initialized with the attributes given. If @tree_view
has "fixed_height" mode enabled, then the new column will have its sizing
property set to be GTK_TREE_VIEW_COLUMN_FIXED.</doc>
        <source-position filename="gtktreeview.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11358">The number of columns in @tree_view after insertion.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11346">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11347">The position to insert the new column in.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11348">The title to set the header to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11349">The #GtkCellRenderer.</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11350">A %NULL-terminated list of attributes.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_column_with_data_func"
              c:identifier="gtk_tree_view_insert_column_with_data_func">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11399">Convenience function that inserts a new column into the #GtkTreeView
with the given cell renderer and a #GtkCellDataFunc to set cell renderer
attributes (normally using data from the model). See also
gtk_tree_view_column_set_cell_data_func(), gtk_tree_view_column_pack_start().
If @tree_view has "fixed_height" mode enabled, then the new column will have its
"sizing" property set to be GTK_TREE_VIEW_COLUMN_FIXED.</doc>
        <source-position filename="gtktreeview.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11416">number of columns in the tree view post-insert</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11401">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11402">Position to insert, -1 for append</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11403">column title</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11404">cell renderer for column</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4"
                     destroy="5">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11405">function to set attributes of cell renderer</doc>
            <type name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11406">data for @func</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="dnotify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11407">destroy notifier for @data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_rubber_banding_active"
              c:identifier="gtk_tree_view_is_rubber_banding_active"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15075">Returns whether a rubber banding operation is currently being done
in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="387"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="15082">%TRUE if a rubber banding operation is currently being
done in @tree_view.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15077">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="map_expanded_rows"
              c:identifier="gtk_tree_view_map_expanded_rows">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12428">Calls @func on all expanded rows.</doc>
        <source-position filename="gtktreeview.h" line="222"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12430">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12431">A function to be called</doc>
            <type name="TreeViewMappingFunc" c:type="GtkTreeViewMappingFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12432">User data to be passed to the function.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_column_after"
              c:identifier="gtk_tree_view_move_column_after">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11486">Moves @column to be after to @base_column.  If @base_column is %NULL, then
@column is placed in the first position.</doc>
        <source-position filename="gtktreeview.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11488">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11489">The #GtkTreeViewColumn to be moved.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="base_column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11490">The #GtkTreeViewColumn to be moved relative to, or %NULL.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_column" c:identifier="gtk_tree_view_remove_column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11213">Removes @column from @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="11220">The number of columns in @tree_view after removing.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11215">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11216">The #GtkTreeViewColumn to remove.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_activated" c:identifier="gtk_tree_view_row_activated">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11793">Activates the cell determined by @path and @column.</doc>
        <source-position filename="gtktreeview.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11795">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11796">The #GtkTreePath to be activated.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11797">The #GtkTreeViewColumn to be activated.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="row_expanded" c:identifier="gtk_tree_view_row_expanded">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12455">Returns %TRUE if the node pointed to by @path is expanded in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="225"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="12462">%TRUE if #path is expanded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12457">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12458">A #GtkTreePath to test expansion state.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_cell"
              c:identifier="gtk_tree_view_scroll_to_cell">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11670">Moves the alignments of @tree_view to the position specified by @column and
@path.  If @column is %NULL, then no horizontal scrolling occurs.  Likewise,
if @path is %NULL no vertical scrolling occurs.  At a minimum, one of @column
or @path need to be non-%NULL.  @row_align determines where the row is
placed, and @col_align determines where @column is placed.  Both are expected
to be between 0.0 and 1.0. 0.0 means left/top alignment, 1.0 means
right/bottom alignment, 0.5 means center.

If @use_align is %FALSE, then the alignment arguments are ignored, and the
tree does the minimum amount of work to scroll the cell onto the screen.
This means that the cell will be scrolled to the edge closest to its current
position.  If the cell is currently visible on the screen, nothing is done.

This function only works if the model is set, and @path is a valid row on the
model.  If the model changes before the @tree_view is realized, the centered
path will be modified to reflect this change.</doc>
        <source-position filename="gtktreeview.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11672">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11673">The path of the row to move to, or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11674">The #GtkTreeViewColumn to move horizontally to, or %NULL.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="use_align" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11675">whether to use alignment arguments, or %FALSE.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="row_align" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11676">The vertical alignment of the row specified by @path.</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
          <parameter name="col_align" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11677">The horizontal alignment of the column specified by @column.</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="scroll_to_point"
              c:identifier="gtk_tree_view_scroll_to_point">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11636">Scrolls the tree view such that the top-left corner of the visible
area is @tree_x, @tree_y, where @tree_x and @tree_y are specified
in tree coordinates.  The @tree_view must be realized before
this function is called.  If it isn't, you probably want to be
using gtk_tree_view_scroll_to_cell().

If either @tree_x or @tree_y are -1, then that direction isn't scrolled.</doc>
        <source-position filename="gtktreeview.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11638">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tree_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11639">X coordinate of new top-left pixel of visible area, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tree_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11640">Y coordinate of new top-left pixel of visible area, or -1</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_column_drag_function"
              c:identifier="gtk_tree_view_set_column_drag_function">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11603">Sets a user function for determining where a column may be dropped when
dragged.  This function is called on every column pair in turn at the
beginning of a column drag to determine where a drop can take place.  The
arguments passed to @func are: the @tree_view, the #GtkTreeViewColumn being
dragged, the two #GtkTreeViewColumn s determining the drop spot, and
@user_data.  If either of the #GtkTreeViewColumn arguments for the drop spot
are %NULL, then they indicate an edge.  If @func is set to be %NULL, then
@tree_view reverts to the default behavior of allowing all columns to be
dropped everywhere.</doc>
        <source-position filename="gtktreeview.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11605">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11606">A function to determine which columns are reorderable, or %NULL.</doc>
            <type name="TreeViewColumnDropFunc"
                  c:type="GtkTreeViewColumnDropFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11607">User data to be passed to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11608">Destroy notifier for @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor" c:identifier="gtk_tree_view_set_cursor">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12668">Sets the current keyboard focus to be at @path, and selects it.  This is
useful when you want to focus the user's attention on a particular row.  If
@focus_column is not %NULL, then focus is given to the column specified by
it. Additionally, if @focus_column is specified, and @start_editing is
%TRUE, then editing should be started in the specified cell.
This function is often followed by @gtk_widget_grab_focus (@tree_view)
in order to give keyboard focus to the widget.  Please note that editing
can only happen when the widget is realized.

If @path is invalid for @model, the current cursor (if any) will be unset
and the function will return without failing.</doc>
        <source-position filename="gtktreeview.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12670">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12671">A #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="focus_column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12672">A #GtkTreeViewColumn, or %NULL</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="start_editing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12673">%TRUE if the specified cell should start being edited.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_on_cell"
              c:identifier="gtk_tree_view_set_cursor_on_cell"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12697">Sets the current keyboard focus to be at @path, and selects it.  This is
useful when you want to focus the user's attention on a particular row.  If
@focus_column is not %NULL, then focus is given to the column specified by
it. If @focus_column and @focus_cell are not %NULL, and @focus_column
contains 2 or more editable or activatable cells, then focus is given to
the cell specified by @focus_cell. Additionally, if @focus_column is
specified, and @start_editing is %TRUE, then editing should be started in
the specified cell.  This function is often followed by
@gtk_widget_grab_focus (@tree_view) in order to give keyboard focus to the
widget.  Please note that editing can only happen when the widget is
realized.

If @path is invalid for @model, the current cursor (if any) will be unset
and the function will return without failing.</doc>
        <source-position filename="gtktreeview.h" line="234"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12699">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12700">A #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="focus_column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12701">A #GtkTreeViewColumn, or %NULL</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="focus_cell"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12702">A #GtkCellRenderer, or %NULL</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="start_editing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12703">%TRUE if the specified cell should start being edited.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_destroy_count_func"
              c:identifier="gtk_tree_view_set_destroy_count_func">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13916">This function should almost never be used.  It is meant for private use by
ATK for determining the number of visible children that are removed when the
user collapses a row, or a row is deleted.</doc>
        <source-position filename="gtktreeview.h" line="369"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13918">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13919">Function to be called when a view row is destroyed, or %NULL</doc>
            <type name="TreeDestroyCountFunc"
                  c:type="GtkTreeDestroyCountFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13920">User data to be passed to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13921">Destroy notifier for @data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_drag_dest_row"
              c:identifier="gtk_tree_view_set_drag_dest_row">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13545">Sets the row that is highlighted for feedback.</doc>
        <source-position filename="gtktreeview.h" line="295"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13547">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13548">The path of the row to highlight, or %NULL.</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13549">Specifies whether to drop before, after or into the row</doc>
            <type name="TreeViewDropPosition"
                  c:type="GtkTreeViewDropPosition"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enable_search"
              c:identifier="gtk_tree_view_set_enable_search"
              glib:set-property="enable-search">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13948">If @enable_search is set, then the user can type in text to search through
the tree interactively (this is sometimes called "typeahead find").

Note that even if this is %FALSE, the user can still initiate a search
using the "start-interactive-search" key binding.</doc>
        <source-position filename="gtktreeview.h" line="310"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13950">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="enable_search" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13951">%TRUE, if the user can search interactively</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_enable_tree_lines"
              c:identifier="gtk_tree_view_set_enable_tree_lines"
              glib:set-property="enable-tree-lines"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15289">Sets whether to draw lines interconnecting the expanders in @tree_view.
This does not have any visible effects for lists.</doc>
        <source-position filename="gtktreeview.h" line="399"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15291">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15292">%TRUE to enable tree line drawing, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expander_column"
              c:identifier="gtk_tree_view_set_expander_column"
              glib:set-property="expander-column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11543">Sets the column to draw the expander arrow at. It must be in @tree_view.
If @column is %NULL, then the expander arrow is always at the first
visible column.

If you do not want expander arrow to appear in your tree, set the
expander column to a hidden column.</doc>
        <source-position filename="gtktreeview.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11545">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11546">%NULL, or the column to draw the expander arrow at.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fixed_height_mode"
              c:identifier="gtk_tree_view_set_fixed_height_mode"
              glib:set-property="fixed-height-mode"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="7735">Enables or disables the fixed height mode of @tree_view.
Fixed height mode speeds up #GtkTreeView by assuming that all
rows have the same height.
Only enable this option if all rows are the same height and all
columns are of type %GTK_TREE_VIEW_COLUMN_FIXED.</doc>
        <source-position filename="gtktreeview.h" line="374"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="7737">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="7738">%TRUE to enable fixed height mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_grid_lines"
              c:identifier="gtk_tree_view_set_grid_lines"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15202">Sets which grid lines to draw in @tree_view.</doc>
        <source-position filename="gtktreeview.h" line="396"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15204">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="grid_lines" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15205">a #GtkTreeViewGridLines value indicating which grid lines to
enable.</doc>
            <type name="TreeViewGridLines" c:type="GtkTreeViewGridLines"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hadjustment"
              c:identifier="gtk_tree_view_set_hadjustment"
              glib:set-property="hadjustment">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10921">Sets the #GtkAdjustment for the current horizontal aspect.</doc>
        <source-position filename="gtktreeview.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10923">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10924">The #GtkAdjustment to set, or %NULL</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_headers_clickable"
              c:identifier="gtk_tree_view_set_headers_clickable"
              glib:set-property="headers-clickable">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11089">Allow the column title buttons to be clicked.</doc>
        <source-position filename="gtktreeview.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11091">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11092">%TRUE if the columns are clickable.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_headers_visible"
              c:identifier="gtk_tree_view_set_headers_visible"
              glib:set-property="headers-visible">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10999">Sets the visibility state of the headers.</doc>
        <source-position filename="gtktreeview.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11001">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="headers_visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11002">%TRUE if the headers are visible</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hover_expand"
              c:identifier="gtk_tree_view_set_hover_expand"
              glib:set-property="hover-expand"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14991">Enables of disables the hover expansion mode of @tree_view.
Hover expansion makes rows expand or collapse if the pointer
moves over them.</doc>
        <source-position filename="gtktreeview.h" line="380"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14993">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14994">%TRUE to enable hover selection mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hover_selection"
              c:identifier="gtk_tree_view_set_hover_selection"
              glib:set-property="hover-selection"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14949">Enables of disables the hover selection mode of @tree_view.
Hover selection makes the selected row follow the pointer.
Currently, this works only for the selection modes
%GTK_SELECTION_SINGLE and %GTK_SELECTION_BROWSE.</doc>
        <source-position filename="gtktreeview.h" line="377"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14951">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="hover" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14952">%TRUE to enable hover selection mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_level_indentation"
              c:identifier="gtk_tree_view_set_level_indentation"
              glib:set-property="level-indentation"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15412">Sets the amount of extra indentation for child levels to use in @tree_view
in addition to the default indentation.  The value should be specified in
pixels, a value of 0 disables this feature and in this case only the default
indentation will be used.
This does not have any visible effects for lists.</doc>
        <source-position filename="gtktreeview.h" line="404"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15414">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="indentation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15415">the amount, in pixels, of extra indentation in @tree_view.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_model"
              c:identifier="gtk_tree_view_set_model"
              glib:set-property="model">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10730">Sets the model for a #GtkTreeView.  If the @tree_view already has a model
set, it will remove it before setting the new model.  If @model is %NULL,
then it will unset the old model.</doc>
        <source-position filename="gtktreeview.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10732">A #GtkTreeNode.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="model"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10733">The model.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reorderable"
              c:identifier="gtk_tree_view_set_reorderable"
              glib:set-property="reorderable">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="12499">This function is a convenience function to allow you to reorder
models that support the #GtkDragSourceIface and the
#GtkDragDestIface.  Both #GtkTreeStore and #GtkListStore support
these.  If @reorderable is %TRUE, then the user can reorder the
model by dragging and dropping rows. The developer can listen to
these changes by connecting to the model's row_inserted and
row_deleted signals. The reordering is implemented by setting up
the tree view as a drag source and destination. Therefore, drag and
drop can not be used in a reorderable view for any other purpose.

This function does not give you any degree of control over the order -- any
reordering is allowed.  If more control is needed, you should probably
handle drag and drop manually.</doc>
        <source-position filename="gtktreeview.h" line="227"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12501">A #GtkTreeView.</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="reorderable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="12502">%TRUE, if the tree can be reordered.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_row_separator_func"
              c:identifier="gtk_tree_view_set_row_separator_func"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15117">Sets the row separator function, which is used to determine
whether a row should be drawn as a separator. If the row separator
function is %NULL, no separators are drawn. This is the default value.</doc>
        <source-position filename="gtktreeview.h" line="390"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15119">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15120">a #GtkTreeViewRowSeparatorFunc</doc>
            <type name="TreeViewRowSeparatorFunc"
                  c:type="GtkTreeViewRowSeparatorFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15121">user data to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15122">destroy notifier for @data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rubber_banding"
              c:identifier="gtk_tree_view_set_rubber_banding"
              glib:set-property="rubber-banding"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15032">Enables or disables rubber banding in @tree_view.  If the selection mode
is #GTK_SELECTION_MULTIPLE, rubber banding will allow the user to select
multiple rows by dragging the mouse.</doc>
        <source-position filename="gtktreeview.h" line="383"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15034">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="enable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15035">%TRUE to enable rubber banding</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rules_hint"
              c:identifier="gtk_tree_view_set_rules_hint"
              glib:set-property="rules-hint">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="11135">This function tells GTK+ that the user interface for your
application requires users to read across tree rows and associate
cells with one another. By default, GTK+ will then render the tree
with alternating row colors. Do &lt;emphasis&gt;not&lt;/emphasis&gt; use it
just because you prefer the appearance of the ruled tree; that's a
question for the theme. Some themes will draw tree rows in
alternating colors even when rules are turned off, and users who
prefer that appearance all the time can choose those themes. You
should call this function only as a &lt;emphasis&gt;semantic&lt;/emphasis&gt;
hint to the theme engine that your tree makes alternating colors
useful from a functional standpoint (since it has lots of columns,
generally).</doc>
        <source-position filename="gtktreeview.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11137">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="11138">%TRUE if the tree requires reading across rows</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_column"
              c:identifier="gtk_tree_view_set_search_column"
              glib:set-property="search-column">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14008">Sets @column as the column where the interactive search code should
search in for the current model.

If the search column is set, users can use the "start-interactive-search"
key binding to bring up search popup. The enable-search property controls
whether simply typing text will also start an interactive search.

Note that @column refers to a column of the current model. The search
column is reset to -1 when the model is changed.</doc>
        <source-position filename="gtktreeview.h" line="314"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14010">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14011">the column of the model to search in, or -1 to disable searching</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_entry"
              c:identifier="gtk_tree_view_set_search_entry"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14107">Sets the entry which the interactive search code will use for this
@tree_view.  This is useful when you want to provide a search entry
in our interface at all time at a fixed position.  Passing %NULL for
@entry will make the interactive search code use the built-in popup
entry again.</doc>
        <source-position filename="gtktreeview.h" line="323"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14109">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="entry"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14110">the entry the interactive search code of @tree_view should use or %NULL</doc>
            <type name="Entry" c:type="GtkEntry*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_equal_func"
              c:identifier="gtk_tree_view_set_search_equal_func">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14054">Sets the compare function for the interactive search capabilities; note
that somewhat like strcmp() returning 0 for equality
#GtkTreeViewSearchEqualFunc returns %FALSE on matches.</doc>
        <source-position filename="gtktreeview.h" line="317"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14056">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="search_equal_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14057">the compare function to use during the search</doc>
            <type name="TreeViewSearchEqualFunc"
                  c:type="GtkTreeViewSearchEqualFunc"/>
          </parameter>
          <parameter name="search_user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14058">user data to pass to @search_equal_func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="search_destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14059">Destroy notifier for @search_user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_search_position_func"
              c:identifier="gtk_tree_view_set_search_position_func"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="14174">Sets the function to use when positioning the search dialog.</doc>
        <source-position filename="gtktreeview.h" line="326"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14176">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14177">the function to use to position the search dialog, or %NULL
   to use the default search position function</doc>
            <type name="TreeViewSearchPositionFunc"
                  c:type="GtkTreeViewSearchPositionFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14179">user data to pass to @func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="14180">Destroy notifier for @data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_expanders"
              c:identifier="gtk_tree_view_set_show_expanders"
              glib:set-property="show-expanders"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15358">Sets whether to draw and enable expanders and indent child rows in
@tree_view.  When disabled there will be no expanders visible in trees
and there will be no way to expand and collapse rows by default.  Also
note that hiding the expanders will disable the default indentation.  You
can set a custom indentation in this case using
gtk_tree_view_set_level_indentation().
This does not have any visible effects for lists.</doc>
        <source-position filename="gtktreeview.h" line="401"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15360">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15361">%TRUE to enable expander drawing, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_cell"
              c:identifier="gtk_tree_view_set_tooltip_cell"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15477">Sets the tip area of @tooltip to the area @path, @column and @cell have
in common.  For example if @path is %NULL and @column is set, the tip
area will be set to the full area covered by @column.  See also
gtk_tooltip_set_tip_area().

Note that if @path is not specified and @cell is set and part of a column
containing the expander, the tooltip might not show and hide at the correct
position.  In such cases @path must be set to the current node under the
mouse cursor for this function to operate correctly.

See also gtk_tree_view_set_tooltip_column() for a simpler alternative.</doc>
        <source-position filename="gtktreeview.h" line="412"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15479">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15480">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </parameter>
          <parameter name="path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15481">a #GtkTreePath or %NULL</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
          <parameter name="column"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15482">a #GtkTreeViewColumn or %NULL</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </parameter>
          <parameter name="cell"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15483">a #GtkCellRenderer or %NULL</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_column"
              c:identifier="gtk_tree_view_set_tooltip_column"
              glib:set-property="tooltip-column"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15696">If you only plan to have simple (text-only) tooltips on full rows, you
can use this function to have #GtkTreeView handle these automatically
for you. @column should be set to the column in @tree_view's model
containing the tooltip texts, or -1 to disable this feature.

When enabled, #GtkWidget::has-tooltip will be set to %TRUE and
@tree_view will connect a #GtkWidget::query-tooltip signal handler.

Note that the signal handler sets the text with gtk_tooltip_set_markup(),
so &amp;amp;, &amp;lt;, etc have to be escaped in the text.</doc>
        <source-position filename="gtktreeview.h" line="424"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15698">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15699">an integer, which is a valid column number for @tree_view's model</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_row"
              c:identifier="gtk_tree_view_set_tooltip_row"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="15454">Sets the tip area of @tooltip to be the area covered by the row at @path.
See also gtk_tree_view_set_tooltip_column() for a simpler alternative.
See also gtk_tooltip_set_tip_area().</doc>
        <source-position filename="gtktreeview.h" line="409"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15456">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15457">a #GtkTooltip</doc>
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="15458">a #GtkTreePath</doc>
            <type name="TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vadjustment"
              c:identifier="gtk_tree_view_set_vadjustment"
              glib:set-property="vadjustment">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="10961">Sets the #GtkAdjustment for the current vertical aspect.</doc>
        <source-position filename="gtktreeview.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10963">A #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="10964">The #GtkAdjustment to set, or %NULL</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="tree_to_widget_coords"
              c:identifier="gtk_tree_view_tree_to_widget_coords"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13127">Converts tree coordinates (coordinates in full scrollable area of the tree)
to bin_window coordinates.</doc>
        <doc-deprecated xml:space="preserve">Due to historial reasons the name of this function is
incorrect.  For converting bin_window coordinates to coordinates relative
to bin_window, please see
gtk_tree_view_convert_bin_window_to_widget_coords().</doc-deprecated>
        <source-position filename="gtktreeview.h" line="270"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13129">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="tx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13130">tree X coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="ty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13131">tree Y coordinate</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13132">return location for X coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="wy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13133">return location for Y coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_rows_drag_dest"
              c:identifier="gtk_tree_view_unset_rows_drag_dest">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13513">Undoes the effect of
gtk_tree_view_enable_model_drag_dest(). Calling this method sets
#GtkTreeView:reorderable to %FALSE.</doc>
        <source-position filename="gtktreeview.h" line="291"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13515">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_rows_drag_source"
              c:identifier="gtk_tree_view_unset_rows_drag_source">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13481">Undoes the effect of
gtk_tree_view_enable_model_drag_source(). Calling this method sets
#GtkTreeView:reorderable to %FALSE.</doc>
        <source-position filename="gtktreeview.h" line="290"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13483">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="widget_to_tree_coords"
              c:identifier="gtk_tree_view_widget_to_tree_coords"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="13095">Converts bin_window coordinates to coordinates for the
tree (the full scrollable area of the tree).</doc>
        <doc-deprecated xml:space="preserve">Due to historial reasons the name of this function is
incorrect.  For converting coordinates relative to the widget to
bin_window coordinates, please see
gtk_tree_view_convert_widget_to_bin_window_coords().</doc-deprecated>
        <source-position filename="gtktreeview.h" line="265"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_view" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13097">a #GtkTreeView</doc>
            <type name="TreeView" c:type="GtkTreeView*"/>
          </instance-parameter>
          <parameter name="wx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13098">X coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="wy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13099">Y coordinate relative to bin_window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="tx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13100">return location for tree X coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="ty" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="13101">return location for tree Y coordinate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <property name="enable-grid-lines"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_TREE_VIEW_GRID_LINES_NONE">
        <type name="TreeViewGridLines"/>
      </property>
      <property name="enable-search"
                writable="1"
                transfer-ownership="none"
                setter="set_enable_search"
                getter="get_enable_search"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="enable-tree-lines"
                writable="1"
                transfer-ownership="none"
                setter="set_enable_tree_lines"
                getter="get_enable_tree_lines"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="expander-column"
                writable="1"
                transfer-ownership="none"
                setter="set_expander_column"
                getter="get_expander_column">
        <type name="TreeViewColumn"/>
      </property>
      <property name="fixed-height-mode"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_fixed_height_mode"
                getter="get_fixed_height_mode"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="646">Setting the ::fixed-height-mode property to %TRUE speeds up
#GtkTreeView by assuming that all rows have the same height.
Only enable this option if all rows are the same height.
Please see gtk_tree_view_set_fixed_height_mode() for more
information on this option.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hadjustment"
                writable="1"
                transfer-ownership="none"
                setter="set_hadjustment"
                getter="get_hadjustment">
        <type name="Adjustment"/>
      </property>
      <property name="headers-clickable"
                writable="1"
                transfer-ownership="none"
                setter="set_headers_clickable"
                getter="get_headers_clickable"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="headers-visible"
                writable="1"
                transfer-ownership="none"
                setter="set_headers_visible"
                getter="get_headers_visible"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hover-expand"
                version="2.6"
                writable="1"
                transfer-ownership="none"
                setter="set_hover_expand"
                getter="get_hover_expand"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="686">Enables of disables the hover expansion mode of @tree_view.
Hover expansion makes rows expand or collapse if the pointer moves
over them.

This mode is primarily intended for treeviews in popups, e.g.
in #GtkComboBox or #GtkEntryCompletion.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="hover-selection"
                version="2.6"
                writable="1"
                transfer-ownership="none"
                setter="set_hover_selection"
                getter="get_hover_selection"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="665">Enables of disables the hover selection mode of @tree_view.
Hover selection makes the selected row follow the pointer.
Currently, this works only for the selection modes
%GTK_SELECTION_SINGLE and %GTK_SELECTION_BROWSE.

This mode is primarily intended for treeviews in popups, e.g.
in #GtkComboBox or #GtkEntryCompletion.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="level-indentation"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_level_indentation"
                getter="get_level_indentation"
                default-value="0">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="721">Extra indentation for each level.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="model"
                writable="1"
                transfer-ownership="none"
                setter="set_model"
                getter="get_model">
        <type name="TreeModel"/>
      </property>
      <property name="reorderable"
                writable="1"
                transfer-ownership="none"
                setter="set_reorderable"
                getter="get_reorderable"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rubber-banding"
                writable="1"
                transfer-ownership="none"
                setter="set_rubber_banding"
                getter="get_rubber_banding"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rules-hint"
                writable="1"
                transfer-ownership="none"
                setter="set_rules_hint"
                getter="get_rules_hint"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="search-column"
                writable="1"
                transfer-ownership="none"
                setter="set_search_column"
                getter="get_search_column"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="show-expanders"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_show_expanders"
                getter="get_show_expanders"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="706">%TRUE if the view has expanders.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="tooltip-column"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_column"
                getter="get_tooltip_column"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="vadjustment"
                writable="1"
                transfer-ownership="none"
                setter="set_vadjustment"
                getter="get_vadjustment">
        <type name="Adjustment"/>
      </property>
      <field name="parent">
        <type name="Container" c:type="GtkContainer"/>
      </field>
      <field name="priv">
        <type name="TreeViewPrivate" c:type="GtkTreeViewPrivate*"/>
      </field>
      <glib:signal name="columns-changed" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="1004">The number of columns of the treeview has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-changed" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="1019">The position of the cursor (focused cell) has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="expand-collapse-cursor-row" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-cursor" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="MovementStep"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-activated" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="896">The "row-activated" signal is emitted when the method
gtk_tree_view_row_activated() is called or the user double clicks
a treeview row. It is also emitted when a non-editable row is
selected and one of the keys: Space, Shift+Space, Return or
Enter is pressed.

For selection handling refer to the &lt;link linkend="TreeWidget"&gt;tree
widget conceptual overview&lt;/link&gt; as well as #GtkTreeSelection.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="899">the #GtkTreePath for the activated row</doc>
            <type name="TreePath"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="900">the #GtkTreeViewColumn in which the activation occurred</doc>
            <type name="TreeViewColumn"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-collapsed" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="985">The given row has been collapsed (child nodes are hidden).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="988">the tree iter of the collapsed row</doc>
            <type name="TreeIter"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="989">a tree path that points to the row</doc>
            <type name="TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="row-expanded" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="966">The given row has been expanded (child nodes are shown).</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="969">the tree iter of the expanded row</doc>
            <type name="TreeIter"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="970">a tree path that points to the row</doc>
            <type name="TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="select-all" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="select-cursor-parent" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="select-cursor-row" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="set-scroll-adjustments" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="876">Set the scroll adjustments for the tree view. Usually scrolled containers
like #GtkScrolledWindow will emit this signal to connect two instances
of #GtkScrollbar to the scroll directions of the #GtkTreeView.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="start-interactive-search" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="test-collapse-row" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="944">The given row is about to be collapsed (hide its children nodes). Use this
signal if you need to control the collapsibility of individual rows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="953">%FALSE to allow collapsing, %TRUE to reject</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="947">the tree iter of the row to collapse</doc>
            <type name="TreeIter"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="948">a tree path that points to the row</doc>
            <type name="TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="test-expand-row" when="last">
        <doc xml:space="preserve"
             filename="gtktreeview.c"
             line="922">The given row is about to be expanded (show its children nodes). Use this
signal if you need to control the expandability of individual rows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeview.c"
               line="931">%FALSE to allow expansion, %TRUE to reject</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="925">the tree iter of the row to expand</doc>
            <type name="TreeIter"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeview.c"
                 line="926">a tree path that points to the row</doc>
            <type name="TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="toggle-cursor-row" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unselect-all" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TreeViewClass"
            c:type="GtkTreeViewClass"
            glib:is-gtype-struct-for="TreeView">
      <source-position filename="gtktreeview.h" line="115"/>
      <field name="parent_class">
        <type name="ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="set_scroll_adjustments">
        <callback name="set_scroll_adjustments">
          <source-position filename="gtktreeview.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_activated">
        <callback name="row_activated">
          <source-position filename="gtktreeview.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreeview.c"
                   line="11795">A #GtkTreeView</doc>
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreeview.c"
                   line="11796">The #GtkTreePath to be activated.</doc>
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
            <parameter name="column" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreeview.c"
                   line="11797">The #GtkTreeViewColumn to be activated.</doc>
              <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="test_expand_row">
        <callback name="test_expand_row">
          <source-position filename="gtktreeview.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="test_collapse_row">
        <callback name="test_collapse_row">
          <source-position filename="gtktreeview.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_expanded">
        <callback name="row_expanded">
          <source-position filename="gtktreeview.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="row_collapsed">
        <callback name="row_collapsed">
          <source-position filename="gtktreeview.h" line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="iter" transfer-ownership="none">
              <type name="TreeIter" c:type="GtkTreeIter*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="columns_changed">
        <callback name="columns_changed">
          <source-position filename="gtktreeview.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cursor_changed">
        <callback name="cursor_changed">
          <source-position filename="gtktreeview.h" line="91"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_cursor">
        <callback name="move_cursor">
          <source-position filename="gtktreeview.h" line="94"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="step" transfer-ownership="none">
              <type name="MovementStep" c:type="GtkMovementStep"/>
            </parameter>
            <parameter name="count" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_all">
        <callback name="select_all">
          <source-position filename="gtktreeview.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unselect_all">
        <callback name="unselect_all">
          <source-position filename="gtktreeview.h" line="98"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_cursor_row">
        <callback name="select_cursor_row">
          <source-position filename="gtktreeview.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="start_editing" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="toggle_cursor_row">
        <callback name="toggle_cursor_row">
          <source-position filename="gtktreeview.h" line="101"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="expand_collapse_cursor_row">
        <callback name="expand_collapse_cursor_row">
          <source-position filename="gtktreeview.h" line="102"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
            <parameter name="logical" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="expand" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="open_all" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="select_cursor_parent">
        <callback name="select_cursor_parent">
          <source-position filename="gtktreeview.h" line="106"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start_interactive_search">
        <callback name="start_interactive_search">
          <source-position filename="gtktreeview.h" line="107"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="tree_view" transfer-ownership="none">
              <type name="TreeView" c:type="GtkTreeView*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved0" introspectable="0">
        <callback name="_gtk_reserved0">
          <source-position filename="gtktreeview.h" line="110"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreeview.h" line="111"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreeview.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreeview.h" line="113"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktreeview.h" line="114"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="TreeViewColumn"
           c:symbol-prefix="tree_view_column"
           c:type="GtkTreeViewColumn"
           parent="Object"
           glib:type-name="GtkTreeViewColumn"
           glib:get-type="gtk_tree_view_column_get_type"
           glib:type-struct="TreeViewColumnClass">
      <source-position filename="gtktreeviewcolumn.h" line="124"/>
      <implements name="Buildable"/>
      <implements name="CellLayout"/>
      <constructor name="new" c:identifier="gtk_tree_view_column_new">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1445">Creates a new #GtkTreeViewColumn.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="127"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1450">A newly created #GtkTreeViewColumn.</doc>
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </return-value>
      </constructor>
      <constructor name="new_with_attributes"
                   c:identifier="gtk_tree_view_column_new_with_attributes"
                   introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1462">Creates a new #GtkTreeViewColumn with a number of default values.  This is
equivalent to calling gtk_tree_view_column_set_title(),
gtk_tree_view_column_pack_start(), and
gtk_tree_view_column_set_attributes() on the newly created #GtkTreeViewColumn.

Here's a simple example:
|[
 enum { TEXT_COLUMN, COLOR_COLUMN, N_COLUMNS };
 ...
 {
   GtkTreeViewColumn *column;
   GtkCellRenderer   *renderer = gtk_cell_renderer_text_new ();
 
   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                      renderer,
                                                      "text", TEXT_COLUMN,
                                                      "foreground", COLOR_COLUMN,
                                                      NULL);
 }
]|</doc>
        <source-position filename="gtktreeviewcolumn.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1489">A newly created #GtkTreeViewColumn.</doc>
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </return-value>
        <parameters>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1464">The title to set the header to.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1465">The #GtkCellRenderer.</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1466">A %NULL-terminated list of attributes.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="clicked" invoker="clicked">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2089">Emits the "clicked" signal on the column.  This function will only work if
@tree_column is clickable.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2091">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="add_attribute"
              c:identifier="gtk_tree_view_column_add_attribute">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1606">Adds an attribute mapping to the list in @tree_column.  The @column is the
column of the model to get a value from, and the @attribute is the
parameter on @cell_renderer to be set from the value. So for example
if column 2 of the model contains strings, you could have the
"text" attribute of a #GtkCellRendererText get its values from
column 2.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1608">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1609">the #GtkCellRenderer to set attributes on</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="attribute" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1610">An attribute on the renderer</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1611">The column position on the model to get the attribute from.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="cell_get_position"
              c:identifier="gtk_tree_view_column_cell_get_position">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="3699">Obtains the horizontal position and size of a cell in a column. If the
cell is not found in the column, @start_pos and @width are not changed and
%FALSE is returned.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="234"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="3711">%TRUE if @cell belongs to @tree_column.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3701">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3702">a #GtkCellRenderer</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="start_pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3703">return location for the horizontal position of @cell within
           @tree_column, may be %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3705">return location for the width of @cell, may be %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cell_get_size"
              c:identifier="gtk_tree_view_column_cell_get_size">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2599">Obtains the width and height needed to render the column.  This is used
primarily by the #GtkTreeView.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="225"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2601">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_area"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2602">The area a cell in the column will be allocated, or %NULL</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
          <parameter name="x_offset"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2603">location to return x offset of a cell relative to @cell_area, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y_offset"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2604">location to return y offset of a cell relative to @cell_area, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2605">location to return width needed to render a cell, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2606">location to return height needed to render a cell, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cell_is_visible"
              c:identifier="gtk_tree_view_column_cell_is_visible">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="3528">Returns %TRUE if any of the cells packed into the @tree_column are visible.
For this to be meaningful, you must first initialize the cells with
gtk_tree_view_column_cell_set_cell_data()</doc>
        <source-position filename="gtktreeviewcolumn.h" line="231"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="3536">%TRUE, if any of the cells packed into the @tree_column are currently visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3530">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="cell_set_cell_data"
              c:identifier="gtk_tree_view_column_cell_set_cell_data">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2538">Sets the cell renderer based on the @tree_model and @iter.  That is, for
every attribute mapping in @tree_column, it will get a value from the set
column on the @iter, and use that value to set the attribute on the cell
renderer.  This is used primarily by the #GtkTreeView.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="220"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2540">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="tree_model" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2541">The #GtkTreeModel to to get the cell renderers attributes from.</doc>
            <type name="TreeModel" c:type="GtkTreeModel*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2542">The #GtkTreeIter to to get the cell renderer's attributes from.</doc>
            <type name="TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="is_expander" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2543">%TRUE, if the row has children</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="is_expanded" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2544">%TRUE, if the row has visible children</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear" c:identifier="gtk_tree_view_column_clear">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1559">Unsets all the mappings on all renderers on the @tree_column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1561">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="clear_attributes"
              c:identifier="gtk_tree_view_column_clear_attributes">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1706">Clears all existing attributes previously set with
gtk_tree_view_column_set_attributes().</doc>
        <source-position filename="gtktreeviewcolumn.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1708">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1709">a #GtkCellRenderer to clear the attribute mapping on.</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clicked" c:identifier="gtk_tree_view_column_clicked">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2089">Emits the "clicked" signal on the column.  This function will only work if
@tree_column is clickable.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="177"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2091">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="focus_cell"
              c:identifier="gtk_tree_view_column_focus_cell"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="3556">Sets the current keyboard focus to be at @cell, if the column contains
2 or more editable and activatable cells.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="232"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3558">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3559">A #GtkCellRenderer</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_alignment"
              c:identifier="gtk_tree_view_column_get_alignment"
              glib:get-property="alignment">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2314">Returns the current x alignment of @tree_column.  This value can range
between 0.0 and 1.0.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2321">The current alignent of @tree_column.</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2316">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cell_renderers"
              c:identifier="gtk_tree_view_column_get_cell_renderers"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.18">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1589">Returns a newly-allocated #GList of all the cell renderers in the column,
in no particular order.  The list must be freed with g_list_free().</doc>
        <doc-deprecated xml:space="preserve">use gtk_cell_layout_get_cells() instead.</doc-deprecated>
        <source-position filename="gtktreeviewcolumn.h" line="139"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1596">A list of #GtkCellRenderers</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1591">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_clickable"
              c:identifier="gtk_tree_view_column_get_clickable"
              glib:get-property="clickable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2229">Returns %TRUE if the user can click on the header for the column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2235">%TRUE if user can click the column header.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2231">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_expand"
              c:identifier="gtk_tree_view_column_get_expand"
              glib:get-property="expand"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2188">Return %TRUE if the column expands to take any available space.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2194">%TRUE, if the column expands</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2190">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_fixed_width"
              c:identifier="gtk_tree_view_column_get_fixed_width"
              glib:get-property="fixed-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1954">Gets the fixed width of the column.  This value is only meaning may not be
the actual width of the column on the screen, just what is requested.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1961">the fixed width of the column</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1956">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_width"
              c:identifier="gtk_tree_view_column_get_max_width"
              glib:get-property="max-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2072">Returns the maximum width in pixels of the @tree_column, or -1 if no maximum
width is set.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="176"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2079">The maximum width of the @tree_column.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2074">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_width"
              c:identifier="gtk_tree_view_column_get_min_width"
              glib:get-property="min-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2012">Returns the minimum width in pixels of the @tree_column, or -1 if no minimum
width is set.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="173"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2019">The minimum width of the @tree_column.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2014">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reorderable"
              c:identifier="gtk_tree_view_column_get_reorderable"
              glib:get-property="reorderable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2356">Returns %TRUE if the @tree_column can be reordered by the user.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2362">%TRUE if the @tree_column can be reordered by the user.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2358">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_resizable"
              c:identifier="gtk_tree_view_column_get_resizable"
              glib:get-property="resizable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1838">Returns %TRUE if the @tree_column can be resized by the end user.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1844">%TRUE, if the @tree_column can be resized.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1840">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sizing"
              c:identifier="gtk_tree_view_column_get_sizing"
              glib:get-property="sizing">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1891">Returns the current type of @tree_column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="166"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1897">The type of @tree_column.</doc>
          <type name="TreeViewColumnSizing" c:type="GtkTreeViewColumnSizing"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1893">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sort_column_id"
              c:identifier="gtk_tree_view_column_get_sort_column_id"
              glib:get-property="sort-column-id">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2429">Gets the logical @sort_column_id that the model sorts on when this
column is selected for sorting.
See gtk_tree_view_column_set_sort_column_id().</doc>
        <source-position filename="gtktreeviewcolumn.h" line="209"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2437">the current @sort_column_id for this column, or -1 if
              this column can't be used for sorting.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2431">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sort_indicator"
              c:identifier="gtk_tree_view_column_get_sort_indicator"
              glib:get-property="sort-indicator">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2475">Gets the value set by gtk_tree_view_column_set_sort_indicator().</doc>
        <source-position filename="gtktreeviewcolumn.h" line="212"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2481">whether the sort indicator arrow is displayed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2477">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sort_order"
              c:identifier="gtk_tree_view_column_get_sort_order"
              glib:get-property="sort-order">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2522">Gets the value set by gtk_tree_view_column_set_sort_order().</doc>
        <source-position filename="gtktreeviewcolumn.h" line="215"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2528">the sort order the sort indicator is indicating</doc>
          <type name="SortType" c:type="GtkSortType"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2524">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_spacing"
              c:identifier="gtk_tree_view_column_get_spacing"
              glib:get-property="spacing">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1745">Returns the spacing of @tree_column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1751">the spacing of @tree_column.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1747">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gtk_tree_view_column_get_title"
              glib:get-property="title">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2131">Returns the title of the widget.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2137">the title of the column. This string should not be
modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2133">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tree_view"
              c:identifier="gtk_tree_view_column_get_tree_view"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="3767">Returns the #GtkTreeView wherein @tree_column has been inserted.
If @column is currently not inserted in any tree view, %NULL is
returned.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="239"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="3775">The tree view wherein @column has
    been inserted if any, %NULL otherwise.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3769">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible"
              c:identifier="gtk_tree_view_column_get_visible"
              glib:get-property="visible">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1790">Returns %TRUE if @tree_column is visible.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="160"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1796">whether the column is visible or not.  If it is visible, then
the tree will show the column.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1792">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widget"
              c:identifier="gtk_tree_view_column_get_widget"
              glib:get-property="widget">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2271">Returns the #GtkWidget in the button on the column header.
If a custom widget has not been set then %NULL is returned.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="2278">The #GtkWidget in the column
    header, or %NULL</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2273">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="gtk_tree_view_column_get_width"
              glib:get-property="width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1907">Returns the current size of @tree_column in pixels.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreeviewcolumn.c"
               line="1913">The current width of @tree_column.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1909">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pack_end" c:identifier="gtk_tree_view_column_pack_end">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1541">Adds the @cell to end of the column. If @expand is %FALSE, then the @cell
is allocated no more space than it needs. Any unused space is divided
evenly between cells for which @expand is %TRUE.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1543">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1544">The #GtkCellRenderer.</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1545">%TRUE if @cell is to be given extra space allocated to @tree_column.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="pack_start" c:identifier="gtk_tree_view_column_pack_start">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1523">Packs the @cell into the beginning of the column. If @expand is %FALSE, then
the @cell is allocated no more space than it needs. Any unused space is divided
evenly between cells for which @expand is %TRUE.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1525">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1526">The #GtkCellRenderer.</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1527">%TRUE if @cell is to be given extra space allocated to @tree_column.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_resize"
              c:identifier="gtk_tree_view_column_queue_resize"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="3749">Flags the column, and the cell renderers added to this column, to have
their sizes renegotiated.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="238"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="3751">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_alignment"
              c:identifier="gtk_tree_view_column_set_alignment"
              glib:set-property="alignment">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2289">Sets the alignment of the title or custom widget inside the column header.
The alignment determines its location inside the button -- 0.0 for left, 0.5
for center, 1.0 for right.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2291">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="xalign" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2292">The alignment, which is between [0.0 and 1.0] inclusive.</doc>
            <type name="gfloat" c:type="gfloat"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes"
              c:identifier="gtk_tree_view_column_set_attributes"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1650">Sets the attributes in the list as the attributes of @tree_column.
The attributes should be in attribute/column order, as in
gtk_tree_view_column_add_attribute(). All existing attributes
are removed, and replaced with the new attributes.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1652">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1653">the #GtkCellRenderer we're setting the attributes of</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1654">A %NULL-terminated list of attributes.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cell_data_func"
              c:identifier="gtk_tree_view_column_set_cell_data_func">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1678">Sets the #GtkTreeViewColumnFunc to use for the column.  This
function is used instead of the standard attributes mapping for
setting the column value, and should set the value of @tree_column's
cell renderer as appropriate.  @func may be %NULL to remove an
older one.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1680">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="cell_renderer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1681">A #GtkCellRenderer</doc>
            <type name="CellRenderer" c:type="GtkCellRenderer*"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1682">The #GtkTreeViewColumnFunc to use.</doc>
            <type name="TreeCellDataFunc" c:type="GtkTreeCellDataFunc"/>
          </parameter>
          <parameter name="func_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1683">The user data for @func.</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1684">The destroy notification for @func_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_clickable"
              c:identifier="gtk_tree_view_column_set_clickable"
              glib:set-property="clickable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2206">Sets the header to be active if @active is %TRUE.  When the header is active,
then it can take keyboard focus, and can be clicked.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2208">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="clickable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2209">%TRUE if the header is active.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_expand"
              c:identifier="gtk_tree_view_column_set_expand"
              glib:set-property="expand"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2148">Sets the column to take available extra space.  This space is shared equally
amongst all columns that have the expand set to %TRUE.  If no column has this
option set, then the last column gets all extra space.  By default, every
column is created with this %FALSE.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2150">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="expand" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2151">%TRUE if the column should take available extra space, %FALSE if not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_fixed_width"
              c:identifier="gtk_tree_view_column_set_fixed_width"
              glib:set-property="fixed-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1923">Sets the size of the column in pixels.  This is meaningful only if the sizing
type is #GTK_TREE_VIEW_COLUMN_FIXED.  The size of the column is clamped to
the min/max width for the column.  Please note that the min/max width of the
column doesn't actually affect the "fixed_width" property of the widget, just
the actual size when displayed.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1925">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="fixed_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1926">The size to set @tree_column to. Must be greater than 0.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_max_width"
              c:identifier="gtk_tree_view_column_set_max_width"
              glib:set-property="max-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2029">Sets the maximum width of the @tree_column.  If @max_width is -1, then the
maximum width is unset.  Note, the column can actually be wider than max
width if it's the last column in a view.  In this case, the column expands to
fill any extra space.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2031">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="max_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2032">The maximum width of the column in pixels, or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_min_width"
              c:identifier="gtk_tree_view_column_set_min_width"
              glib:set-property="min-width">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1971">Sets the minimum width of the @tree_column.  If @min_width is -1, then the
minimum width is unset.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1973">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="min_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1974">The minimum width of the column in pixels, or -1.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reorderable"
              c:identifier="gtk_tree_view_column_set_reorderable"
              glib:set-property="reorderable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2331">If @reorderable is %TRUE, then the column can be reordered by the end user
dragging the header.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="198"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2333">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="reorderable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2334">%TRUE, if the column can be reordered.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resizable"
              c:identifier="gtk_tree_view_column_set_resizable"
              glib:set-property="resizable">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1807">If @resizable is %TRUE, then the user can explicitly resize the column by
grabbing the outer edge of the column button.  If resizable is %TRUE and
sizing mode of the column is #GTK_TREE_VIEW_COLUMN_AUTOSIZE, then the sizing
mode is changed to #GTK_TREE_VIEW_COLUMN_GROW_ONLY.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1809">A #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="resizable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1810">%TRUE, if the column can be resized</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sizing"
              c:identifier="gtk_tree_view_column_set_sizing"
              glib:set-property="sizing">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1855">Sets the growth behavior of @tree_column to @type.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1857">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1858">The #GtkTreeViewColumnSizing.</doc>
            <type name="TreeViewColumnSizing"
                  c:type="GtkTreeViewColumnSizing"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_column_id"
              c:identifier="gtk_tree_view_column_set_sort_column_id"
              glib:set-property="sort-column-id">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2373">Sets the logical @sort_column_id that this column sorts on when this column
is selected for sorting.  Doing so makes the column header clickable.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2375">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="sort_column_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2376">The @sort_column_id of the model to sort on.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_indicator"
              c:identifier="gtk_tree_view_column_set_sort_indicator"
              glib:set-property="sort-indicator">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2448">Call this function with a @setting of %TRUE to display an arrow in
the header button indicating the column is sorted. Call
gtk_tree_view_column_set_sort_order() to change the direction of
the arrow.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2450">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2451">%TRUE to display an indicator that the column is sorted</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_order"
              c:identifier="gtk_tree_view_column_set_sort_order"
              glib:set-property="sort-order">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2491">Changes the appearance of the sort indicator.

This &lt;emphasis&gt;does not&lt;/emphasis&gt; actually sort the model.  Use
gtk_tree_view_column_set_sort_column_id() if you want automatic sorting
support.  This function is primarily for custom sorting behavior, and should
be used in conjunction with gtk_tree_sortable_set_sort_column() to do
that. For custom models, the mechanism will vary.

The sort indicator changes direction to indicate normal sort or reverse sort.
Note that you must have the sort indicator enabled to see anything when
calling this function; see gtk_tree_view_column_set_sort_indicator().</doc>
        <source-position filename="gtktreeviewcolumn.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2493">a #GtkTreeViewColumn</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2494">sort order that the sort indicator should indicate</doc>
            <type name="SortType" c:type="GtkSortType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_spacing"
              c:identifier="gtk_tree_view_column_set_spacing"
              glib:set-property="spacing">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1722">Sets the spacing field of @tree_column, which is the number of pixels to
place between cell renderers packed into it.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1724">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="spacing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1725">distance between cell renderers in pixels.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="gtk_tree_view_column_set_title"
              glib:set-property="title">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2107">Sets the title of the @tree_column.  If a custom widget has been set, then
this value is ignored.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2109">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2110">The title of the @tree_column.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible"
              c:identifier="gtk_tree_view_column_set_visible"
              glib:set-property="visible">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="1763">Sets the visibility of @tree_column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1765">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="1766">%TRUE if the @tree_column is visible.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_widget"
              c:identifier="gtk_tree_view_column_set_widget"
              glib:set-property="widget">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="2245">Sets the widget in the header to be @widget.  If widget is %NULL, then the
header button is set with a #GtkLabel set to the title of @tree_column.</doc>
        <source-position filename="gtktreeviewcolumn.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tree_column" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2247">A #GtkTreeViewColumn.</doc>
            <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
          </instance-parameter>
          <parameter name="widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtktreeviewcolumn.c"
                 line="2248">A child #GtkWidget, or %NULL.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <property name="alignment"
                writable="1"
                transfer-ownership="none"
                setter="set_alignment"
                getter="get_alignment"
                default-value="0.000000">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="clickable"
                writable="1"
                transfer-ownership="none"
                setter="set_clickable"
                getter="get_clickable"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="expand"
                writable="1"
                transfer-ownership="none"
                setter="set_expand"
                getter="get_expand"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fixed-width"
                writable="1"
                transfer-ownership="none"
                setter="set_fixed_width"
                getter="get_fixed_width"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="max-width"
                writable="1"
                transfer-ownership="none"
                setter="set_max_width"
                getter="get_max_width"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="min-width"
                writable="1"
                transfer-ownership="none"
                setter="set_min_width"
                getter="get_min_width"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="reorderable"
                writable="1"
                transfer-ownership="none"
                setter="set_reorderable"
                getter="get_reorderable"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="resizable"
                writable="1"
                transfer-ownership="none"
                setter="set_resizable"
                getter="get_resizable"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sizing"
                writable="1"
                transfer-ownership="none"
                setter="set_sizing"
                getter="get_sizing"
                default-value="GTK_TREE_VIEW_COLUMN_GROW_ONLY">
        <type name="TreeViewColumnSizing"/>
      </property>
      <property name="sort-column-id"
                version="2.18"
                writable="1"
                transfer-ownership="none"
                setter="set_sort_column_id"
                getter="get_sort_column_id"
                default-value="-1">
        <doc xml:space="preserve"
             filename="gtktreeviewcolumn.c"
             line="330">Logical sort column ID this column sorts on when selected for sorting. Setting the sort column ID makes the column header
clickable. Set to %-1 to make the column unsortable.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="sort-indicator"
                writable="1"
                transfer-ownership="none"
                setter="set_sort_indicator"
                getter="get_sort_indicator"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sort-order"
                writable="1"
                transfer-ownership="none"
                setter="set_sort_order"
                getter="get_sort_order"
                default-value="GTK_SORT_ASCENDING">
        <type name="SortType"/>
      </property>
      <property name="spacing"
                writable="1"
                transfer-ownership="none"
                setter="set_spacing"
                getter="get_spacing"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="title"
                writable="1"
                transfer-ownership="none"
                setter="set_title"
                getter="get_title">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="visible"
                writable="1"
                transfer-ownership="none"
                setter="set_visible"
                getter="get_visible"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="widget"
                writable="1"
                transfer-ownership="none"
                setter="set_widget"
                getter="get_widget">
        <type name="Widget"/>
      </property>
      <property name="width"
                transfer-ownership="none"
                getter="get_width"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="Object" c:type="GtkObject"/>
      </field>
      <field name="tree_view">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="button">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="child">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="arrow">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="alignment">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="editable_widget">
        <type name="CellEditable" c:type="GtkCellEditable*"/>
      </field>
      <field name="xalign">
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="property_changed_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="spacing">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="column_type">
        <type name="TreeViewColumnSizing" c:type="GtkTreeViewColumnSizing"/>
      </field>
      <field name="requested_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="button_request">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="resized_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="fixed_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="min_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="max_width">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="drag_x">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="drag_y">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="title">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="cell_list">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="sort_clicked_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="sort_column_changed_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="sort_column_id">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="sort_order">
        <type name="SortType" c:type="GtkSortType"/>
      </field>
      <field name="visible" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="resizable" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="clickable" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="dirty" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="show_sort_indicator" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="maybe_reordered" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="reorderable" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="use_resized_width" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="expand" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <glib:signal name="clicked" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="TreeViewColumnClass"
            c:type="GtkTreeViewColumnClass"
            glib:is-gtype-struct-for="TreeViewColumn">
      <source-position filename="gtktreeviewcolumn.h" line="124"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtkObjectClass"/>
      </field>
      <field name="clicked">
        <callback name="clicked">
          <source-position filename="gtktreeviewcolumn.h" line="117"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="tree_column" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtktreeviewcolumn.c"
                   line="2091">a #GtkTreeViewColumn</doc>
              <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtktreeviewcolumn.h" line="120"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtktreeviewcolumn.h" line="121"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtktreeviewcolumn.h" line="122"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtktreeviewcolumn.h" line="123"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="TreeViewColumnDropFunc" c:type="GtkTreeViewColumnDropFunc">
      <source-position filename="gtktreeview.h" line="118"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tree_view" transfer-ownership="none">
          <type name="TreeView" c:type="GtkTreeView*"/>
        </parameter>
        <parameter name="column" transfer-ownership="none">
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </parameter>
        <parameter name="prev_column" transfer-ownership="none">
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </parameter>
        <parameter name="next_column" transfer-ownership="none">
          <type name="TreeViewColumn" c:type="GtkTreeViewColumn*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TreeViewColumnSizing"
                 glib:type-name="GtkTreeViewColumnSizing"
                 glib:get-type="gtk_tree_view_column_sizing_get_type"
                 c:type="GtkTreeViewColumnSizing">
      <member name="grow_only"
              value="0"
              c:identifier="GTK_TREE_VIEW_COLUMN_GROW_ONLY"
              glib:nick="grow-only"
              glib:name="GTK_TREE_VIEW_COLUMN_GROW_ONLY">
      </member>
      <member name="autosize"
              value="1"
              c:identifier="GTK_TREE_VIEW_COLUMN_AUTOSIZE"
              glib:nick="autosize"
              glib:name="GTK_TREE_VIEW_COLUMN_AUTOSIZE">
      </member>
      <member name="fixed"
              value="2"
              c:identifier="GTK_TREE_VIEW_COLUMN_FIXED"
              glib:nick="fixed"
              glib:name="GTK_TREE_VIEW_COLUMN_FIXED">
      </member>
    </enumeration>
    <enumeration name="TreeViewDropPosition"
                 glib:type-name="GtkTreeViewDropPosition"
                 glib:get-type="gtk_tree_view_drop_position_get_type"
                 c:type="GtkTreeViewDropPosition">
      <member name="before"
              value="0"
              c:identifier="GTK_TREE_VIEW_DROP_BEFORE"
              glib:nick="before"
              glib:name="GTK_TREE_VIEW_DROP_BEFORE">
      </member>
      <member name="after"
              value="1"
              c:identifier="GTK_TREE_VIEW_DROP_AFTER"
              glib:nick="after"
              glib:name="GTK_TREE_VIEW_DROP_AFTER">
      </member>
      <member name="into_or_before"
              value="2"
              c:identifier="GTK_TREE_VIEW_DROP_INTO_OR_BEFORE"
              glib:nick="into-or-before"
              glib:name="GTK_TREE_VIEW_DROP_INTO_OR_BEFORE">
      </member>
      <member name="into_or_after"
              value="3"
              c:identifier="GTK_TREE_VIEW_DROP_INTO_OR_AFTER"
              glib:nick="into-or-after"
              glib:name="GTK_TREE_VIEW_DROP_INTO_OR_AFTER">
      </member>
    </enumeration>
    <enumeration name="TreeViewGridLines"
                 glib:type-name="GtkTreeViewGridLines"
                 glib:get-type="gtk_tree_view_grid_lines_get_type"
                 c:type="GtkTreeViewGridLines">
      <member name="none"
              value="0"
              c:identifier="GTK_TREE_VIEW_GRID_LINES_NONE"
              glib:nick="none"
              glib:name="GTK_TREE_VIEW_GRID_LINES_NONE">
      </member>
      <member name="horizontal"
              value="1"
              c:identifier="GTK_TREE_VIEW_GRID_LINES_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="GTK_TREE_VIEW_GRID_LINES_HORIZONTAL">
      </member>
      <member name="vertical"
              value="2"
              c:identifier="GTK_TREE_VIEW_GRID_LINES_VERTICAL"
              glib:nick="vertical"
              glib:name="GTK_TREE_VIEW_GRID_LINES_VERTICAL">
      </member>
      <member name="both"
              value="3"
              c:identifier="GTK_TREE_VIEW_GRID_LINES_BOTH"
              glib:nick="both"
              glib:name="GTK_TREE_VIEW_GRID_LINES_BOTH">
      </member>
    </enumeration>
    <callback name="TreeViewMappingFunc" c:type="GtkTreeViewMappingFunc">
      <source-position filename="gtktreeview.h" line="123"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tree_view" transfer-ownership="none">
          <type name="TreeView" c:type="GtkTreeView*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TreeViewMode"
                 glib:type-name="GtkTreeViewMode"
                 glib:get-type="gtk_tree_view_mode_get_type"
                 c:type="GtkTreeViewMode">
      <member name="line"
              value="0"
              c:identifier="GTK_TREE_VIEW_LINE"
              glib:nick="line"
              glib:name="GTK_TREE_VIEW_LINE">
      </member>
      <member name="item"
              value="1"
              c:identifier="GTK_TREE_VIEW_ITEM"
              glib:nick="item"
              glib:name="GTK_TREE_VIEW_ITEM">
      </member>
    </enumeration>
    <record name="TreeViewPrivate"
            c:type="GtkTreeViewPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtktreeview.h" line="57"/>
    </record>
    <callback name="TreeViewRowSeparatorFunc"
              c:type="GtkTreeViewRowSeparatorFunc">
      <source-position filename="gtktreeview.h" line="131"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeViewSearchEqualFunc"
              c:type="GtkTreeViewSearchEqualFunc">
      <source-position filename="gtktreeview.h" line="126"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="model" transfer-ownership="none">
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="column" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="search_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TreeViewSearchPositionFunc"
              c:type="GtkTreeViewSearchPositionFunc">
      <source-position filename="gtktreeview.h" line="134"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="tree_view" transfer-ownership="none">
          <type name="TreeView" c:type="GtkTreeView*"/>
        </parameter>
        <parameter name="search_dialog" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="TypeInfo" c:type="GtkTypeInfo">
      <source-position filename="gtktypeutils.h" line="234"/>
      <field name="type_name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="object_size" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="class_size" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="class_init_func" writable="1">
        <type name="ClassInitFunc" c:type="GtkClassInitFunc"/>
      </field>
      <field name="object_init_func" writable="1">
        <type name="ObjectInitFunc" c:type="GtkObjectInitFunc"/>
      </field>
      <field name="reserved_1" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="reserved_2" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="base_class_init_func" writable="1">
        <type name="ClassInitFunc" c:type="GtkClassInitFunc"/>
      </field>
    </record>
    <class name="UIManager"
           c:symbol-prefix="ui_manager"
           c:type="GtkUIManager"
           parent="GObject.Object"
           glib:type-name="GtkUIManager"
           glib:get-type="gtk_ui_manager_get_type"
           glib:type-struct="UIManagerClass">
      <source-position filename="gtkuimanager.h" line="92"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_ui_manager_new" version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="587">Creates a new ui manager object.</doc>
        <source-position filename="gtkuimanager.h" line="114"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="592">a new ui manager object.</doc>
          <type name="UIManager" c:type="GtkUIManager*"/>
        </return-value>
      </constructor>
      <virtual-method name="actions_changed">
        <source-position filename="gtkuimanager.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_widget">
        <source-position filename="gtkuimanager.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="connect_proxy">
        <source-position filename="gtkuimanager.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Action" c:type="GtkAction*"/>
          </parameter>
          <parameter name="proxy" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="disconnect_proxy">
        <source-position filename="gtkuimanager.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Action" c:type="GtkAction*"/>
          </parameter>
          <parameter name="proxy" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_action" invoker="get_action" version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="924">Looks up an action by following a path. See gtk_ui_manager_get_widget()
for more information about paths.</doc>
        <source-position filename="gtkuimanager.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="932">the action whose proxy widget is found by following the path,
    or %NULL if no widget was found.</doc>
          <type name="Action" c:type="GtkAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="927">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_widget" invoker="get_widget" version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="821">Looks up a widget by following a path.
The path consists of the names specified in the XML description of the UI.
separated by '/'. Elements which don't have a name or action attribute in
the XML (e.g. &amp;lt;popup&amp;gt;) can be addressed by their XML element name
(e.g. "popup"). The root element ("/ui") can be omitted in the path.

Note that the widget found by following a path that ends in a &amp;lt;menu&amp;gt;
element is the menuitem to which the menu is attached, not the menu itself.

Also note that the widgets constructed by a ui manager are not tied to
the lifecycle of the ui manager. If you add the widgets returned by this
function to some container or explicitly ref them, they will survive the
destruction of the ui manager.</doc>
        <source-position filename="gtkuimanager.h" line="84"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="840">the widget found by following the path, or %NULL if no widget
  was found.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="824">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="post_activate">
        <source-position filename="gtkuimanager.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Action" c:type="GtkAction*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pre_activate">
        <source-position filename="gtkuimanager.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="merge" transfer-ownership="none">
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <type name="Action" c:type="GtkAction*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_ui" c:identifier="gtk_ui_manager_add_ui" version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="1734">Adds a UI element to the current contents of @self.

If @type is %GTK_UI_MANAGER_AUTO, GTK+ inserts a menuitem, toolitem or
separator if such an element can be inserted at the place determined by
@path. Otherwise @type must indicate an element that can be inserted at
the place determined by @path.

If @path points to a menuitem or toolitem, the new element will be inserted
before or after this item, depending on @top.</doc>
        <source-position filename="gtkuimanager.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1736">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="merge_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1737">the merge id for the merged UI, see gtk_ui_manager_new_merge_id()</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1738">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1739">the name for the added UI element</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="action"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1740">the name of the action to be proxied, or %NULL to add a separator</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1741">the type of UI element to add.</doc>
            <type name="UIManagerItemType" c:type="GtkUIManagerItemType"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1742">if %TRUE, the UI element is added before its siblings, otherwise it
  is added after its siblings.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_ui_from_file"
              c:identifier="gtk_ui_manager_add_ui_from_file"
              version="2.4"
              throws="1">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="1699">Parses a file containing a &lt;link linkend="XML-UI"&gt;UI definition&lt;/link&gt; and
merges it with the current contents of @self.</doc>
        <source-position filename="gtkuimanager.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="1708">The merge id for the merged UI. The merge id can be used
  to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred,
  the return value is 0.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1701">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1702">the name of the file to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_ui_from_string"
              c:identifier="gtk_ui_manager_add_ui_from_string"
              version="2.4"
              throws="1">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="1655">Parses a string containing a &lt;link linkend="XML-UI"&gt;UI definition&lt;/link&gt; and
merges it with the current contents of @self. An enclosing &amp;lt;ui&amp;gt;
element is added if it is missing.</doc>
        <source-position filename="gtkuimanager.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="1666">The merge id for the merged UI. The merge id can be used
  to unmerge the UI with gtk_ui_manager_remove_ui(). If an error occurred,
  the return value is 0.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1657">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1658">the string to parse</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1659">the length of @buffer (may be -1 if @buffer is nul-terminated)</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_update"
              c:identifier="gtk_ui_manager_ensure_update"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="2854">Makes sure that all pending updates to the UI have been completed.

This may occasionally be necessary, since #GtkUIManager updates the
UI in an idle function. A typical example where this function is
useful is to enforce that the menubar and toolbar have been added to
the main window before showing it:
|[
gtk_container_add (GTK_CONTAINER (window), vbox);
g_signal_connect (merge, "add-widget",
                  G_CALLBACK (add_widget), vbox);
gtk_ui_manager_add_ui_from_file (merge, "my-menus");
gtk_ui_manager_add_ui_from_file (merge, "my-toolbars");
gtk_ui_manager_ensure_update (merge);
gtk_widget_show (window);
]|</doc>
        <source-position filename="gtkuimanager.h" line="148"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="2856">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_accel_group"
              c:identifier="gtk_ui_manager_get_accel_group"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="803">Returns the #GtkAccelGroup associated with @self.</doc>
        <source-position filename="gtkuimanager.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="809">the #GtkAccelGroup.</doc>
          <type name="AccelGroup" c:type="GtkAccelGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="805">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_action"
              c:identifier="gtk_ui_manager_get_action"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="924">Looks up an action by following a path. See gtk_ui_manager_get_widget()
for more information about paths.</doc>
        <source-position filename="gtkuimanager.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="932">the action whose proxy widget is found by following the path,
    or %NULL if no widget was found.</doc>
          <type name="Action" c:type="GtkAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="926">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="927">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_action_groups"
              c:identifier="gtk_ui_manager_get_action_groups"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="783">Returns the list of action groups associated with @self.</doc>
        <source-position filename="gtkuimanager.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="789">a #GList of
  action groups. The list is owned by GTK+
  and should not be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="ActionGroup"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="785">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_add_tearoffs"
              c:identifier="gtk_ui_manager_get_add_tearoffs"
              glib:get-property="add-tearoffs"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="603">Returns whether menus generated by this #GtkUIManager
will have tearoff menu items.</doc>
        <source-position filename="gtkuimanager.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="610">whether tearoff menu items are added</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="605">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toplevels"
              c:identifier="gtk_ui_manager_get_toplevels"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="887">Obtains a list of all toplevel widgets of the requested types.</doc>
        <source-position filename="gtkuimanager.h" line="127"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="896">a newly-allocated #GSList of
all toplevel widgets of the requested types.  Free the returned list with g_slist_free().</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="889">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="types" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="890">specifies the types of toplevel widgets to include. Allowed
  types are #GTK_UI_MANAGER_MENUBAR, #GTK_UI_MANAGER_TOOLBAR and
  #GTK_UI_MANAGER_POPUP.</doc>
            <type name="UIManagerItemType" c:type="GtkUIManagerItemType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ui"
              c:identifier="gtk_ui_manager_get_ui"
              glib:get-property="ui"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="3031">Creates a &lt;link linkend="XML-UI"&gt;UI definition&lt;/link&gt; of the merged UI.</doc>
        <source-position filename="gtkuimanager.h" line="147"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="3037">A newly allocated string containing an XML representation of
the merged UI.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="3033">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_widget"
              c:identifier="gtk_ui_manager_get_widget"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="821">Looks up a widget by following a path.
The path consists of the names specified in the XML description of the UI.
separated by '/'. Elements which don't have a name or action attribute in
the XML (e.g. &amp;lt;popup&amp;gt;) can be addressed by their XML element name
(e.g. "popup"). The root element ("/ui") can be omitted in the path.

Note that the widget found by following a path that ends in a &amp;lt;menu&amp;gt;
element is the menuitem to which the menu is attached, not the menu itself.

Also note that the widgets constructed by a ui manager are not tied to
the lifecycle of the ui manager. If you add the widgets returned by this
function to some container or explicitly ref them, they will survive the
destruction of the ui manager.</doc>
        <source-position filename="gtkuimanager.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="840">the widget found by following the path, or %NULL if no widget
  was found.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="823">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="824">a path</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_action_group"
              c:identifier="gtk_ui_manager_insert_action_group"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="688">Inserts an action group into the list of action groups associated
with @self. Actions in earlier groups hide actions with the same
name in later groups.</doc>
        <source-position filename="gtkuimanager.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="690">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="691">the action group to be inserted</doc>
            <type name="ActionGroup" c:type="GtkActionGroup*"/>
          </parameter>
          <parameter name="pos" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="692">the position at which the group will be inserted.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_merge_id"
              c:identifier="gtk_ui_manager_new_merge_id"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="1137">Returns an unused merge id, suitable for use with
gtk_ui_manager_add_ui().</doc>
        <source-position filename="gtkuimanager.h" line="149"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkuimanager.c"
               line="1144">an unused merge id.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1139">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_action_group"
              c:identifier="gtk_ui_manager_remove_action_group"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="747">Removes an action group from the list of action groups associated
with @self.</doc>
        <source-position filename="gtkuimanager.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="749">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="action_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="750">the action group to be removed</doc>
            <type name="ActionGroup" c:type="GtkActionGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_ui"
              c:identifier="gtk_ui_manager_remove_ui"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="1906">Unmerges the part of @self&lt;!-- --&gt;s content identified by @merge_id.</doc>
        <source-position filename="gtkuimanager.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1908">a #GtkUIManager object</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="merge_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="1909">a merge id as returned by gtk_ui_manager_add_ui_from_string()</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_add_tearoffs"
              c:identifier="gtk_ui_manager_set_add_tearoffs"
              glib:set-property="add-tearoffs"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="623">Sets the "add_tearoffs" property, which controls whether menus
generated by this #GtkUIManager will have tearoff menu items.

Note that this only affects regular menus. Generated popup
menus never have tearoff menu items.</doc>
        <source-position filename="gtkuimanager.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="625">a #GtkUIManager</doc>
            <type name="UIManager" c:type="GtkUIManager*"/>
          </instance-parameter>
          <parameter name="add_tearoffs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="626">whether tearoff menu items are added</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="add-tearoffs"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_add_tearoffs"
                getter="get_add_tearoffs"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="212">The "add-tearoffs" property controls whether generated menus
have tearoff menu items.

Note that this only affects regular menus. Generated popup
menus never have tearoff menu items.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="ui"
                transfer-ownership="none"
                getter="get_ui"
                default-value="&lt;ui&gt;\n&lt;/ui&gt;\n">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="private_data" readable="0" private="1">
        <type name="UIManagerPrivate" c:type="GtkUIManagerPrivate*"/>
      </field>
      <glib:signal name="actions-changed"
                   when="first"
                   no-recurse="1"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="261">The "actions-changed" signal is emitted whenever the set of actions
changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="add-widget" when="first" no-recurse="1" version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="240">The add_widget signal is emitted for each generated menubar and toolbar.
It is not emitted for generated popup menus, which can be obtained by
gtk_ui_manager_get_widget().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="243">the added widget</doc>
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="connect-proxy"
                   when="first"
                   no-recurse="1"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="279">The connect_proxy signal is emitted after connecting a proxy to
an action in the group.

This is intended for simple customizations for which a custom action
class would be too clumsy, e.g. showing tooltips for menuitems in the
statusbar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="282">the action</doc>
            <type name="Action"/>
          </parameter>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="283">the proxy</doc>
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="disconnect-proxy"
                   when="first"
                   no-recurse="1"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="305">The disconnect_proxy signal is emitted after disconnecting a proxy
from an action in the group.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="308">the action</doc>
            <type name="Action"/>
          </parameter>
          <parameter name="proxy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="309">the proxy</doc>
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="post-activate"
                   when="first"
                   no-recurse="1"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="350">The post_activate signal is emitted just after the @action
is activated.

This is intended for applications to get notification
just after any action is activated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="353">the action</doc>
            <type name="Action"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pre-activate"
                   when="first"
                   no-recurse="1"
                   version="2.4">
        <doc xml:space="preserve"
             filename="gtkuimanager.c"
             line="327">The pre_activate signal is emitted just before the @action
is activated.

This is intended for applications to get notification
just before any action is activated.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="330">the action</doc>
            <type name="Action"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="UIManagerClass"
            c:type="GtkUIManagerClass"
            glib:is-gtype-struct-for="UIManager">
      <source-position filename="gtkuimanager.h" line="92"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="add_widget">
        <callback name="add_widget">
          <source-position filename="gtkuimanager.h" line="69"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="actions_changed">
        <callback name="actions_changed">
          <source-position filename="gtkuimanager.h" line="71"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="connect_proxy">
        <callback name="connect_proxy">
          <source-position filename="gtkuimanager.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Action" c:type="GtkAction*"/>
            </parameter>
            <parameter name="proxy" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="disconnect_proxy">
        <callback name="disconnect_proxy">
          <source-position filename="gtkuimanager.h" line="75"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Action" c:type="GtkAction*"/>
            </parameter>
            <parameter name="proxy" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pre_activate">
        <callback name="pre_activate">
          <source-position filename="gtkuimanager.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Action" c:type="GtkAction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="post_activate">
        <callback name="post_activate">
          <source-position filename="gtkuimanager.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="merge" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="action" transfer-ownership="none">
              <type name="Action" c:type="GtkAction*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_widget">
        <callback name="get_widget">
          <source-position filename="gtkuimanager.h" line="84"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="840">the widget found by following the path, or %NULL if no widget
  was found.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkuimanager.c"
                   line="824">a path</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_action">
        <callback name="get_action">
          <source-position filename="gtkuimanager.h" line="86"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkuimanager.c"
                 line="932">the action whose proxy widget is found by following the path,
    or %NULL if no widget was found.</doc>
            <type name="Action" c:type="GtkAction*"/>
          </return-value>
          <parameters>
            <parameter name="manager" transfer-ownership="none">
              <type name="UIManager" c:type="GtkUIManager*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkuimanager.c"
                   line="927">a path</doc>
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkuimanager.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkuimanager.h" line="91"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <bitfield name="UIManagerItemType"
              glib:type-name="GtkUIManagerItemType"
              glib:get-type="gtk_ui_manager_item_type_get_type"
              c:type="GtkUIManagerItemType">
      <member name="auto"
              value="0"
              c:identifier="GTK_UI_MANAGER_AUTO"
              glib:nick="auto"
              glib:name="GTK_UI_MANAGER_AUTO">
      </member>
      <member name="menubar"
              value="1"
              c:identifier="GTK_UI_MANAGER_MENUBAR"
              glib:nick="menubar"
              glib:name="GTK_UI_MANAGER_MENUBAR">
      </member>
      <member name="menu"
              value="2"
              c:identifier="GTK_UI_MANAGER_MENU"
              glib:nick="menu"
              glib:name="GTK_UI_MANAGER_MENU">
      </member>
      <member name="toolbar"
              value="4"
              c:identifier="GTK_UI_MANAGER_TOOLBAR"
              glib:nick="toolbar"
              glib:name="GTK_UI_MANAGER_TOOLBAR">
      </member>
      <member name="placeholder"
              value="8"
              c:identifier="GTK_UI_MANAGER_PLACEHOLDER"
              glib:nick="placeholder"
              glib:name="GTK_UI_MANAGER_PLACEHOLDER">
      </member>
      <member name="popup"
              value="16"
              c:identifier="GTK_UI_MANAGER_POPUP"
              glib:nick="popup"
              glib:name="GTK_UI_MANAGER_POPUP">
      </member>
      <member name="menuitem"
              value="32"
              c:identifier="GTK_UI_MANAGER_MENUITEM"
              glib:nick="menuitem"
              glib:name="GTK_UI_MANAGER_MENUITEM">
      </member>
      <member name="toolitem"
              value="64"
              c:identifier="GTK_UI_MANAGER_TOOLITEM"
              glib:nick="toolitem"
              glib:name="GTK_UI_MANAGER_TOOLITEM">
      </member>
      <member name="separator"
              value="128"
              c:identifier="GTK_UI_MANAGER_SEPARATOR"
              glib:nick="separator"
              glib:name="GTK_UI_MANAGER_SEPARATOR">
      </member>
      <member name="accelerator"
              value="256"
              c:identifier="GTK_UI_MANAGER_ACCELERATOR"
              glib:nick="accelerator"
              glib:name="GTK_UI_MANAGER_ACCELERATOR">
      </member>
      <member name="popup_with_accels"
              value="512"
              c:identifier="GTK_UI_MANAGER_POPUP_WITH_ACCELS"
              glib:nick="popup-with-accels"
              glib:name="GTK_UI_MANAGER_POPUP_WITH_ACCELS">
      </member>
    </bitfield>
    <record name="UIManagerPrivate"
            c:type="GtkUIManagerPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gtkuimanager.h" line="54"/>
    </record>
    <function-macro name="UI_MANAGER"
                    c:identifier="GTK_UI_MANAGER"
                    introspectable="0">
      <source-position filename="gtkuimanager.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="UI_MANAGER_CLASS"
                    c:identifier="GTK_UI_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="gtkuimanager.h" line="47"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="UI_MANAGER_GET_CLASS"
                    c:identifier="GTK_UI_MANAGER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkuimanager.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="Unit"
                 glib:type-name="GtkUnit"
                 glib:get-type="gtk_unit_get_type"
                 c:type="GtkUnit">
      <member name="pixel"
              value="0"
              c:identifier="GTK_UNIT_PIXEL"
              glib:nick="pixel"
              glib:name="GTK_UNIT_PIXEL">
      </member>
      <member name="points"
              value="1"
              c:identifier="GTK_UNIT_POINTS"
              glib:nick="points"
              glib:name="GTK_UNIT_POINTS">
      </member>
      <member name="inch"
              value="2"
              c:identifier="GTK_UNIT_INCH"
              glib:nick="inch"
              glib:name="GTK_UNIT_INCH">
      </member>
      <member name="mm"
              value="3"
              c:identifier="GTK_UNIT_MM"
              glib:nick="mm"
              glib:name="GTK_UNIT_MM">
      </member>
    </enumeration>
    <enumeration name="UpdateType"
                 glib:type-name="GtkUpdateType"
                 glib:get-type="gtk_update_type_get_type"
                 c:type="GtkUpdateType">
      <member name="continuous"
              value="0"
              c:identifier="GTK_UPDATE_CONTINUOUS"
              glib:nick="continuous"
              glib:name="GTK_UPDATE_CONTINUOUS">
      </member>
      <member name="discontinuous"
              value="1"
              c:identifier="GTK_UPDATE_DISCONTINUOUS"
              glib:nick="discontinuous"
              glib:name="GTK_UPDATE_DISCONTINUOUS">
      </member>
      <member name="delayed"
              value="2"
              c:identifier="GTK_UPDATE_DELAYED"
              glib:nick="delayed"
              glib:name="GTK_UPDATE_DELAYED">
      </member>
    </enumeration>
    <function-macro name="VALUE_BOOL"
                    c:identifier="GTK_VALUE_BOOL"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="178"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_BOXED"
                    c:identifier="GTK_VALUE_BOXED"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="188"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_CHAR"
                    c:identifier="GTK_VALUE_CHAR"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="176"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_DOUBLE"
                    c:identifier="GTK_VALUE_DOUBLE"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="184"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_ENUM"
                    c:identifier="GTK_VALUE_ENUM"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="186"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_FLAGS"
                    c:identifier="GTK_VALUE_FLAGS"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="187"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_FLOAT"
                    c:identifier="GTK_VALUE_FLOAT"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="183"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_INT"
                    c:identifier="GTK_VALUE_INT"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="179"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_LONG"
                    c:identifier="GTK_VALUE_LONG"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="181"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_OBJECT"
                    c:identifier="GTK_VALUE_OBJECT"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="189"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_POINTER"
                    c:identifier="GTK_VALUE_POINTER"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="190"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_SIGNAL"
                    c:identifier="GTK_VALUE_SIGNAL"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="191"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_STRING"
                    c:identifier="GTK_VALUE_STRING"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="185"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_UCHAR"
                    c:identifier="GTK_VALUE_UCHAR"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="177"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_UINT"
                    c:identifier="GTK_VALUE_UINT"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="180"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VALUE_ULONG"
                    c:identifier="GTK_VALUE_ULONG"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="182"/>
      <parameters>
        <parameter name="a">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBOX" c:identifier="GTK_VBOX" introspectable="0">
      <source-position filename="gtkvbox.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBOX_CLASS"
                    c:identifier="GTK_VBOX_CLASS"
                    introspectable="0">
      <source-position filename="gtkvbox.h" line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBOX_GET_CLASS"
                    c:identifier="GTK_VBOX_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvbox.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBUTTON_BOX"
                    c:identifier="GTK_VBUTTON_BOX"
                    introspectable="0">
      <source-position filename="gtkvbbox.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBUTTON_BOX_CLASS"
                    c:identifier="GTK_VBUTTON_BOX_CLASS"
                    introspectable="0">
      <source-position filename="gtkvbbox.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VBUTTON_BOX_GET_CLASS"
                    c:identifier="GTK_VBUTTON_BOX_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvbbox.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="VBox"
           c:symbol-prefix="vbox"
           c:type="GtkVBox"
           parent="Box"
           glib:type-name="GtkVBox"
           glib:get-type="gtk_vbox_get_type"
           glib:type-struct="VBoxClass">
      <doc xml:space="preserve"
           filename="gtkvbox.c"
           line="33">A #GtkVBox is a container that organizes child widgets into a single column.

Use the #GtkBox packing interface to determine the arrangement,
spacing, height, and alignment of #GtkVBox children.

All children are allocated the same width.</doc>
      <source-position filename="gtkvbox.h" line="59"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vbox_new">
        <doc xml:space="preserve"
             filename="gtkvbox.c"
             line="63">Creates a new #GtkVBox.</doc>
        <source-position filename="gtkvbox.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvbox.c"
               line="70">a new #GtkVBox.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="homogeneous" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvbox.c"
                 line="65">%TRUE if all children are to be given equal space allotments.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="spacing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvbox.c"
                 line="66">the number of pixels to place by default between children.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="box">
        <type name="Box" c:type="GtkBox"/>
      </field>
    </class>
    <record name="VBoxClass"
            c:type="GtkVBoxClass"
            glib:is-gtype-struct-for="VBox">
      <source-position filename="gtkvbox.h" line="59"/>
      <field name="parent_class">
        <type name="BoxClass" c:type="GtkBoxClass"/>
      </field>
    </record>
    <class name="VButtonBox"
           c:symbol-prefix="vbutton_box"
           c:type="GtkVButtonBox"
           parent="ButtonBox"
           glib:type-name="GtkVButtonBox"
           glib:get-type="gtk_vbutton_box_get_type"
           glib:type-struct="VButtonBoxClass">
      <source-position filename="gtkvbbox.h" line="60"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vbutton_box_new">
        <doc xml:space="preserve"
             filename="gtkvbbox.c"
             line="75">Creates a new vertical button box.</doc>
        <source-position filename="gtkvbbox.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvbbox.c"
               line="80">a new button box #GtkWidget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <function name="get_layout_default"
                c:identifier="gtk_vbutton_box_get_layout_default"
                deprecated="1"
                deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkvbbox.c"
             line="136">Retrieves the current layout used to arrange buttons in button box widgets.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_button_box_get_layout() instead.</doc-deprecated>
        <source-position filename="gtkvbbox.h" line="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvbbox.c"
               line="141">the current #GtkButtonBoxStyle.</doc>
          <type name="ButtonBoxStyle" c:type="GtkButtonBoxStyle"/>
        </return-value>
      </function>
      <function name="get_spacing_default"
                c:identifier="gtk_vbutton_box_get_spacing_default"
                deprecated="1"
                deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkvbbox.c"
             line="120">Retrieves the current default spacing for vertical button boxes. This is the number of pixels
to be placed between the buttons when they are arranged.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_box_get_spacing() instead.</doc-deprecated>
        <source-position filename="gtkvbbox.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvbbox.c"
               line="126">the default number of pixels between buttons.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </function>
      <function name="set_layout_default"
                c:identifier="gtk_vbutton_box_set_layout_default"
                deprecated="1"
                deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkvbbox.c"
             line="103">Sets a new layout mode that will be used by all button boxes.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_button_box_set_layout() instead.</doc-deprecated>
        <source-position filename="gtkvbbox.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvbbox.c"
                 line="105">a new #GtkButtonBoxStyle.</doc>
            <type name="ButtonBoxStyle" c:type="GtkButtonBoxStyle"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_spacing_default"
                c:identifier="gtk_vbutton_box_set_spacing_default"
                deprecated="1"
                deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkvbbox.c"
             line="88">Changes the default spacing that is placed between widgets in an
vertical button box.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_box_set_spacing() instead.</doc-deprecated>
        <source-position filename="gtkvbbox.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="spacing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvbbox.c"
                 line="90">an integer value.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </function>
      <field name="button_box">
        <type name="ButtonBox" c:type="GtkButtonBox"/>
      </field>
    </class>
    <record name="VButtonBoxClass"
            c:type="GtkVButtonBoxClass"
            glib:is-gtype-struct-for="VButtonBox">
      <source-position filename="gtkvbbox.h" line="60"/>
      <field name="parent_class">
        <type name="ButtonBoxClass" c:type="GtkButtonBoxClass"/>
      </field>
    </record>
    <function-macro name="VIEWPORT"
                    c:identifier="GTK_VIEWPORT"
                    introspectable="0">
      <source-position filename="gtkviewport.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEWPORT_CLASS"
                    c:identifier="GTK_VIEWPORT_CLASS"
                    introspectable="0">
      <source-position filename="gtkviewport.h" line="44"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIEWPORT_GET_CLASS"
                    c:identifier="GTK_VIEWPORT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkviewport.h" line="47"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VOLUME_BUTTON"
                    c:identifier="GTK_VOLUME_BUTTON"
                    introspectable="0">
      <source-position filename="gtkvolumebutton.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VOLUME_BUTTON_CLASS"
                    c:identifier="GTK_VOLUME_BUTTON_CLASS"
                    introspectable="0">
      <source-position filename="gtkvolumebutton.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VOLUME_BUTTON_GET_CLASS"
                    c:identifier="GTK_VOLUME_BUTTON_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvolumebutton.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VPANED" c:identifier="GTK_VPANED" introspectable="0">
      <source-position filename="gtkvpaned.h" line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VPANED_CLASS"
                    c:identifier="GTK_VPANED_CLASS"
                    introspectable="0">
      <source-position filename="gtkvpaned.h" line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VPANED_GET_CLASS"
                    c:identifier="GTK_VPANED_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvpaned.h" line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="VPaned"
           c:symbol-prefix="vpaned"
           c:type="GtkVPaned"
           parent="Paned"
           glib:type-name="GtkVPaned"
           glib:get-type="gtk_vpaned_get_type"
           glib:type-struct="VPanedClass">
      <doc xml:space="preserve"
           filename="gtkvpaned.c"
           line="33">The VPaned widget is a container widget with two
children arranged vertically. The division between
the two panes is adjustable by the user by dragging
a handle. See #GtkPaned for details.</doc>
      <source-position filename="gtkvpaned.h" line="57"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vpaned_new">
        <doc xml:space="preserve"
             filename="gtkvpaned.c"
             line="58">Create a new #GtkVPaned</doc>
        <source-position filename="gtkvpaned.h" line="61"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvpaned.c"
               line="63">the new #GtkVPaned</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="paned">
        <type name="Paned" c:type="GtkPaned"/>
      </field>
    </class>
    <record name="VPanedClass"
            c:type="GtkVPanedClass"
            glib:is-gtype-struct-for="VPaned">
      <source-position filename="gtkvpaned.h" line="57"/>
      <field name="parent_class">
        <type name="PanedClass" c:type="GtkPanedClass"/>
      </field>
    </record>
    <function-macro name="VRULER" c:identifier="GTK_VRULER" introspectable="0">
      <source-position filename="gtkvruler.h" line="54"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VRULER_CLASS"
                    c:identifier="GTK_VRULER_CLASS"
                    introspectable="0">
      <source-position filename="gtkvruler.h" line="55"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VRULER_GET_CLASS"
                    c:identifier="GTK_VRULER_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvruler.h" line="58"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="VRuler"
           c:symbol-prefix="vruler"
           c:type="GtkVRuler"
           parent="Ruler"
           glib:type-name="GtkVRuler"
           glib:get-type="gtk_vruler_get_type"
           glib:type-struct="VRulerClass">
      <doc xml:space="preserve"
           filename="gtkvruler.c"
           line="35">&lt;note&gt;
 This widget is considered too specialized/little-used for
 GTK+, and will be removed in GTK 3.  If your application needs this widget,
 feel free to use it, as the widget is useful in some applications; it's just
 not of general interest. However, we are not accepting new features for the
 widget, and it will move out of the GTK+ distribution.
&lt;/note&gt;

The VRuler widget is a widget arranged vertically creating a ruler that is
utilized around other widgets such as a text widget. The ruler is used to show
the location of the mouse on the window and to show the size of the window in
specified units. The available units of measurement are GTK_PIXELS, GTK_INCHES
and GTK_CENTIMETERS. GTK_PIXELS is the default unit of measurement.</doc>
      <source-position filename="gtkvruler.h" line="72"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vruler_new">
        <doc xml:space="preserve"
             filename="gtkvruler.c"
             line="69">Creates a new vertical ruler</doc>
        <source-position filename="gtkvruler.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvruler.c"
               line="74">a new #GtkVRuler.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="ruler">
        <type name="Ruler" c:type="GtkRuler"/>
      </field>
    </class>
    <record name="VRulerClass"
            c:type="GtkVRulerClass"
            glib:is-gtype-struct-for="VRuler">
      <source-position filename="gtkvruler.h" line="72"/>
      <field name="parent_class">
        <type name="RulerClass" c:type="GtkRulerClass"/>
      </field>
    </record>
    <function-macro name="VSCALE" c:identifier="GTK_VSCALE" introspectable="0">
      <source-position filename="gtkvscale.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSCALE_CLASS"
                    c:identifier="GTK_VSCALE_CLASS"
                    introspectable="0">
      <source-position filename="gtkvscale.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSCALE_GET_CLASS"
                    c:identifier="GTK_VSCALE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvscale.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSCROLLBAR"
                    c:identifier="GTK_VSCROLLBAR"
                    introspectable="0">
      <source-position filename="gtkvscrollbar.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSCROLLBAR_CLASS"
                    c:identifier="GTK_VSCROLLBAR_CLASS"
                    introspectable="0">
      <source-position filename="gtkvscrollbar.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSCROLLBAR_GET_CLASS"
                    c:identifier="GTK_VSCROLLBAR_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvscrollbar.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSEPARATOR"
                    c:identifier="GTK_VSEPARATOR"
                    introspectable="0">
      <source-position filename="gtkvseparator.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSEPARATOR_CLASS"
                    c:identifier="GTK_VSEPARATOR_CLASS"
                    introspectable="0">
      <source-position filename="gtkvseparator.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VSEPARATOR_GET_CLASS"
                    c:identifier="GTK_VSEPARATOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkvseparator.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="VScale"
           c:symbol-prefix="vscale"
           c:type="GtkVScale"
           parent="Scale"
           glib:type-name="GtkVScale"
           glib:get-type="gtk_vscale_get_type"
           glib:type-struct="VScaleClass">
      <doc xml:space="preserve"
           filename="gtkvscale.c"
           line="36">The #GtkVScale widget is used to allow the user to select a value using
a vertical slider. To create one, use gtk_hscale_new_with_range().

The position to show the current value, and the number of decimal places
shown can be set using the parent #GtkScale class's functions.</doc>
      <source-position filename="gtkvscale.h" line="66"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vscale_new">
        <doc xml:space="preserve"
             filename="gtkvscale.c"
             line="64">Creates a new #GtkVScale.</doc>
        <source-position filename="gtkvscale.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvscale.c"
               line="70">a new #GtkVScale.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="adjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvscale.c"
                 line="66">the #GtkAdjustment which sets the range of the scale.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_range"
                   c:identifier="gtk_vscale_new_with_range">
        <doc xml:space="preserve"
             filename="gtkvscale.c"
             line="83">Creates a new vertical scale widget that lets the user input a
number between @min and @max (including @min and @max) with the
increment @step.  @step must be nonzero; it's the distance the
slider moves when using the arrow keys to adjust the scale value.

Note that the way in which the precision is derived works best if @step
is a power of ten. If the resulting precision is not suitable for your
needs, use gtk_scale_set_digits() to correct it.</doc>
        <source-position filename="gtkvscale.h" line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvscale.c"
               line="98">a new #GtkVScale</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="min" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvscale.c"
                 line="85">minimum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="max" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvscale.c"
                 line="86">maximum value</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="step" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkvscale.c"
                 line="87">step increment (tick size) used with keyboard shortcuts</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="scale">
        <type name="Scale" c:type="GtkScale"/>
      </field>
    </class>
    <record name="VScaleClass"
            c:type="GtkVScaleClass"
            glib:is-gtype-struct-for="VScale">
      <source-position filename="gtkvscale.h" line="66"/>
      <field name="parent_class">
        <type name="ScaleClass" c:type="GtkScaleClass"/>
      </field>
    </record>
    <class name="VScrollbar"
           c:symbol-prefix="vscrollbar"
           c:type="GtkVScrollbar"
           parent="Scrollbar"
           glib:type-name="GtkVScrollbar"
           glib:get-type="gtk_vscrollbar_get_type"
           glib:type-struct="VScrollbarClass">
      <doc xml:space="preserve"
           filename="gtkvscrollbar.c"
           line="35">The #GtkVScrollbar widget is a widget arranged vertically creating a
scrollbar. See #GtkScrollbar for details on
scrollbars. #GtkAdjustment pointers may be added to handle the
adjustment of the scrollbar or it may be left %NULL in which case one
will be created for you. See #GtkScrollbar for a description of what the
fields in an adjustment represent for a scrollbar.</doc>
      <source-position filename="gtkvscrollbar.h" line="66"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vscrollbar_new">
        <doc xml:space="preserve"
             filename="gtkvscrollbar.c"
             line="64">Creates a new vertical scrollbar.</doc>
        <source-position filename="gtkvscrollbar.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvscrollbar.c"
               line="70">the new #GtkVScrollbar</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkvscrollbar.c"
                 line="66">the #GtkAdjustment to use, or %NULL to create a new adjustment</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="scrollbar">
        <type name="Scrollbar" c:type="GtkScrollbar"/>
      </field>
    </class>
    <record name="VScrollbarClass"
            c:type="GtkVScrollbarClass"
            glib:is-gtype-struct-for="VScrollbar">
      <source-position filename="gtkvscrollbar.h" line="66"/>
      <field name="parent_class">
        <type name="ScrollbarClass" c:type="GtkScrollbarClass"/>
      </field>
    </record>
    <class name="VSeparator"
           c:symbol-prefix="vseparator"
           c:type="GtkVSeparator"
           parent="Separator"
           glib:type-name="GtkVSeparator"
           glib:get-type="gtk_vseparator_get_type"
           glib:type-struct="VSeparatorClass">
      <doc xml:space="preserve"
           filename="gtkvseparator.c"
           line="33">The #GtkVSeparator widget is a vertical separator, used to group the
widgets within a window. It displays a vertical line with a shadow to
make it appear sunken into the interface.</doc>
      <source-position filename="gtkvseparator.h" line="66"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new" c:identifier="gtk_vseparator_new">
        <doc xml:space="preserve"
             filename="gtkvseparator.c"
             line="58">Creates a new #GtkVSeparator.</doc>
        <source-position filename="gtkvseparator.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvseparator.c"
               line="63">a new #GtkVSeparator.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="separator">
        <type name="Separator" c:type="GtkSeparator"/>
      </field>
    </class>
    <record name="VSeparatorClass"
            c:type="GtkVSeparatorClass"
            glib:is-gtype-struct-for="VSeparator">
      <source-position filename="gtkvseparator.h" line="66"/>
      <field name="parent_class">
        <type name="SeparatorClass" c:type="GtkSeparatorClass"/>
      </field>
    </record>
    <class name="Viewport"
           c:symbol-prefix="viewport"
           c:type="GtkViewport"
           parent="Bin"
           glib:type-name="GtkViewport"
           glib:get-type="gtk_viewport_get_type"
           glib:type-struct="ViewportClass">
      <doc xml:space="preserve"
           filename="gtkviewport.c"
           line="34">The #GtkViewport widget acts as an adaptor class, implementing
scrollability for child widgets that lack their own scrolling
capabilities. Use #GtkViewport to scroll child widgets such as
#GtkTable, #GtkBox, and so on.

If a widget has native scrolling abilities, such as #GtkTextView,
#GtkTreeView or #GtkIconview, it can be added to a #GtkScrolledWindow
with gtk_container_add(). If a widget does not, you must first add the
widget to a #GtkViewport, then add the viewport to the scrolled window.
The convenience function gtk_scrolled_window_add_with_viewport() does
exactly this, so you can ignore the presence of the viewport.</doc>
      <source-position filename="gtkviewport.h" line="71"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_viewport_new">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="237">Creates a new #GtkViewport with the given adjustments.</doc>
        <source-position filename="gtkviewport.h" line="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="241">a new #GtkViewport.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="hadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="239">horizontal adjustment.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="240">vertical adjustment.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="set_scroll_adjustments">
        <source-position filename="gtkviewport.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
          <parameter name="hadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="vadjustment" transfer-ownership="none">
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_bin_window"
              c:identifier="gtk_viewport_get_bin_window"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="578">Gets the bin window of the #GtkViewport.</doc>
        <source-position filename="gtkviewport.h" line="86"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="584">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="580">a #GtkViewport</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_hadjustment"
              c:identifier="gtk_viewport_get_hadjustment"
              glib:get-property="hadjustment">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="302">Returns the horizontal adjustment of the viewport.</doc>
        <source-position filename="gtkviewport.h" line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="308">the horizontal adjustment of @viewport.</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="304">a #GtkViewport.</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shadow_type"
              c:identifier="gtk_viewport_get_shadow_type"
              glib:get-property="shadow-type">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="561">Gets the shadow type of the #GtkViewport. See
gtk_viewport_set_shadow_type().</doc>
        <source-position filename="gtkviewport.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="568">the shadow type</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="563">a #GtkViewport</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vadjustment"
              c:identifier="gtk_viewport_get_vadjustment"
              glib:get-property="vadjustment">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="321">Returns the vertical adjustment of the viewport.</doc>
        <source-position filename="gtkviewport.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="327">the vertical adjustment of @viewport.</doc>
          <type name="Adjustment" c:type="GtkAdjustment*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="323">a #GtkViewport.</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_view_window"
              c:identifier="gtk_viewport_get_view_window"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="596">Gets the view window of the #GtkViewport.</doc>
        <source-position filename="gtkviewport.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkviewport.c"
               line="602">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="598">a #GtkViewport</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_hadjustment"
              c:identifier="gtk_viewport_set_hadjustment"
              glib:set-property="hadjustment">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="485">Sets the horizontal adjustment of the viewport.</doc>
        <source-position filename="gtkviewport.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="487">a #GtkViewport.</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="488">a #GtkAdjustment.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_shadow_type"
              c:identifier="gtk_viewport_set_shadow_type"
              glib:set-property="shadow-type">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="534">Sets the shadow type of the viewport.</doc>
        <source-position filename="gtkviewport.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="536">a #GtkViewport.</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="537">the new shadow type.</doc>
            <type name="ShadowType" c:type="GtkShadowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vadjustment"
              c:identifier="gtk_viewport_set_vadjustment"
              glib:set-property="vadjustment">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="505">Sets the vertical adjustment of the viewport.</doc>
        <source-position filename="gtkviewport.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewport" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="507">a #GtkViewport.</doc>
            <type name="Viewport" c:type="GtkViewport*"/>
          </instance-parameter>
          <parameter name="adjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkviewport.c"
                 line="508">a #GtkAdjustment.</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <property name="hadjustment"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_hadjustment"
                getter="get_hadjustment">
        <type name="Adjustment"/>
      </property>
      <property name="shadow-type"
                writable="1"
                transfer-ownership="none"
                setter="set_shadow_type"
                getter="get_shadow_type"
                default-value="GTK_SHADOW_IN">
        <type name="ShadowType"/>
      </property>
      <property name="vadjustment"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_vadjustment"
                getter="get_vadjustment">
        <type name="Adjustment"/>
      </property>
      <field name="bin">
        <type name="Bin" c:type="GtkBin"/>
      </field>
      <field name="shadow_type">
        <type name="ShadowType" c:type="GtkShadowType"/>
      </field>
      <field name="view_window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="bin_window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="hadjustment">
        <type name="Adjustment" c:type="GtkAdjustment*"/>
      </field>
      <field name="vadjustment">
        <type name="Adjustment" c:type="GtkAdjustment*"/>
      </field>
      <glib:signal name="set-scroll-adjustments" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtkviewport.c"
             line="147">Set the scroll adjustments for the viewport. Usually scrolled containers
like #GtkScrolledWindow will emit this signal to connect two instances
of #GtkScrollbar to the scroll directions of the #GtkViewport.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Adjustment"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ViewportClass"
            c:type="GtkViewportClass"
            glib:is-gtype-struct-for="Viewport">
      <source-position filename="gtkviewport.h" line="71"/>
      <field name="parent_class">
        <type name="BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="set_scroll_adjustments">
        <callback name="set_scroll_adjustments">
          <source-position filename="gtkviewport.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="viewport" transfer-ownership="none">
              <type name="Viewport" c:type="GtkViewport*"/>
            </parameter>
            <parameter name="hadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
            <parameter name="vadjustment" transfer-ownership="none">
              <type name="Adjustment" c:type="GtkAdjustment*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="Visibility"
                 glib:type-name="GtkVisibility"
                 glib:get-type="gtk_visibility_get_type"
                 c:type="GtkVisibility">
      <member name="none"
              value="0"
              c:identifier="GTK_VISIBILITY_NONE"
              glib:nick="none"
              glib:name="GTK_VISIBILITY_NONE">
      </member>
      <member name="partial"
              value="1"
              c:identifier="GTK_VISIBILITY_PARTIAL"
              glib:nick="partial"
              glib:name="GTK_VISIBILITY_PARTIAL">
      </member>
      <member name="full"
              value="2"
              c:identifier="GTK_VISIBILITY_FULL"
              glib:nick="full"
              glib:name="GTK_VISIBILITY_FULL">
      </member>
    </enumeration>
    <class name="VolumeButton"
           c:symbol-prefix="volume_button"
           c:type="GtkVolumeButton"
           parent="ScaleButton"
           glib:type-name="GtkVolumeButton"
           glib:get-type="gtk_volume_button_get_type"
           glib:type-struct="VolumeButtonClass">
      <doc xml:space="preserve"
           filename="gtkvolumebutton.c"
           line="39">#GtkVolumeButton is a subclass of #GtkScaleButton that has
been tailored for use as a volume control widget with suitable
icons, tooltips and accessible labels.</doc>
      <source-position filename="gtkvolumebutton.h" line="65"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Activatable"/>
      <implements name="Buildable"/>
      <implements name="Orientable"/>
      <constructor name="new"
                   c:identifier="gtk_volume_button_new"
                   version="2.12">
        <doc xml:space="preserve"
             filename="gtkvolumebutton.c"
             line="117">Creates a #GtkVolumeButton, with a range between 0.0 and 1.0, with
a stepping of 0.02. Volume values can be obtained and modified using
the functions from #GtkScaleButton.</doc>
        <source-position filename="gtkvolumebutton.h" line="68"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkvolumebutton.c"
               line="124">a new #GtkVolumeButton</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="ScaleButton" c:type="GtkScaleButton"/>
      </field>
    </class>
    <record name="VolumeButtonClass"
            c:type="GtkVolumeButtonClass"
            glib:is-gtype-struct-for="VolumeButton">
      <source-position filename="gtkvolumebutton.h" line="65"/>
      <field name="parent_class">
        <type name="ScaleButtonClass" c:type="GtkScaleButtonClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkvolumebutton.h" line="61"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkvolumebutton.h" line="62"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkvolumebutton.h" line="63"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtkvolumebutton.h" line="64"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <function-macro name="WIDGET" c:identifier="GTK_WIDGET" introspectable="0">
      <source-position filename="gtkwidget.h" line="137"/>
      <parameters>
        <parameter name="widget">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_ALLOC_NEEDED"
                    c:identifier="GTK_WIDGET_ALLOC_NEEDED"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="67"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_ANCHORED"
                    c:identifier="GTK_WIDGET_ANCHORED"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="64"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_APP_PAINTABLE"
                    c:identifier="GTK_WIDGET_APP_PAINTABLE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="405">Evaluates to %TRUE if the #GTK_APP_PAINTABLE flag has been set on the widget.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_app_paintable() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="413"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="407">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_CAN_DEFAULT"
                    c:identifier="GTK_WIDGET_CAN_DEFAULT"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="342">Evaluates to %TRUE if the widget is allowed to receive the default action
via gtk_widget_grab_default().</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_can_default() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="351"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="344">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_CAN_FOCUS"
                    c:identifier="GTK_WIDGET_CAN_FOCUS"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="317">Evaluates to %TRUE if the widget is able to handle focus grabs.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_can_focus() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="325"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="319">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_CHILD_VISIBLE"
                    c:identifier="GTK_WIDGET_CHILD_VISIBLE"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="65"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_CLASS"
                    c:identifier="GTK_WIDGET_CLASS"
                    introspectable="0">
      <source-position filename="gtkwidget.h" line="138"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_COMPOSITE_CHILD"
                    c:identifier="GTK_WIDGET_COMPOSITE_CHILD"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="393">Evaluates to %TRUE if the widget is a composite child of its parent.</doc>
      <doc-deprecated xml:space="preserve">Use the #GtkWidget:composite-child property instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="401"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="395">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_DIRECTION_LTR"
                    c:identifier="GTK_WIDGET_DIRECTION_LTR"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="63"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_DIRECTION_SET"
                    c:identifier="GTK_WIDGET_DIRECTION_SET"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="62"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_DOUBLE_BUFFERED"
                    c:identifier="GTK_WIDGET_DOUBLE_BUFFERED"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="430">Evaluates to %TRUE if the #GTK_DOUBLE_BUFFERED flag has been set on the widget.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_double_buffered() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="438"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="432">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_DRAWABLE"
                    c:identifier="GTK_WIDGET_DRAWABLE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="268">Evaluates to %TRUE if the widget is mapped and visible.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_is_drawable() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="276"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="270">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_FLAGS"
                    c:identifier="GTK_WIDGET_FLAGS"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="188">Returns the widget flags from @wid.</doc>
      <doc-deprecated xml:space="preserve">Use the proper function to test individual states:
gtk_widget_get_app_paintable(), gtk_widget_get_can_default(),
gtk_widget_get_can_focus(), gtk_widget_get_double_buffered(),
gtk_widget_has_default(), gtk_widget_is_drawable(),
gtk_widget_has_focus(), gtk_widget_has_grab(), gtk_widget_get_mapped(),
gtk_widget_get_has_window(), gtk_widget_has_rc_style(),
gtk_widget_get_realized(), gtk_widget_get_receives_default(),
gtk_widget_get_sensitive(), gtk_widget_is_sensitive(),
gtk_widget_is_toplevel() or gtk_widget_get_visible().</doc-deprecated>
      <source-position filename="gtkwidget.h" line="204"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="190">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_GET_CLASS"
                    c:identifier="GTK_WIDGET_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkwidget.h" line="141"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_HAS_DEFAULT"
                    c:identifier="GTK_WIDGET_HAS_DEFAULT"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="355">Evaluates to %TRUE if the widget currently is receiving the default action.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_has_default() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="363"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="357">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_HAS_FOCUS"
                    c:identifier="GTK_WIDGET_HAS_FOCUS"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="329">Evaluates to %TRUE if the widget has grabbed the focus and no other
widget has done so more recently.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_has_focus() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="338"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="331">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_HAS_GRAB"
                    c:identifier="GTK_WIDGET_HAS_GRAB"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="367">Evaluates to %TRUE if the widget is in the grab_widgets stack, and will be
the preferred one for receiving events other than ones of cosmetic value.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_has_grab() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="376"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="369">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_HAS_POINTER"
                    c:identifier="GTK_WIDGET_HAS_POINTER"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="58"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_HAS_SHAPE_MASK"
                    c:identifier="GTK_WIDGET_HAS_SHAPE_MASK"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="60"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_IN_REPARENT"
                    c:identifier="GTK_WIDGET_IN_REPARENT"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="61"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_IS_SENSITIVE"
                    c:identifier="GTK_WIDGET_IS_SENSITIVE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="304">Evaluates to %TRUE if the widget is effectively sensitive.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_is_sensitive() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="312"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="306">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_MAPPED"
                    c:identifier="GTK_WIDGET_MAPPED"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="244">Evaluates to %TRUE if the widget is mapped.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_mapped() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="252"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="246">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_NO_WINDOW"
                    c:identifier="GTK_WIDGET_NO_WINDOW"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="220">Evaluates to %TRUE if the widget doesn't have an own #GdkWindow.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_has_window() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="228"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="222">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_PARENT_SENSITIVE"
                    c:identifier="GTK_WIDGET_PARENT_SENSITIVE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="292">Evaluates to %TRUE if the #GTK_PARENT_SENSITIVE flag has be set on the widget.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_sensitive() on the parent widget instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="300"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="294">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_RC_STYLE"
                    c:identifier="GTK_WIDGET_RC_STYLE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="380">Evaluates to %TRUE if the widget's style has been looked up through the rc
mechanism.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_has_rc_style() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="389"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="382">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_REALIZED"
                    c:identifier="GTK_WIDGET_REALIZED"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="232">Evaluates to %TRUE if the widget is realized.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_realized() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="240"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="234">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_RECEIVES_DEFAULT"
                    c:identifier="GTK_WIDGET_RECEIVES_DEFAULT"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="417">Evaluates to %TRUE if the widget when focused will receive the default action
even if there is a different widget set as default.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_receives_default() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="426"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="419">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_REDRAW_ON_ALLOC"
                    c:identifier="GTK_WIDGET_REDRAW_ON_ALLOC"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="66"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_REQUEST_NEEDED"
                    c:identifier="GTK_WIDGET_REQUEST_NEEDED"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="68"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_SAVED_STATE"
                    c:identifier="GTK_WIDGET_SAVED_STATE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="170">Returns the saved state of the widget, as a #GtkStateType.

The saved state will be restored when a widget gets sensitive
again, after it has been made insensitive with gtk_widget_set_state()
or gtk_widget_set_sensitive().</doc>
      <doc-deprecated xml:space="preserve">Do not used it.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="182"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="172">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_SENSITIVE"
                    c:identifier="GTK_WIDGET_SENSITIVE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="280">Evaluates to %TRUE if the #GTK_SENSITIVE flag has be set on the widget.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_sensitive() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="288"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="282">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_SET_FLAGS"
                    c:identifier="GTK_WIDGET_SET_FLAGS"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.22">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="444">Turns on certain widget flags.</doc>
      <doc-deprecated xml:space="preserve">Use the proper function instead: gtk_widget_set_app_paintable(),
  gtk_widget_set_can_default(), gtk_widget_set_can_focus(),
  gtk_widget_set_double_buffered(), gtk_widget_set_has_window(),
  gtk_widget_set_mapped(), gtk_widget_set_no_show_all(),
  gtk_widget_set_realized(), gtk_widget_set_receives_default(),
  gtk_widget_set_sensitive() or gtk_widget_set_visible().</doc-deprecated>
      <source-position filename="gtkwidget.h" line="459"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="446">a #GtkWidget.</doc>
        </parameter>
        <parameter name="flag">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="447">the flags to set.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_SHADOWED"
                    c:identifier="GTK_WIDGET_SHADOWED"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="59"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_STATE"
                    c:identifier="GTK_WIDGET_STATE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="158">Returns the current state of the widget, as a #GtkStateType.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_state() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="166"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="160">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_TOPLEVEL"
                    c:identifier="GTK_WIDGET_TOPLEVEL"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="208">Evaluates to %TRUE if the widget is a toplevel widget.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_is_toplevel() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="216"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="210">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_TYPE"
                    c:identifier="GTK_WIDGET_TYPE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="146">Gets the type of a widget.</doc>
      <doc-deprecated xml:space="preserve">Use G_OBJECT_TYPE() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="154"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="148">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_UNSET_FLAGS"
                    c:identifier="GTK_WIDGET_UNSET_FLAGS"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.22">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="462">Turns off certain widget flags.</doc>
      <doc-deprecated xml:space="preserve">Use the proper function instead. See GTK_WIDGET_SET_FLAGS().</doc-deprecated>
      <source-position filename="gtkwidget.h" line="471"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="464">a #GtkWidget.</doc>
        </parameter>
        <parameter name="flag">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="465">the flags to unset.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_USER_STYLE"
                    c:identifier="GTK_WIDGET_USER_STYLE"
                    introspectable="0">
      <source-position filename="gtkprivate.h" line="56"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WIDGET_VISIBLE"
                    c:identifier="GTK_WIDGET_VISIBLE"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.20">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="256">Evaluates to %TRUE if the widget is visible.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_get_visible() instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="264"/>
      <parameters>
        <parameter name="wid">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="258">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW" c:identifier="GTK_WINDOW" introspectable="0">
      <source-position filename="gtkwindow.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_CLASS"
                    c:identifier="GTK_WINDOW_CLASS"
                    introspectable="0">
      <source-position filename="gtkwindow.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_GET_CLASS"
                    c:identifier="GTK_WINDOW_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkwindow.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_GROUP"
                    c:identifier="GTK_WINDOW_GROUP"
                    introspectable="0">
      <source-position filename="gtkwindow.h" line="148"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_GROUP_CLASS"
                    c:identifier="GTK_WINDOW_GROUP_CLASS"
                    introspectable="0">
      <source-position filename="gtkwindow.h" line="149"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_GROUP_GET_CLASS"
                    c:identifier="GTK_WINDOW_GROUP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gtkwindow.h" line="152"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Widget"
           c:symbol-prefix="widget"
           c:type="GtkWidget"
           parent="Object"
           abstract="1"
           glib:type-name="GtkWidget"
           glib:get-type="gtk_widget_get_type"
           glib:type-struct="WidgetClass">
      <doc xml:space="preserve"
           filename="gtkwidget.c"
           line="58">GtkWidget is the base class all widgets in GTK+ derive from. It manages the
widget lifecycle, states and style.

&lt;refsect2 id="style-properties"&gt;
&lt;para&gt;
&lt;structname&gt;GtkWidget&lt;/structname&gt; introduces &lt;firstterm&gt;style
properties&lt;/firstterm&gt; - these are basically object properties that are stored
not on the object, but in the style object associated to the widget. Style
properties are set in &lt;link linkend="gtk-Resource-Files"&gt;resource files&lt;/link&gt;.
This mechanism is used for configuring such things as the location of the
scrollbar arrows through the theme, giving theme authors more control over the
look of applications without the need to write a theme engine in C.
&lt;/para&gt;
&lt;para&gt;
Use gtk_widget_class_install_style_property() to install style properties for
a widget class, gtk_widget_class_find_style_property() or
gtk_widget_class_list_style_properties() to get information about existing
style properties and gtk_widget_style_get_property(), gtk_widget_style_get() or
gtk_widget_style_get_valist() to obtain the value of a style property.
&lt;/para&gt;
&lt;/refsect2&gt;
&lt;refsect2 id="GtkWidget-BUILDER-UI"&gt;
&lt;title&gt;GtkWidget as GtkBuildable&lt;/title&gt;
&lt;para&gt;
The GtkWidget implementation of the GtkBuildable interface supports a
custom &amp;lt;accelerator&amp;gt; element, which has attributes named key,
modifiers and signal and allows to specify accelerators.
&lt;/para&gt;
&lt;example&gt;
&lt;title&gt;A UI definition fragment specifying an accelerator&lt;/title&gt;
&lt;programlisting&gt;&lt;![CDATA[
&lt;object class="GtkButton"&gt;
  &lt;accelerator key="q" modifiers="GDK_CONTROL_MASK" signal="clicked"/&gt;
&lt;/object&gt;
]]&gt;&lt;/programlisting&gt;
&lt;/example&gt;
&lt;para&gt;
In addition to accelerators, &lt;structname&gt;GtkWidget&lt;/structname&gt; also support a
custom &amp;lt;accessible&amp;gt; element, which supports actions and relations.
Properties on the accessible implementation of an object can be set by accessing the
internal child "accessible" of a &lt;structname&gt;GtkWidget&lt;/structname&gt;.
&lt;/para&gt;
&lt;example&gt;
&lt;title&gt;A UI definition fragment specifying an accessible&lt;/title&gt;
&lt;programlisting&gt;&lt;![CDATA[
&lt;object class="GtkButton" id="label1"/&gt;
  &lt;property name="label"&gt;I am a Label for a Button&lt;/property&gt;
&lt;/object&gt;
&lt;object class="GtkButton" id="button1"&gt;
  &lt;accessibility&gt;
    &lt;action action_name="click" translatable="yes"&gt;Click the button.&lt;/action&gt;
    &lt;relation target="label1" type="labelled-by"/&gt;
  &lt;/accessibility&gt;
  &lt;child internal-child="accessible"&gt;
    &lt;object class="AtkObject" id="a11y-button1"&gt;
      &lt;property name="AtkObject::name"&gt;Clickable Button&lt;/property&gt;
    &lt;/object&gt;
  &lt;/child&gt;
&lt;/object&gt;
]]&gt;&lt;/programlisting&gt;
&lt;/example&gt;
&lt;/refsect2&gt;</doc>
      <source-position filename="gtkwidget.h" line="814"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_widget_new" introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3004">This is a convenience function for creating a widget and setting
its properties in one go. For example you might write:
&lt;literal&gt;gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign",
0.0, NULL)&lt;/literal&gt; to create a left-aligned label. Equivalent to
g_object_new(), but returns a widget so you don't have to
cast the object yourself.</doc>
        <source-position filename="gtkwidget.h" line="834"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="3018">a new #GtkWidget of type @widget_type</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3006">type ID of the widget to create</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3007">name of first property to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3008">value of first property, followed by more properties,
          %NULL-terminated</doc>
            <varargs/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get_default_colormap"
                c:identifier="gtk_widget_get_default_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8612">Obtains the default colormap used to create widgets.</doc>
        <source-position filename="gtkwidget.h" line="1243"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8617">default widget colormap</doc>
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </return-value>
      </function>
      <function name="get_default_direction"
                c:identifier="gtk_widget_get_default_direction">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8765">Obtains the current default reading direction. See
gtk_widget_set_default_direction().</doc>
        <source-position filename="gtkwidget.h" line="1255"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8771">the current default direction.</doc>
          <type name="TextDirection" c:type="GtkTextDirection"/>
        </return-value>
      </function>
      <function name="get_default_style"
                c:identifier="gtk_widget_get_default_style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7231">Returns the default style used by all widgets initially.</doc>
        <source-position filename="gtkwidget.h" line="1241"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7236">the default style. This #GtkStyle object is owned
         by GTK+ and should not be modified or freed.</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
      </function>
      <function name="get_default_visual"
                c:identifier="gtk_widget_get_default_visual">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8625">Obtains the visual of the default colormap. Not really useful;
used to be useful before gdk_colormap_get_visual() existed.</doc>
        <source-position filename="gtkwidget.h" line="1244"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8631">visual of the default colormap</doc>
          <type name="Gdk.Visual" c:type="GdkVisual*"/>
        </return-value>
      </function>
      <function name="pop_colormap" c:identifier="gtk_widget_pop_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8583">Removes a colormap pushed with gtk_widget_push_colormap().</doc>
        <source-position filename="gtkwidget.h" line="1214"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="pop_composite_child"
                c:identifier="gtk_widget_pop_composite_child">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8554">Cancels the effect of a previous call to gtk_widget_push_composite_child().</doc>
        <source-position filename="gtkwidget.h" line="1213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="push_colormap" c:identifier="gtk_widget_push_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8566">Pushes @cmap onto a global stack of colormaps; the topmost
colormap on the stack will be used to create all widgets.
Remove @cmap with gtk_widget_pop_colormap(). There's little
reason to use this function.</doc>
        <source-position filename="gtkwidget.h" line="1211"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cmap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8568">a #GdkColormap</doc>
            <type name="Gdk.Colormap" c:type="GdkColormap*"/>
          </parameter>
        </parameters>
      </function>
      <function name="push_composite_child"
                c:identifier="gtk_widget_push_composite_child">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8525">Makes all newly-created widgets as composite children until
the corresponding gtk_widget_pop_composite_child() call.

A composite child is a child that's an implementation detail of the
container it's inside and should not be visible to people using the
container. Composite children aren't treated differently by GTK (but
see gtk_container_foreach() vs. gtk_container_forall()), but e.g. GUI
builders might want to treat them in a different way.

Here is a simple example:
|[
  gtk_widget_push_composite_child ();
  scrolled_window-&gt;hscrollbar = gtk_hscrollbar_new (hadjustment);
  gtk_widget_set_composite_name (scrolled_window-&gt;hscrollbar, "hscrollbar");
  gtk_widget_pop_composite_child ();
  gtk_widget_set_parent (scrolled_window-&gt;hscrollbar,
                         GTK_WIDGET (scrolled_window));
  g_object_ref (scrolled_window-&gt;hscrollbar);
]|</doc>
        <source-position filename="gtkwidget.h" line="1212"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="set_default_colormap"
                c:identifier="gtk_widget_set_default_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8595">Sets the default colormap to use when creating widgets.
gtk_widget_push_colormap() is a better function to use if
you only want to affect a few widgets, rather than all widgets.</doc>
        <source-position filename="gtkwidget.h" line="1240"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="colormap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8597">a #GdkColormap</doc>
            <type name="Gdk.Colormap" c:type="GdkColormap*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_direction"
                c:identifier="gtk_widget_set_default_direction">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8730">Sets the default reading direction for widgets where the
direction has not been explicitly set by gtk_widget_set_direction().</doc>
        <source-position filename="gtkwidget.h" line="1254"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8732">the new default direction. This cannot be
       %GTK_TEXT_DIR_NONE.</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="button_press_event">
        <source-position filename="gtkwidget.h" line="677"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="button_release_event">
        <source-position filename="gtkwidget.h" line="679"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="can_activate_accel"
                      invoker="can_activate_accel"
                      version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4357">Determines whether an accelerator that activates the signal
identified by @signal_id can currently be activated.
This is done by emitting the #GtkWidget::can-activate-accel
signal on @widget; if the signal isn't overridden by a
handler or in a derived widget, then the default check is
that the widget must be sensitive, and the widget and all
its ancestors mapped.</doc>
        <source-position filename="gtkwidget.h" line="791"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4370">%TRUE if the accelerator can be activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4359">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="signal_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4360">the ID of a signal installed on @widget</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="child_notify" invoker="child_notify">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2932">Emits a #GtkWidget::child-notify signal for the
&lt;link linkend="child-properties"&gt;child property&lt;/link&gt; @child_property
on @widget.

This is the analogue of g_object_notify() for child properties.</doc>
        <source-position filename="gtkwidget.h" line="662"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2934">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="client_event">
        <source-position filename="gtkwidget.h" line="723"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventClient" c:type="GdkEventClient*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="composited_changed">
        <source-position filename="gtkwidget.h" line="798"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="configure_event">
        <source-position filename="gtkwidget.h" line="699"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventConfigure" c:type="GdkEventConfigure*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="delete_event">
        <source-position filename="gtkwidget.h" line="685"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="destroy_event">
        <source-position filename="gtkwidget.h" line="687"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="direction_changed">
        <source-position filename="gtkwidget.h" line="658"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_direction" transfer-ownership="none">
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="dispatch_child_properties_changed">
        <source-position filename="gtkwidget.h" line="633"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="n_pspecs" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="pspecs" transfer-ownership="none">
            <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_begin">
        <source-position filename="gtkwidget.h" line="740"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_delete">
        <source-position filename="gtkwidget.h" line="749"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_get">
        <source-position filename="gtkwidget.h" line="744"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_data_received">
        <source-position filename="gtkwidget.h" line="766"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_drop">
        <source-position filename="gtkwidget.h" line="761"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_end">
        <source-position filename="gtkwidget.h" line="742"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_leave">
        <source-position filename="gtkwidget.h" line="753"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="drag_motion">
        <source-position filename="gtkwidget.h" line="756"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="context" transfer-ownership="none">
            <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="enter_notify_event">
        <source-position filename="gtkwidget.h" line="695"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="event" invoker="event">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4775">Rarely-used function. This function is used to emit
the event signals on a widget (those signals should never
be emitted without using this function to do so).
If you want to synthesize an event though, don't use this function;
instead, use gtk_main_do_event() so the event will behave as if
it were in the event queue. Don't synthesize expose events; instead,
use gdk_window_invalidate_rect() to invalidate a region of the
window.</doc>
        <source-position filename="gtkwidget.h" line="675"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4789">return from the event signal emission (%TRUE if
              the event was handled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4777">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4778">a #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="expose_event">
        <source-position filename="gtkwidget.h" line="689"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventExpose" c:type="GdkEventExpose*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="focus">
        <source-position filename="gtkwidget.h" line="671"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="focus_in_event">
        <source-position filename="gtkwidget.h" line="701"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="focus_out_event">
        <source-position filename="gtkwidget.h" line="703"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_accessible" invoker="get_accessible">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10217">Returns the accessible object that describes the widget to an
assistive technology.

If no accessibility library is loaded (i.e. no ATK implementation library is
loaded via &lt;envar&gt;GTK_MODULES&lt;/envar&gt; or via another application library,
such as libgnome), then this #AtkObject instance may be a no-op. Likewise,
if no class-specific #AtkObject implementation is available for the widget
instance in question, it will inherit an #AtkObject implementation from the
first ancestor class for which such an implementation is defined.

The documentation of the &lt;ulink url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
library contains more information about accessible objects and their uses.</doc>
        <source-position filename="gtkwidget.h" line="787"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="10234">the #AtkObject associated with @widget</doc>
          <type name="Atk.Object" c:type="AtkObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10219">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="grab_broken_event">
        <source-position filename="gtkwidget.h" line="795"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventGrabBroken" c:type="GdkEventGrabBroken*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="grab_focus" invoker="grab_focus">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5309">Causes @widget to have the keyboard focus for the #GtkWindow it's
inside. @widget must be a focusable widget, such as a #GtkEntry;
something like #GtkFrame won't work.

More precisely, it must have the %GTK_CAN_FOCUS flag set. Use
gtk_widget_set_can_focus() to modify that flag.

The widget also needs to be realized and mapped. This is indicated by the
related signals. Grabbing the focus immediately after creating the widget
will likely fail and cause critical warnings.</doc>
        <source-position filename="gtkwidget.h" line="670"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5311">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="grab_notify">
        <source-position filename="gtkwidget.h" line="660"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="was_grabbed" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide" invoker="hide">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3300">Reverses the effects of gtk_widget_show(), causing the widget to be
hidden (invisible to the user).</doc>
        <source-position filename="gtkwidget.h" line="640"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3302">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_all"
                      invoker="hide_all"
                      deprecated="1"
                      deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3387">Recursively hides a widget and any child widgets.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_widget_hide() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="641"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3389">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hierarchy_changed">
        <source-position filename="gtkwidget.h" line="654"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_toplevel" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_press_event">
        <source-position filename="gtkwidget.h" line="691"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="key_release_event">
        <source-position filename="gtkwidget.h" line="693"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="leave_notify_event">
        <source-position filename="gtkwidget.h" line="697"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="map" invoker="map">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3411">This function is only for use in widget implementations. Causes
a widget to be mapped if it isn't already.</doc>
        <source-position filename="gtkwidget.h" line="642"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3413">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="map_event">
        <source-position filename="gtkwidget.h" line="705"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="mnemonic_activate" invoker="mnemonic_activate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4690">Emits the #GtkWidget::mnemonic-activate signal.

The default handler for this signal activates the @widget if
@group_cycling is %FALSE, and just grabs the focus if @group_cycling
is %TRUE.</doc>
        <source-position filename="gtkwidget.h" line="666"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4701">%TRUE if the signal has been handled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4692">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="group_cycling" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4693">%TRUE if there are other widgets with the same mnemonic</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="motion_notify_event">
        <source-position filename="gtkwidget.h" line="683"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventMotion" c:type="GdkEventMotion*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="no_expose_event">
        <source-position filename="gtkwidget.h" line="725"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="parent_set">
        <source-position filename="gtkwidget.h" line="652"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_parent" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="popup_menu">
        <source-position filename="gtkwidget.h" line="775"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="property_notify_event">
        <source-position filename="gtkwidget.h" line="709"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventProperty" c:type="GdkEventProperty*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="proximity_in_event">
        <source-position filename="gtkwidget.h" line="717"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="proximity_out_event">
        <source-position filename="gtkwidget.h" line="719"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="query_tooltip">
        <source-position filename="gtkwidget.h" line="800"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="keyboard_tooltip" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <type name="Tooltip" c:type="GtkTooltip*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="realize" invoker="realize">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3503">Creates the GDK (windowing system) resources associated with a
widget.  For example, @widget-&gt;window will be created when a widget
is realized.  Normally realization happens implicitly; if you show
a widget and all its parent containers, then the widget will be
realized and mapped automatically.

Realizing a widget requires all
the widget's parent widgets to be realized; calling
gtk_widget_realize() realizes the widget's parents in addition to
@widget itself. If a widget is not yet inside a toplevel window
when you realize it, bad things will happen.

This function is primarily used in widget implementations, and
isn't very useful otherwise. Many times when you think you might
need it, a better approach is to connect to a signal that will be
called after the widget is realized automatically, such as
GtkWidget::expose-event. Or simply g_signal_connect () to the
GtkWidget::realize signal.</doc>
        <source-position filename="gtkwidget.h" line="644"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3505">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="screen_changed">
        <source-position filename="gtkwidget.h" line="789"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="scroll_event">
        <source-position filename="gtkwidget.h" line="681"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_clear_event">
        <source-position filename="gtkwidget.h" line="711"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_get">
        <source-position filename="gtkwidget.h" line="731"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_notify_event">
        <source-position filename="gtkwidget.h" line="715"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_received">
        <source-position filename="gtkwidget.h" line="735"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="selection_data" transfer-ownership="none">
            <type name="SelectionData" c:type="GtkSelectionData*"/>
          </parameter>
          <parameter name="time_" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="selection_request_event">
        <source-position filename="gtkwidget.h" line="713"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show" invoker="show">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3210">Flags a widget to be displayed. Any widget that isn't shown will
not appear on the screen. If you want to show all the widgets in a
container, it's easier to call gtk_widget_show_all() on the
container, instead of individually showing the widgets.

Remember that you have to show the containers containing a widget,
in addition to the widget itself, before it will appear onscreen.

When a toplevel container is shown, it is immediately realized and
mapped; other shown widgets are realized and mapped when their
toplevel container is realized and mapped.</doc>
        <source-position filename="gtkwidget.h" line="638"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3212">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_all" invoker="show_all">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3364">Recursively shows a widget, and any child widgets (if the widget is
a container).</doc>
        <source-position filename="gtkwidget.h" line="639"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3366">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_help">
        <source-position filename="gtkwidget.h" line="782"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="help_type" transfer-ownership="none">
            <type name="WidgetHelpType" c:type="GtkWidgetHelpType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_allocate" invoker="size_allocate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4038">This function is only used by #GtkContainer subclasses, to assign a size
and position to their child widgets.</doc>
        <source-position filename="gtkwidget.h" line="648"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4040">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4041">position and size to be allocated to @widget</doc>
            <type name="Allocation" c:type="GtkAllocation*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_request" invoker="size_request">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3901">This function is typically used when implementing a #GtkContainer
subclass.  Obtains the preferred size of a widget. The container
uses this information to arrange its child widgets and decide what
size allocations to give them with gtk_widget_size_allocate().

You can also call this function from an application, with some
caveats. Most notably, getting a size request requires the widget
to be associated with a screen, because font information may be
needed. Multihead-aware applications should keep this in mind.

Also remember that the size request is not necessarily the size
a widget will actually be allocated.

See also gtk_widget_get_child_requisition().</doc>
        <source-position filename="gtkwidget.h" line="646"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3903">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="requisition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3904">a #GtkRequisition to be filled in</doc>
            <type name="Requisition" c:type="GtkRequisition*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="state_changed">
        <source-position filename="gtkwidget.h" line="650"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_state" transfer-ownership="none">
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="style_set">
        <source-position filename="gtkwidget.h" line="656"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="previous_style" transfer-ownership="none">
            <type name="Style" c:type="GtkStyle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unmap" invoker="unmap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3437">This function is only for use in widget implementations. Causes
a widget to be unmapped if it's currently mapped.</doc>
        <source-position filename="gtkwidget.h" line="643"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3439">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unmap_event">
        <source-position filename="gtkwidget.h" line="707"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unrealize" invoker="unrealize">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3582">This function is only useful in widget implementations.
Causes a widget to be unrealized (frees all GDK resources
associated with the widget, such as @widget-&gt;window).</doc>
        <source-position filename="gtkwidget.h" line="645"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3584">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="visibility_notify_event">
        <source-position filename="gtkwidget.h" line="721"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventVisibility" c:type="GdkEventVisibility*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_state_event">
        <source-position filename="gtkwidget.h" line="727"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.EventWindowState" c:type="GdkEventWindowState*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate" c:identifier="gtk_widget_activate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5022">For widgets that can be "activated" (buttons, menu items, etc.)
this function activates them. Activation is what happens when you
press Enter on a widget during key navigation. If @widget isn't
activatable, the function returns %FALSE.</doc>
        <source-position filename="gtkwidget.h" line="919"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5031">%TRUE if the widget was activatable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5024">a #GtkWidget that's activatable</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="add_accelerator" c:identifier="gtk_widget_add_accelerator">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4453">Installs an accelerator for this @widget in @accel_group that causes
@accel_signal to be emitted if the accelerator is activated.
The @accel_group needs to be added to the widget's toplevel via
gtk_window_add_accel_group(), and the signal must be of type %G_RUN_ACTION.
Accelerators added through this function are not user changeable during
runtime. If you want to support accelerators that can be changed by the
user, use gtk_accel_map_add_entry() and gtk_widget_set_accel_path() or
gtk_menu_item_set_accel_path() instead.</doc>
        <source-position filename="gtkwidget.h" line="892"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4455">widget to install an accelerator on</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="accel_signal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4456">widget signal to emit on accelerator activation</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="accel_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4457">accel group for this widget, added to its toplevel</doc>
            <type name="AccelGroup" c:type="GtkAccelGroup*"/>
          </parameter>
          <parameter name="accel_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4458">GDK keyval of the accelerator</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="accel_mods" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4459">modifier key combination of the accelerator</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
          <parameter name="accel_flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4460">flag accelerators, e.g. %GTK_ACCEL_VISIBLE</doc>
            <type name="AccelFlags" c:type="GtkAccelFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_events" c:identifier="gtk_widget_add_events">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8140">Adds the events in the bitfield @events to the event mask for
@widget. See gtk_widget_set_events() for details.</doc>
        <source-position filename="gtkwidget.h" line="1044"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8142">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="events" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8143">an event mask, see #GdkEventMask</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_mnemonic_label"
              c:identifier="gtk_widget_add_mnemonic_label"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10881">Adds a widget to the list of mnemonic labels for
this widget. (See gtk_widget_list_mnemonic_labels()). Note the
list of mnemonic labels for the widget is cleared when the
widget is destroyed, so the caller must make sure to update
its internal state at this point as well, by using a connection
to the #GtkWidget::destroy signal or a weak notifier.</doc>
        <source-position filename="gtkwidget.h" line="1289"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10883">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10884">a #GtkWidget that acts as a mnemonic label for @widget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_activate_accel"
              c:identifier="gtk_widget_can_activate_accel"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4357">Determines whether an accelerator that activates the signal
identified by @signal_id can currently be activated.
This is done by emitting the #GtkWidget::can-activate-accel
signal on @widget; if the signal isn't overridden by a
handler or in a derived widget, then the default check is
that the widget must be sensitive, and the widget and all
its ancestors mapped.</doc>
        <source-position filename="gtkwidget.h" line="908"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4370">%TRUE if the accelerator can be activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4359">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="signal_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4360">the ID of a signal installed on @widget</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="child_focus" c:identifier="gtk_widget_child_focus">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7712">This function is used by custom widget implementations; if you're
writing an app, you'd use gtk_widget_grab_focus() to move the focus
to a particular widget, and gtk_container_set_focus_chain() to
change the focus tab order. So you may want to investigate those
functions instead.

gtk_widget_child_focus() is called by containers as the user moves
around the window using keyboard shortcuts. @direction indicates
what kind of motion is taking place (up, down, left, right, tab
forward, tab backward). gtk_widget_child_focus() emits the
#GtkWidget::focus signal; widgets override the default handler
for this signal in order to implement appropriate focus behavior.

The default ::focus handler for a widget should return %TRUE if
moving in @direction left the focus on a focusable location inside
that widget, and %FALSE if moving in @direction moved the focus
outside the widget. If returning %TRUE, widgets normally
call gtk_widget_grab_focus() to place the focus accordingly;
if returning %FALSE, they don't modify the current focus location.

This function replaces gtk_container_focus() from GTK+ 1.2.
It was necessary to check that the child was visible, sensitive,
and focusable before calling gtk_container_focus().
gtk_widget_child_focus() returns %FALSE if the widget is not
currently in a focusable state, so there's no need for those checks.</doc>
        <source-position filename="gtkwidget.h" line="1021"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7743">%TRUE if focus ended up inside @widget</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7714">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7715">direction of focus movement</doc>
            <type name="DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="child_notify" c:identifier="gtk_widget_child_notify">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2932">Emits a #GtkWidget::child-notify signal for the
&lt;link linkend="child-properties"&gt;child property&lt;/link&gt; @child_property
on @widget.

This is the analogue of g_object_notify() for child properties.</doc>
        <source-position filename="gtkwidget.h" line="933"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2934">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="child_property" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2935">the name of a child property installed on the
                 class of @widget&lt;!-- --&gt;'s parent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="class_path" c:identifier="gtk_widget_class_path">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10113">Same as gtk_widget_path(), but always uses the name of a widget's type,
never uses a custom name set with gtk_widget_set_name().</doc>
        <source-position filename="gtkwidget.h" line="1283"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10115">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="path_length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10116">location to store the length of the class path, or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10117">location to store the class path as an allocated string, or %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="path_reversed"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10118">location to store the reverse class path as an allocated
   string, or %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_pango_context"
              c:identifier="gtk_widget_create_pango_context">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7327">Creates a new #PangoContext with the appropriate font map,
font description, and base direction for drawing text for
this widget. See also gtk_widget_get_pango_context().</doc>
        <source-position filename="gtkwidget.h" line="1187"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7335">the new #PangoContext</doc>
          <type name="Pango.Context" c:type="PangoContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7329">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_pango_layout"
              c:identifier="gtk_widget_create_pango_layout">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7362">Creates a new #PangoLayout with the appropriate font map,
font description, and base direction for drawing text for
this widget.

If you keep a #PangoLayout created in this way around, in order to
notify the layout of changes to the base direction or font of this
widget, you must call pango_layout_context_changed() in response to
the #GtkWidget::style-set and #GtkWidget::direction-changed signals
for the widget.</doc>
        <source-position filename="gtkwidget.h" line="1189"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7377">the new #PangoLayout</doc>
          <type name="Pango.Layout" c:type="PangoLayout*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7364">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7365">text to set on the layout (can be %NULL)</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy" c:identifier="gtk_widget_destroy">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3158">Destroys a widget. Equivalent to gtk_object_destroy(), except that
you don't have to cast the widget to #GtkObject. When a widget is
destroyed, it will break any references it holds to other objects.
If the widget is inside a container, the widget will be removed
from the container. If the widget is a toplevel (derived from
#GtkWindow), it will be removed from the list of toplevels, and the
reference GTK+ holds to it will be removed. Removing a
widget from its container or the list of toplevels results in the
widget being finalized, unless you've added additional references
to the widget with g_object_ref().

In most cases, only toplevel widgets (windows) require explicit
destruction, because when you destroy a toplevel its children will
be destroyed as well.</doc>
        <source-position filename="gtkwidget.h" line="837"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3160">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="destroyed" c:identifier="gtk_widget_destroyed">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3185">This function sets *@widget_pointer to %NULL if @widget_pointer !=
%NULL.  It's intended to be used as a callback connected to the
"destroy" signal of a widget. You connect gtk_widget_destroyed()
as a signal handler, and pass the address of your widget variable
as user data. Then when the widget is destroyed, the variable will
be set to %NULL. Useful for example to avoid multiple copies
of the same dialog.</doc>
        <source-position filename="gtkwidget.h" line="838"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3187">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="widget_pointer"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3188">address of a variable that contains @widget</doc>
            <type name="Widget" c:type="GtkWidget**"/>
          </parameter>
        </parameters>
      </method>
      <method name="draw" c:identifier="gtk_widget_draw">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3868">In GTK+ 1.2, this function would immediately render the
region @area of a widget, by invoking the virtual draw method of a
widget. In GTK+ 2.0, the draw method is gone, and instead
gtk_widget_draw() simply invalidates the specified region of the
widget, then updates the invalid region of the widget immediately.
Usually you don't want to update the region immediately for
performance reasons, so in general gtk_widget_queue_draw_area() is
a better choice if you want to draw a region of a widget.</doc>
        <source-position filename="gtkwidget.h" line="883"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3870">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3871">area to draw</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_style" c:identifier="gtk_widget_ensure_style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6567">Ensures that @widget has a style (@widget-&gt;style). Not a very useful
function; most of the time, if you want the style, the widget is
realized, and realized widgets are guaranteed to have a style
already.</doc>
        <source-position filename="gtkwidget.h" line="1140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6569">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="error_bell"
              c:identifier="gtk_widget_error_bell"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7829">Notifies the user about an input-related error on this widget.
If the #GtkSettings:gtk-error-bell setting is %TRUE, it calls
gdk_window_beep(), otherwise it does nothing.

Note that the effect of gdk_window_beep() can be configured in many
ways, depending on the windowing backend and the desktop environment
or window manager that is used.</doc>
        <source-position filename="gtkwidget.h" line="1025"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7831">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="event" c:identifier="gtk_widget_event">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4775">Rarely-used function. This function is used to emit
the event signals on a widget (those signals should never
be emitted without using this function to do so).
If you want to synthesize an event though, don't use this function;
instead, use gtk_main_do_event() so the event will behave as if
it were in the event queue. Don't synthesize expose events; instead,
use gdk_window_invalidate_rect() to invalidate a region of the
window.</doc>
        <source-position filename="gtkwidget.h" line="912"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4789">return from the event signal emission (%TRUE if
              the event was handled)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4777">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4778">a #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="freeze_child_notify"
              c:identifier="gtk_widget_freeze_child_notify">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2909">Stops emission of #GtkWidget::child-notify signals on @widget. The
signals are queued until gtk_widget_thaw_child_notify() is called
on @widget.

This is the analogue of g_object_freeze_notify() for child properties.</doc>
        <source-position filename="gtkwidget.h" line="932"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2911">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_accessible" c:identifier="gtk_widget_get_accessible">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10217">Returns the accessible object that describes the widget to an
assistive technology.

If no accessibility library is loaded (i.e. no ATK implementation library is
loaded via &lt;envar&gt;GTK_MODULES&lt;/envar&gt; or via another application library,
such as libgnome), then this #AtkObject instance may be a no-op. Likewise,
if no class-specific #AtkObject implementation is available for the widget
instance in question, it will inherit an #AtkObject implementation from the
first ancestor class for which such an implementation is defined.

The documentation of the &lt;ulink url="http://developer.gnome.org/doc/API/2.0/atk/index.html"&gt;ATK&lt;/ulink&gt;
library contains more information about accessible objects and their uses.</doc>
        <source-position filename="gtkwidget.h" line="1103"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="10234">the #AtkObject associated with @widget</doc>
          <type name="Atk.Object" c:type="AtkObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10219">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_action"
              c:identifier="gtk_widget_get_action"
              version="2.10"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.16">
        <doc xml:space="preserve"
             filename="gtkaction.c"
             line="1037">Returns the #GtkAction that @widget is a proxy for.
See also gtk_action_get_proxies().</doc>
        <doc-deprecated xml:space="preserve">Use gtk_activatable_get_related_action() instead.</doc-deprecated>
        <source-position filename="gtkaction.h" line="115"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkaction.c"
               line="1044">the action that a widget is a proxy for, or
 %NULL, if it is not attached to an action.</doc>
          <type name="Action" c:type="GtkAction*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkaction.c"
                 line="1039">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_allocation"
              c:identifier="gtk_widget_get_allocation"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11272">Retrieves the widget's allocation.</doc>
        <source-position filename="gtkwidget.h" line="1013"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11274">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="allocation"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11275">a pointer to a #GtkAllocation to copy to</doc>
            <type name="Allocation" c:type="GtkAllocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ancestor" c:identifier="gtk_widget_get_ancestor">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8242">Gets the first ancestor of @widget with type @widget_type. For example,
&lt;literal&gt;gtk_widget_get_ancestor (widget, GTK_TYPE_BOX)&lt;/literal&gt; gets
the first #GtkBox that's an ancestor of @widget. No reference will be
added to the returned widget; it should not be unreferenced. See note
about checking for a toplevel #GtkWindow in the docs for
gtk_widget_get_toplevel().

Note that unlike gtk_widget_is_ancestor(), gtk_widget_get_ancestor()
considers @widget to be an ancestor of itself.</doc>
        <source-position filename="gtkwidget.h" line="1051"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8257">the ancestor widget, or %NULL if not found</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8244">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="widget_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8245">ancestor type</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_app_paintable"
              c:identifier="gtk_widget_get_app_paintable"
              glib:get-property="app-paintable"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6186">Determines whether the application intends to draw on the widget in
an #GtkWidget::expose-event handler.

See gtk_widget_set_app_paintable()</doc>
        <source-position filename="gtkwidget.h" line="988"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6195">%TRUE if the widget is app paintable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6188">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_default"
              c:identifier="gtk_widget_get_can_default"
              glib:get-property="can-default"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5636">Determines whether @widget can be a default widget. See
gtk_widget_set_can_default().</doc>
        <source-position filename="gtkwidget.h" line="946"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5643">%TRUE if @widget can be a default widget, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5638">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_focus"
              c:identifier="gtk_widget_get_can_focus"
              glib:get-property="can-focus"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5542">Determines whether @widget can own the input focus. See
gtk_widget_set_can_focus().</doc>
        <source-position filename="gtkwidget.h" line="939"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5549">%TRUE if @widget can own the input focus, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5544">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_child_requisition"
              c:identifier="gtk_widget_get_child_requisition">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3935">This function is only for use in widget implementations. Obtains
@widget-&gt;requisition, unless someone has forced a particular
geometry on the widget (e.g. with gtk_widget_set_size_request()),
in which case it returns that geometry instead of the widget's
requisition.

This function differs from gtk_widget_size_request() in that
it retrieves the last size request value from @widget-&gt;requisition,
while gtk_widget_size_request() actually calls the "size_request" method
on @widget to compute the size request and fill in @widget-&gt;requisition,
and only then returns @widget-&gt;requisition.

Because this function does not call the "size_request" method, it
can only be used when you know that @widget-&gt;requisition is
up-to-date, that is, gtk_widget_size_request() has been called
since the last time a resize was queued. In general, only container
implementations have this information; applications should use
gtk_widget_size_request().</doc>
        <source-position filename="gtkwidget.h" line="890"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3937">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="requisition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3938">a #GtkRequisition to be filled in</doc>
            <type name="Requisition" c:type="GtkRequisition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_child_visible"
              c:identifier="gtk_widget_get_child_visible">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7561">Gets the value set with gtk_widget_set_child_visible().
If you feel a need to use this function, your code probably
needs reorganization.

This function is only useful for container implementations and
never should be called by an application.</doc>
        <source-position filename="gtkwidget.h" line="1007"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7572">%TRUE if the widget is mapped with the parent.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7563">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_clipboard"
              c:identifier="gtk_widget_get_clipboard"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10815">Returns the clipboard object for the given selection to
be used with @widget. @widget must have a #GdkDisplay
associated with it, so must be attached to a toplevel
window.</doc>
        <source-position filename="gtkwidget.h" line="1061"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="10829">the appropriate clipboard object. If no
            clipboard already exists, a new one will
            be created. Once a clipboard object has
            been created, it is persistent for all time.</doc>
          <type name="Clipboard" c:type="GtkClipboard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10817">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10818">a #GdkAtom which identifies the clipboard
            to use. %GDK_SELECTION_CLIPBOARD gives the
            default clipboard. Another common value
            is %GDK_SELECTION_PRIMARY, which gives
            the primary X selection.</doc>
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_colormap" c:identifier="gtk_widget_get_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8274">Gets the colormap that will be used to render @widget. No reference will
be added to the returned colormap; it should not be unreferenced.</doc>
        <source-position filename="gtkwidget.h" line="1053"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8281">the colormap used by @widget</doc>
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8276">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_composite_name"
              c:identifier="gtk_widget_get_composite_name">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8503">Obtains the composite name of a widget.</doc>
        <source-position filename="gtkwidget.h" line="1202"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8509">the composite name of @widget, or %NULL if @widget is not
  a composite child. The string should be freed when it is no
  longer needed.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8505">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_direction" c:identifier="gtk_widget_get_direction">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8692">Gets the reading direction for a particular widget. See
gtk_widget_set_direction().</doc>
        <source-position filename="gtkwidget.h" line="1252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8699">the reading direction for the widget.</doc>
          <type name="TextDirection" c:type="GtkTextDirection"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8694">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display"
              c:identifier="gtk_widget_get_display"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7663">Get the #GdkDisplay for the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a #GtkWindow at the top.

In general, you should only create display specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.</doc>
        <source-position filename="gtkwidget.h" line="1058"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7675">the #GdkDisplay for the toplevel for this widget.</doc>
          <type name="Gdk.Display" c:type="GdkDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7665">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_double_buffered"
              c:identifier="gtk_widget_get_double_buffered"
              glib:get-property="double-buffered"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6250">Determines whether the widget is double buffered.

See gtk_widget_set_double_buffered()</doc>
        <source-position filename="gtkwidget.h" line="992"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6258">%TRUE if the widget is double buffered</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6252">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_events"
              c:identifier="gtk_widget_get_events"
              glib:get-property="events">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8375">Returns the event mask for the widget (a bitfield containing flags
from the #GdkEventMask enumeration). These are the events that the widget
will receive.</doc>
        <source-position filename="gtkwidget.h" line="1114"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8383">event mask for @widget</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8377">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_extension_events"
              c:identifier="gtk_widget_get_extension_events"
              glib:get-property="extension-events">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8393">Retrieves the extension events the widget will receive; see
gdk_input_set_extension_events().</doc>
        <source-position filename="gtkwidget.h" line="1049"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8400">extension events for @widget</doc>
          <type name="Gdk.ExtensionMode" c:type="GdkExtensionMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8395">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_tooltip"
              c:identifier="gtk_widget_get_has_tooltip"
              glib:get-property="has-tooltip"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11249">Returns the current value of the has-tooltip property.  See
GtkWidget:has-tooltip for more information.</doc>
        <source-position filename="gtkwidget.h" line="1306"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11256">current value of has-tooltip on @widget.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11251">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_window"
              c:identifier="gtk_widget_get_has_window"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5987">Determines whether @widget has a #GdkWindow of its own. See
gtk_widget_set_has_window().</doc>
        <source-position filename="gtkwidget.h" line="975"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5994">%TRUE if @widget has a window, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5989">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mapped"
              c:identifier="gtk_widget_get_mapped"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6098">Whether the widget is mapped.</doc>
        <source-position filename="gtkwidget.h" line="984"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6104">%TRUE if the widget is mapped, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6100">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modifier_style"
              c:identifier="gtk_widget_get_modifier_style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6668">Returns the current modifier style for the widget. (As set by
gtk_widget_modify_style().) If no style has previously set, a new
#GtkRcStyle will be created with all values unset, and set as the
modifier style for the widget. If you make changes to this rc
style, you must call gtk_widget_modify_style(), passing in the
returned rc style, to make sure that your changes take effect.

Caution: passing the style back to gtk_widget_modify_style() will
normally end up destroying it, because gtk_widget_modify_style() copies
the passed-in style and sets the copy as the new modifier style,
thus dropping any reference to the old modifier style. Add a reference
to the modifier style if you want to keep it alive.</doc>
        <source-position filename="gtkwidget.h" line="1145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6685">the modifier style for the widget. This rc style is
  owned by the widget. If you want to keep a pointer to value this
  around, you must add a refcount using g_object_ref().</doc>
          <type name="RcStyle" c:type="GtkRcStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6670">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gtk_widget_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5828">Retrieves the name of a widget. See gtk_widget_set_name() for the
significance of widget names.</doc>
        <source-position filename="gtkwidget.h" line="958"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5835">name of the widget. This string is owned by GTK+ and
should not be modified or freed</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5830">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_no_show_all"
              c:identifier="gtk_widget_get_no_show_all"
              glib:get-property="no-show-all"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10941">Returns the current value of the GtkWidget:no-show-all property,
which determines whether calls to gtk_widget_show_all() and
gtk_widget_hide_all() will affect this widget.</doc>
        <source-position filename="gtkwidget.h" line="857"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="10949">the current value of the "no-show-all" property.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10943">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pango_context"
              c:identifier="gtk_widget_get_pango_context">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7257">Gets a #PangoContext with the appropriate font map, font description,
and base direction for this widget. Unlike the context returned
by gtk_widget_create_pango_context(), this context is owned by
the widget (it can be used until the screen for the widget changes
or the widget is removed from its toplevel), and will be updated to
match any changes to the widget's attributes.

If you create and keep a #PangoLayout using this context, you must
deal with changes to the context by calling pango_layout_context_changed()
on the layout in response to the #GtkWidget::style-set and
#GtkWidget::direction-changed signals for the widget.</doc>
        <source-position filename="gtkwidget.h" line="1188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7273">the #PangoContext for the widget.</doc>
          <type name="Pango.Context" c:type="PangoContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7259">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent"
              c:identifier="gtk_widget_get_parent"
              glib:get-property="parent">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6465">Returns the parent container of @widget.</doc>
        <source-position filename="gtkwidget.h" line="999"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6471">the parent container of @widget, or %NULL</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6467">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_window"
              c:identifier="gtk_widget_get_parent_window">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7481">Gets @widget's parent window.</doc>
        <source-position filename="gtkwidget.h" line="1003"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7487">the parent window of @widget.</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7483">a #GtkWidget.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pointer" c:identifier="gtk_widget_get_pointer">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8410">Obtains the location of the mouse pointer in widget coordinates.
Widget coordinates are a bit odd; for historical reasons, they are
defined as @widget-&gt;window coordinates for widgets that are not
#GTK_NO_WINDOW widgets, and are relative to @widget-&gt;allocation.x,
@widget-&gt;allocation.y for widgets that are #GTK_NO_WINDOW widgets.</doc>
        <source-position filename="gtkwidget.h" line="1115"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8412">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8413">return location for the X coordinate, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8414">return location for the Y coordinate, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_realized"
              c:identifier="gtk_widget_get_realized"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6056">Determines whether @widget is realized.</doc>
        <source-position filename="gtkwidget.h" line="981"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6062">%TRUE if @widget is realized, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6058">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_receives_default"
              c:identifier="gtk_widget_get_receives_default"
              glib:get-property="receives-default"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5743">Determines whether @widget is alyways treated as default widget
withing its toplevel when it has the focus, even if another widget
is the default.

See gtk_widget_set_receives_default().</doc>
        <source-position filename="gtkwidget.h" line="952"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5753">%TRUE if @widget acts as default widget when focussed,
              %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5745">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_requisition"
              c:identifier="gtk_widget_get_requisition"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11311">Retrieves the widget's requisition.

This function should only be used by widget implementations in
order to figure whether the widget's requisition has actually
changed after some internal state change (so that they can call
gtk_widget_queue_resize() instead of gtk_widget_queue_draw()).

Normally, gtk_widget_size_request() should be used.</doc>
        <source-position filename="gtkwidget.h" line="1018"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11313">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="requisition"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11314">a pointer to a #GtkRequisition to copy to</doc>
            <type name="Requisition" c:type="GtkRequisition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_root_window"
              c:identifier="gtk_widget_get_root_window"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7687">Get the root window where this widget is located. This function can
only be called after the widget has been added to a widget
hierarchy with #GtkWindow at the top.

The root window is useful for such purposes as creating a popup
#GdkWindow associated with the window. In general, you should only
create display specific resources when a widget has been realized,
and you should free those resources when the widget is unrealized.</doc>
        <source-position filename="gtkwidget.h" line="1059"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7700">the #GdkWindow root window for the toplevel for this widget.</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7689">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen"
              c:identifier="gtk_widget_get_screen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7600">Get the #GdkScreen from the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a #GtkWindow
at the top.

In general, you should only create screen specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.</doc>
        <source-position filename="gtkwidget.h" line="1056"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7613">the #GdkScreen for the toplevel for this widget.</doc>
          <type name="Gdk.Screen" c:type="GdkScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7602">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sensitive"
              c:identifier="gtk_widget_get_sensitive"
              glib:get-property="sensitive"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6352">Returns the widget's sensitivity (in the sense of returning
the value that has been set using gtk_widget_set_sensitive()).

The effective sensitivity of a widget is however determined by both its
own and its parent widget's sensitivity. See gtk_widget_is_sensitive().</doc>
        <source-position filename="gtkwidget.h" line="966"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6362">%TRUE if the widget is sensitive</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6354">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings" c:identifier="gtk_widget_get_settings">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8328">Gets the settings object holding the settings (global property
settings, RC file information, etc) used for this widget.

Note that this function can only be called when the #GtkWidget
is attached to a toplevel, since the settings object is specific
to a particular #GdkScreen.</doc>
        <source-position filename="gtkwidget.h" line="1060"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8339">the relevant #GtkSettings object</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8330">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size_request"
              c:identifier="gtk_widget_get_size_request">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8054">Gets the size request that was explicitly set for the widget using
gtk_widget_set_size_request(). A value of -1 stored in @width or
@height indicates that that dimension has not been set explicitly
and the natural requisition of the widget will be used intead. See
gtk_widget_set_size_request(). To get the size a widget will
actually use, call gtk_widget_size_request() instead of
this function.</doc>
        <source-position filename="gtkwidget.h" line="1030"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8056">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8057">return location for width, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8058">return location for height, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_snapshot"
              c:identifier="gtk_widget_get_snapshot"
              version="2.14"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9620">Create a #GdkPixmap of the contents of the widget and its children.

Works even if the widget is obscured. The depth and visual of the
resulting pixmap is dependent on the widget being snapshot and likely
differs from those of a target widget displaying the pixmap.
The function gdk_pixbuf_get_from_drawable() can be used to convert
the pixmap to a visual independant representation.

The snapshot area used by this function is the @widget's allocation plus
any extra space occupied by additional windows belonging to this widget
(such as the arrows of a spin button).
Thus, the resulting snapshot pixmap is possibly larger than the allocation.

If @clip_rect is non-%NULL, the resulting pixmap is shrunken to
match the specified clip_rect. The (x,y) coordinates of @clip_rect are
interpreted widget relative. If width or height of @clip_rect are 0 or
negative, the width or height of the resulting pixmap will be shrunken
by the respective amount.
For instance a @clip_rect &lt;literal&gt;{ +5, +5, -10, -10 }&lt;/literal&gt; will
chop off 5 pixels at each side of the snapshot pixmap.
If non-%NULL, @clip_rect will contain the exact widget-relative snapshot
coordinates upon return. A @clip_rect of &lt;literal&gt;{ -1, -1, 0, 0 }&lt;/literal&gt;
can be used to preserve the auto-grown snapshot area and use @clip_rect
as a pure output parameter.

The returned pixmap can be %NULL, if the resulting @clip_area was empty.</doc>
        <source-position filename="gtkwidget.h" line="1063"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="9652">#GdkPixmap snapshot of the widget</doc>
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9622">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="clip_rect"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9623">a #GdkRectangle or %NULL</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="gtk_widget_get_state"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5887">Returns the widget's state. See gtk_widget_set_state().</doc>
        <source-position filename="gtkwidget.h" line="962"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5893">the state of @widget.</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5889">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_style"
              c:identifier="gtk_widget_get_style"
              glib:get-property="style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6609">Simply an accessor function that returns @widget-&gt;style.</doc>
        <source-position filename="gtkwidget.h" line="1141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6615">the widget's #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6611">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_markup"
              c:identifier="gtk_widget_get_tooltip_markup"
              glib:get-property="tooltip-markup"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11207">Gets the contents of the tooltip for @widget.</doc>
        <source-position filename="gtkwidget.h" line="1303"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11213">the tooltip text, or %NULL. You should free the
  returned string with g_free() when done.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11209">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_text"
              c:identifier="gtk_widget_get_tooltip_text"
              glib:get-property="tooltip-text"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11159">Gets the contents of the tooltip for @widget.</doc>
        <source-position filename="gtkwidget.h" line="1300"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11165">the tooltip text, or %NULL. You should free the
  returned string with g_free() when done.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11161">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tooltip_window"
              c:identifier="gtk_widget_get_tooltip_window"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11071">Returns the #GtkWindow of the current tooltip. This can be the
GtkWindow created by default, or the custom tooltip window set
using gtk_widget_set_tooltip_window().</doc>
        <source-position filename="gtkwidget.h" line="1296"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11079">The #GtkWindow of the current tooltip.</doc>
          <type name="Window" c:type="GtkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11073">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_toplevel" c:identifier="gtk_widget_get_toplevel">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8199">This function returns the topmost widget in the container hierarchy
@widget is a part of. If @widget has no parent widgets, it will be
returned as the topmost widget. No reference will be added to the
returned widget; it should not be unreferenced.

Note the difference in behavior vs. gtk_widget_get_ancestor();
&lt;literal&gt;gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)&lt;/literal&gt;
would return
%NULL if @widget wasn't inside a toplevel window, and if the
window was inside a #GtkWindow-derived widget which was in turn
inside the toplevel #GtkWindow. While the second case may
seem unlikely, it actually happens when a #GtkPlug is embedded
inside a #GtkSocket within the same application.

To reliably find the toplevel #GtkWindow, use
gtk_widget_get_toplevel() and check if the %TOPLEVEL flags
is set on the result.
|[
 GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
 if (gtk_widget_is_toplevel (toplevel))
   {
     /&amp;ast; Perform action on toplevel. &amp;ast;/
   }
]|</doc>
        <source-position filename="gtkwidget.h" line="1050"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8228">the topmost ancestor of @widget, or @widget itself
   if there's no ancestor.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8201">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visible"
              c:identifier="gtk_widget_get_visible"
              glib:get-property="visible"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5935">Determines whether the widget is visible. Note that this doesn't
take into account whether the widget's parent is also visible
or the widget is obscured in any way.

See gtk_widget_set_visible().</doc>
        <source-position filename="gtkwidget.h" line="971"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5945">%TRUE if the widget is visible</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5937">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_visual" c:identifier="gtk_widget_get_visual">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8312">Gets the visual that will be used to render @widget.</doc>
        <source-position filename="gtkwidget.h" line="1054"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8318">the visual for @widget</doc>
          <type name="Gdk.Visual" c:type="GdkVisual*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8314">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window"
              c:identifier="gtk_widget_get_window"
              glib:get-property="window"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11368">Returns the widget's window if it is realized, %NULL otherwise</doc>
        <source-position filename="gtkwidget.h" line="1011"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11374">@widget's window.</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11370">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="grab_default" c:identifier="gtk_widget_grab_default">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5685">Causes @widget to become the default widget. @widget must have the
%GTK_CAN_DEFAULT flag set; typically you have to set this flag
yourself by calling &lt;literal&gt;gtk_widget_set_can_default (@widget,
%TRUE)&lt;/literal&gt;. The default widget is activated when
the user presses Enter in a window. Default widgets must be
activatable, that is, gtk_widget_activate() should affect them.</doc>
        <source-position filename="gtkwidget.h" line="948"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5687">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="grab_focus" c:identifier="gtk_widget_grab_focus">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5309">Causes @widget to have the keyboard focus for the #GtkWindow it's
inside. @widget must be a focusable widget, such as a #GtkEntry;
something like #GtkFrame won't work.

More precisely, it must have the %GTK_CAN_FOCUS flag set. Use
gtk_widget_set_can_focus() to modify that flag.

The widget also needs to be realized and mapped. This is indicated by the
related signals. Grabbing the focus immediately after creating the widget
will likely fail and cause critical warnings.</doc>
        <source-position filename="gtkwidget.h" line="942"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5311">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_default"
              c:identifier="gtk_widget_has_default"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5655">Determines whether @widget is the current default widget within its
toplevel. See gtk_widget_set_can_default().</doc>
        <source-position filename="gtkwidget.h" line="947"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5662">%TRUE if @widget is the current default widget within
    its toplevel, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5657">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_focus"
              c:identifier="gtk_widget_has_focus"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5561">Determines if the widget has the global input focus. See
gtk_widget_is_focus() for the difference between having the global
input focus, and only having the focus within a toplevel.</doc>
        <source-position filename="gtkwidget.h" line="940"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5569">%TRUE if the widget has the global input focus.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5563">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_grab"
              c:identifier="gtk_widget_has_grab"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5766">Determines whether the widget is currently grabbing events, so it
is the only widget receiving input events (keyboard and mouse).

See also gtk_grab_add().</doc>
        <source-position filename="gtkwidget.h" line="954"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5775">%TRUE if the widget is in the grab_widgets stack</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5768">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_rc_style"
              c:identifier="gtk_widget_has_rc_style"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6513">Determines if the widget style has been looked up through the rc mechanism.</doc>
        <source-position filename="gtkwidget.h" line="1137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6519">%TRUE if the widget has been looked up through the rc
  mechanism, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6515">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_screen"
              c:identifier="gtk_widget_has_screen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7641">Checks whether there is a #GdkScreen is associated with
this widget. All toplevel widgets have an associated
screen, and all widgets added into a hierarchy with a toplevel
window at the top.</doc>
        <source-position filename="gtkwidget.h" line="1057"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7650">%TRUE if there is a #GdkScreen associcated
  with the widget.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7643">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide" c:identifier="gtk_widget_hide">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3300">Reverses the effects of gtk_widget_show(), causing the widget to be
hidden (invisible to the user).</doc>
        <source-position filename="gtkwidget.h" line="853"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3302">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_all"
              c:identifier="gtk_widget_hide_all"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3387">Recursively hides a widget and any child widgets.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_widget_hide() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="848"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3389">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_on_delete" c:identifier="gtk_widget_hide_on_delete">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3340">Utility function; intended to be connected to the #GtkWidget::delete-event
signal on a #GtkWindow. The function calls gtk_widget_hide() on its
argument, then returns %TRUE. If connected to ::delete-event, the
result is that clicking the close button for a window (on the
window frame, top right corner usually) will hide but not destroy
the window. By default, GTK+ destroys windows when ::delete-event
is received.</doc>
        <source-position filename="gtkwidget.h" line="1131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="3352">%TRUE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3342">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="input_shape_combine_mask"
              c:identifier="gtk_widget_input_shape_combine_mask"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9448">Sets an input shape for this widget's GDK window. This allows for
windows which react to mouse click in a nonrectangular region, see
gdk_window_input_shape_combine_mask() for more information.</doc>
        <source-position filename="gtkwidget.h" line="1266"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9450">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="shape_mask"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9451">shape to be added, or %NULL to remove an existing shape</doc>
            <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
          </parameter>
          <parameter name="offset_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9452">X position of shape mask with respect to @window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="offset_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9453">Y position of shape mask with respect to @window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect" c:identifier="gtk_widget_intersect">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5216">Computes the intersection of a @widget's area and @area, storing
the intersection in @intersection, and returns %TRUE if there was
an intersection.  @intersection may be %NULL if you're only
interested in whether there was an intersection.</doc>
        <source-position filename="gtkwidget.h" line="926"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5227">%TRUE if there was an intersection</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5218">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="area" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5219">a rectangle</doc>
            <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
          </parameter>
          <parameter name="intersection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5220">rectangle to store intersection of @widget and @area</doc>
            <type name="Gdk.Rectangle" c:type="GdkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_ancestor" c:identifier="gtk_widget_is_ancestor">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8448">Determines whether @widget is somewhere inside @ancestor, possibly with
intermediate containers.</doc>
        <source-position filename="gtkwidget.h" line="1119"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="8456">%TRUE if @ancestor contains @widget as a child,
   grandchild, great grandchild, etc.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8450">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="ancestor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8451">another #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_composited"
              c:identifier="gtk_widget_is_composited"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7125">Whether @widget can rely on having its alpha channel
drawn correctly. On X11 this function returns whether a
compositing manager is running for @widget's screen.

Please note that the semantics of this call will change
in the future if used on a widget that has a composited
window in its hierarchy (as set by gdk_window_set_composited()).</doc>
        <source-position filename="gtkwidget.h" line="1258"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7137">%TRUE if the widget can rely on its alpha
channel being drawn correctly.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7127">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_drawable"
              c:identifier="gtk_widget_is_drawable"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6036">Determines whether @widget can be drawn to. A widget can be drawn
to if it is mapped and visible.</doc>
        <source-position filename="gtkwidget.h" line="978"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6043">%TRUE if @widget is drawable, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6038">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_focus" c:identifier="gtk_widget_is_focus">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5581">Determines if the widget is the focus widget within its
toplevel. (This does not mean that the %HAS_FOCUS flag is
necessarily set; %HAS_FOCUS will only be set if the
toplevel widget additionally has the global input focus.)</doc>
        <source-position filename="gtkwidget.h" line="941"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5590">%TRUE if the widget is the focus widget.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5583">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_sensitive"
              c:identifier="gtk_widget_is_sensitive"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6374">Returns the widget's effective sensitivity, which means
it is sensitive itself and also its parent widget is sensntive</doc>
        <source-position filename="gtkwidget.h" line="967"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6381">%TRUE if the widget is effectively sensitive</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6376">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_toplevel"
              c:identifier="gtk_widget_is_toplevel"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6006">Determines whether @widget is a toplevel widget. Currently only
#GtkWindow and #GtkInvisible are toplevel widgets. Toplevel
widgets have no parent widget.</doc>
        <source-position filename="gtkwidget.h" line="977"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="6014">%TRUE if @widget is a toplevel, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6008">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="keynav_failed"
              c:identifier="gtk_widget_keynav_failed"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7772">This function should be called whenever keyboard navigation within
a single widget hits a boundary. The function emits the
#GtkWidget::keynav-failed signal on the widget and its return
value should be interpreted in a way similar to the return value of
gtk_widget_child_focus():

When %TRUE is returned, stay in the widget, the failed keyboard
navigation is Ok and/or there is nowhere we can/should move the
focus to.

When %FALSE is returned, the caller should continue with keyboard
navigation outside the widget, e.g. by calling
gtk_widget_child_focus() on the widget's toplevel.

The default ::keynav-failed handler returns %TRUE for
%GTK_DIR_TAB_FORWARD and %GTK_DIR_TAB_BACKWARD. For the other
values of #GtkDirectionType, it looks at the
#GtkSettings:gtk-keynav-cursor-only setting and returns %FALSE
if the setting is %TRUE. This way the entire user interface
becomes cursor-navigatable on input devices such as mobile phones
which only have cursor keys but no tab key.

Whenever the default handler returns %TRUE, it also calls
gtk_widget_error_bell() to notify the user of the failed keyboard
navigation.

A use case for providing an own implementation of ::keynav-failed
(either by connecting to it or by overriding it) would be a row of
#GtkEntry widgets where the user should be able to navigate the
entire row with the cursor keys, as e.g. known from user interfaces
that require entering license keys.</doc>
        <source-position filename="gtkwidget.h" line="1023"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7809">%TRUE if stopping keyboard navigation is fine, %FALSE
              if the emitting widget should try to handle the keyboard
              navigation attempt in its parent container(s).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7774">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7775">direction of focus movement</doc>
            <type name="DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_accel_closures"
              c:identifier="gtk_widget_list_accel_closures">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4567">Lists the closures used by @widget for accelerator group connections
with gtk_accel_group_connect_by_path() or gtk_accel_group_connect().
The closures can be used to monitor accelerator changes on @widget,
by connecting to the @GtkAccelGroup::accel-changed signal of the
#GtkAccelGroup of a closure which can be found out with
gtk_accel_group_from_accel_closure().</doc>
        <source-position filename="gtkwidget.h" line="907"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4578">
    a newly allocated #GList of closures</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GObject.Closure"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4569">widget to list accelerator closures for</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_mnemonic_labels"
              c:identifier="gtk_widget_list_mnemonic_labels"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10846">Returns a newly allocated list of the widgets, normally labels, for
which this widget is a the target of a mnemonic (see for example,
gtk_label_set_mnemonic_widget()).

The widgets in the list are not individually referenced. If you
want to iterate through the list and perform actions involving
callbacks that might destroy the widgets, you
&lt;emphasis&gt;must&lt;/emphasis&gt; call &lt;literal&gt;g_list_foreach (result,
(GFunc)g_object_ref, NULL)&lt;/literal&gt; first, and then unref all the
widgets afterwards.</doc>
        <source-position filename="gtkwidget.h" line="1288"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="10861">the list of
 mnemonic labels; free this list
 with g_list_free() when you are done with it.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10848">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="map" c:identifier="gtk_widget_map">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3411">This function is only for use in widget implementations. Causes
a widget to be mapped if it isn't already.</doc>
        <source-position filename="gtkwidget.h" line="858"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3413">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="mnemonic_activate"
              c:identifier="gtk_widget_mnemonic_activate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4690">Emits the #GtkWidget::mnemonic-activate signal.

The default handler for this signal activates the @widget if
@group_cycling is %FALSE, and just grabs the focus if @group_cycling
is %TRUE.</doc>
        <source-position filename="gtkwidget.h" line="910"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4701">%TRUE if the signal has been handled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4692">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="group_cycling" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4693">%TRUE if there are other widgets with the same mnemonic</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_base" c:identifier="gtk_widget_modify_base">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6825">Sets the base color for a widget in a particular state.
All other style values are left untouched. The base color
is the background color used along with the text color
(see gtk_widget_modify_text()) for widgets such as #GtkEntry
and #GtkTextView. See also gtk_widget_modify_style().

Note that "no window" widgets (which have the %GTK_NO_WINDOW flag set)
draw on their parent container's window and thus may not draw any
background themselves. This is the case for e.g. #GtkLabel. To modify
the background of such widgets, you have to set the base color on their
parent; if you want to set the background of a rectangular area around
a label, try placing the label in a #GtkEventBox widget and setting
the base color on that.</doc>
        <source-position filename="gtkwidget.h" line="1155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6827">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6828">the state for which to set the base color</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6829">the color to assign (does not need to be allocated),
        or %NULL to undo the effect of previous calls to
        of gtk_widget_modify_base().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_bg" c:identifier="gtk_widget_modify_bg">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6769">Sets the background color for a widget in a particular state.
All other style values are left untouched. See also
gtk_widget_modify_style().

Note that "no window" widgets (which have the %GTK_NO_WINDOW flag set)
draw on their parent container's window and thus may not draw any
background themselves. This is the case for e.g. #GtkLabel. To modify
the background of such widgets, you have to set the background color
on their parent; if you want to set the background of a rectangular
area around a label, try placing the label in a #GtkEventBox widget
and setting the background color on that.</doc>
        <source-position filename="gtkwidget.h" line="1149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6771">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6772">the state for which to set the background color</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6773">the color to assign (does not need to be allocated),
        or %NULL to undo the effect of previous calls to
        of gtk_widget_modify_bg().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_cursor"
              c:identifier="gtk_widget_modify_cursor"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6888">Sets the cursor color to use in a widget, overriding the
#GtkWidget:cursor-color and #GtkWidget:secondary-cursor-color
style properties. All other style values are left untouched.
See also gtk_widget_modify_style().</doc>
        <source-position filename="gtkwidget.h" line="1158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6890">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="primary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6891">the color to use for primary cursor (does not need to be
          allocated), or %NULL to undo the effect of previous calls to
          of gtk_widget_modify_cursor().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
          <parameter name="secondary" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6894">the color to use for secondary cursor (does not need to be
            allocated), or %NULL to undo the effect of previous calls to
            of gtk_widget_modify_cursor().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_fg" c:identifier="gtk_widget_modify_fg">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6746">Sets the foreground color for a widget in a particular state.
All other style values are left untouched. See also
gtk_widget_modify_style().</doc>
        <source-position filename="gtkwidget.h" line="1146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6748">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6749">the state for which to set the foreground color</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6750">the color to assign (does not need to be allocated),
        or %NULL to undo the effect of previous calls to
        of gtk_widget_modify_fg().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_font" c:identifier="gtk_widget_modify_font">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6922">Sets the font to use for a widget.  All other style values are left
untouched. See also gtk_widget_modify_style().</doc>
        <source-position filename="gtkwidget.h" line="1161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6924">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="font_desc"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6925">the font description to use, or %NULL to undo
  the effect of previous calls to gtk_widget_modify_font().</doc>
            <type name="Pango.FontDescription" c:type="PangoFontDescription*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_style" c:identifier="gtk_widget_modify_style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6625">Modifies style values on the widget. Modifications made using this
technique take precedence over style values set via an RC file,
however, they will be overriden if a style is explicitely set on
the widget using gtk_widget_set_style(). The #GtkRcStyle structure
is designed so each field can either be set or unset, so it is
possible, using this function, to modify some style values and
leave the others unchanged.

Note that modifications made with this function are not cumulative
with previous calls to gtk_widget_modify_style() or with such
functions as gtk_widget_modify_fg(). If you wish to retain
previous values, you must first call gtk_widget_get_modifier_style(),
make your modifications to the returned style, then call
gtk_widget_modify_style() with that style. On the other hand,
if you first call gtk_widget_modify_style(), subsequent calls
to such functions gtk_widget_modify_fg() will have a cumulative
effect with the initial modifications.</doc>
        <source-position filename="gtkwidget.h" line="1143"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6627">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6628">the #GtkRcStyle holding the style modifications</doc>
            <type name="RcStyle" c:type="GtkRcStyle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="modify_text" c:identifier="gtk_widget_modify_text">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6800">Sets the text color for a widget in a particular state.  All other
style values are left untouched. The text color is the foreground
color used along with the base color (see gtk_widget_modify_base())
for widgets such as #GtkEntry and #GtkTextView. See also
gtk_widget_modify_style().</doc>
        <source-position filename="gtkwidget.h" line="1152"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6802">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6803">the state for which to set the text color</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
          <parameter name="color"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6804">the color to assign (does not need to be allocated),
        or %NULL to undo the effect of previous calls to
        of gtk_widget_modify_text().</doc>
            <type name="Gdk.Color" c:type="const GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="path" c:identifier="gtk_widget_path">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10040">Obtains the full path to @widget. The path is simply the name of a
widget and all its parents in the container hierarchy, separated by
periods. The name of a widget comes from
gtk_widget_get_name(). Paths are used to apply styles to a widget
in gtkrc configuration files. Widget names are the type of the
widget by default (e.g. "GtkButton") or can be set to an
application-specific value with gtk_widget_set_name(). By setting
the name of a widget, you allow users or theme authors to apply
styles to that specific widget in their gtkrc
file. @path_reversed_p fills in the path in reverse order,
i.e. starting with @widget's name instead of starting with the name
of @widget's outermost ancestor.</doc>
        <source-position filename="gtkwidget.h" line="1279"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10042">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="path_length"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10043">location to store length of the path, or %NULL</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="path"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10044">location to store allocated path string, or %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
          <parameter name="path_reversed"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10045">location to store allocated reverse path string, or %NULL</doc>
            <type name="utf8" c:type="gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_clear"
              c:identifier="gtk_widget_queue_clear"
              deprecated="1"
              deprecated-version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3814">This function does the same as gtk_widget_queue_draw().</doc>
        <doc-deprecated xml:space="preserve">Use gtk_widget_queue_draw() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="871"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3816">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="queue_clear_area"
              c:identifier="gtk_widget_queue_clear_area"
              deprecated="1"
              deprecated-version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3784">This function is no longer different from
gtk_widget_queue_draw_area(), though it once was. Now it just calls
gtk_widget_queue_draw_area(). Originally
gtk_widget_queue_clear_area() would force a redraw of the
background for %GTK_NO_WINDOW widgets, and
gtk_widget_queue_draw_area() would not. Now both functions ensure
the background will be redrawn.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_widget_queue_draw_area() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="872"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3786">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3787">x coordinate of upper-left corner of rectangle to redraw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3788">y coordinate of upper-left corner of rectangle to redraw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3789">width of region to draw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3790">height of region to draw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_draw" c:identifier="gtk_widget_queue_draw">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3760">Equivalent to calling gtk_widget_queue_draw_area() for the
entire area of a widget.</doc>
        <source-position filename="gtkwidget.h" line="864"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3762">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="queue_draw_area" c:identifier="gtk_widget_queue_draw_area">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3616">Invalidates the rectangular area of @widget defined by @x, @y,
@width and @height by calling gdk_window_invalidate_rect() on the
widget's window and all its child windows. Once the main loop
becomes idle (after the current batch of events has been processed,
roughly), the window will receive expose events for the union of
all regions that have been invalidated.

Normally you would only use this function in widget
implementations. You might also use it, or
gdk_window_invalidate_rect() directly, to schedule a redraw of a
#GtkDrawingArea or some portion thereof.

Frequently you can just call gdk_window_invalidate_rect() or
gdk_window_invalidate_region() instead of this function. Those
functions will invalidate only a single window, instead of the
widget and all its children.

The advantage of adding to the invalidated region compared to
simply drawing immediately is efficiency; using an invalid region
ensures that you only have to redraw one time.</doc>
        <source-position filename="gtkwidget.h" line="865"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3618">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3619">x coordinate of upper-left corner of rectangle to redraw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3620">y coordinate of upper-left corner of rectangle to redraw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3621">width of region to draw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3622">height of region to draw</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="queue_resize" c:identifier="gtk_widget_queue_resize">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3830">This function is only for use in widget implementations.
Flags a widget to have its size renegotiated; should
be called when a widget for some reason has a new size request.
For example, when you change the text in a #GtkLabel, #GtkLabel
queues a resize to ensure there's enough space for the new text.</doc>
        <source-position filename="gtkwidget.h" line="880"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3832">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="queue_resize_no_redraw"
              c:identifier="gtk_widget_queue_resize_no_redraw"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3851">This function works like gtk_widget_queue_resize(),
except that the widget is not invalidated.</doc>
        <source-position filename="gtkwidget.h" line="881"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3853">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="realize" c:identifier="gtk_widget_realize">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3503">Creates the GDK (windowing system) resources associated with a
widget.  For example, @widget-&gt;window will be created when a widget
is realized.  Normally realization happens implicitly; if you show
a widget and all its parent containers, then the widget will be
realized and mapped automatically.

Realizing a widget requires all
the widget's parent widgets to be realized; calling
gtk_widget_realize() realizes the widget's parents in addition to
@widget itself. If a widget is not yet inside a toplevel window
when you realize it, bad things will happen.

This function is primarily used in widget implementations, and
isn't very useful otherwise. Many times when you think you might
need it, a better approach is to connect to a signal that will be
called after the widget is realized automatically, such as
GtkWidget::expose-event. Or simply g_signal_connect () to the
GtkWidget::realize signal.</doc>
        <source-position filename="gtkwidget.h" line="860"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3505">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref"
              c:identifier="gtk_widget_ref"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9535">Adds a reference to a widget. This function is exactly the same
as calling g_object_ref(), and exists mostly for historical
reasons. It can still be convenient to avoid casting a widget
to a #GObject, it saves a small amount of typing.</doc>
        <doc-deprecated xml:space="preserve">Use g_object_ref() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="841"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="9544">the widget that was referenced</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9537">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="region_intersect"
              c:identifier="gtk_widget_region_intersect"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5257">Computes the intersection of a @widget's area and @region, returning
the intersection. The result may be empty, use gdk_region_empty() to
check.</doc>
        <source-position filename="gtkwidget.h" line="929"/>
        <return-value>
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5264">A newly allocated region holding the intersection of @widget
          and @region. The coordinates of the return value are
          relative to @widget-&gt;window for %NO_WINDOW widgets, and
          relative to the parent window of @widget-&gt;window for
          widgets with their own window.</doc>
          <type name="Gdk.Region" c:type="GdkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5259">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5260">a #GdkRegion, in the same coordinate system as
         @widget-&gt;allocation. That is, relative to @widget-&gt;window
         for %NO_WINDOW widgets; relative to the parent window
         of @widget-&gt;window for widgets with their own window.</doc>
            <type name="Gdk.Region" c:type="const GdkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_accelerator"
              c:identifier="gtk_widget_remove_accelerator">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4516">Removes an accelerator from @widget, previously installed with
gtk_widget_add_accelerator().</doc>
        <source-position filename="gtkwidget.h" line="898"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4522">whether an accelerator was installed and could be removed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4518">widget to install an accelerator on</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="accel_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4519">accel group for this widget</doc>
            <type name="AccelGroup" c:type="GtkAccelGroup*"/>
          </parameter>
          <parameter name="accel_key" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4520">GDK keyval of the accelerator</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="accel_mods" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4521">modifier key combination of the accelerator</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_mnemonic_label"
              c:identifier="gtk_widget_remove_mnemonic_label"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10911">Removes a widget from the list of mnemonic labels for
this widget. (See gtk_widget_list_mnemonic_labels()). The widget
must have previously been added to the list with
gtk_widget_add_mnemonic_label().</doc>
        <source-position filename="gtkwidget.h" line="1291"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10913">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10914">a #GtkWidget that was previously set as a mnemnic label for
        @widget with gtk_widget_add_mnemonic_label().</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_icon" c:identifier="gtk_widget_render_icon">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7397">A convenience function that uses the theme engine and RC file
settings for @widget to look up @stock_id and render it to
a pixbuf. @stock_id should be a stock icon ID such as
#GTK_STOCK_OPEN or #GTK_STOCK_OK. @size should be a size
such as #GTK_ICON_SIZE_MENU. @detail should be a string that
identifies the widget or code doing the rendering, so that
theme engines can special-case rendering for that widget or code.

The pixels in the returned #GdkPixbuf are shared with the rest of
the application and should not be modified. The pixbuf should be freed
after use with g_object_unref().</doc>
        <source-position filename="gtkwidget.h" line="1192"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="7418">a new pixbuf, or %NULL if the
    stock ID wasn't known</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7399">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="stock_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7400">a stock ID</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7401">a stock size. A size of (GtkIconSize)-1 means
    render at the size of the source and don't scale (if there are
    multiple source sizes, GTK+ picks one of the available sizes).</doc>
            <type name="gint" c:type="GtkIconSize"/>
          </parameter>
          <parameter name="detail"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7404">render detail to pass to theme engine</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reparent" c:identifier="gtk_widget_reparent">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5173">Moves a widget from one #GtkContainer to another, handling reference
count issues to avoid destroying the widget.</doc>
        <source-position filename="gtkwidget.h" line="924"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5175">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="new_parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5176">a #GtkContainer to move the widget into</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reset_rc_styles" c:identifier="gtk_widget_reset_rc_styles">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7213">Reset the styles of @widget and all descendents, so when
they are looked up again, they get the correct values
for the currently loaded RC file settings.

This function is not useful for applications.</doc>
        <source-position filename="gtkwidget.h" line="1205"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7215">a #GtkWidget.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="reset_shapes"
              c:identifier="gtk_widget_reset_shapes"
              deprecated="1">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9517">Recursively resets the shape on this widget and its descendants.</doc>
        <doc-deprecated xml:space="preserve">This function is being removed in GTK+ 3.0. Don't use it.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="1273"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9519">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="send_expose" c:identifier="gtk_widget_send_expose">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4811">Very rarely-used function. This function is used to emit
an expose event signals on a widget. This function is not
normally used directly. The only time it is used is when
propagating an expose event to a child %NO_WINDOW widget, and
that is normally done using gtk_container_propagate_expose().

If you want to force an area of a window to be redrawn,
use gdk_window_invalidate_rect() or gdk_window_invalidate_region().
To cause the redraw to be done immediately, follow that call
with a call to gdk_window_process_updates().</doc>
        <source-position filename="gtkwidget.h" line="914"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4827">return from the event signal emission (%TRUE if
              the event was handled)</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4813">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4814">a expose #GdkEvent</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="send_focus_change"
              c:identifier="gtk_widget_send_focus_change"
              version="2.22">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11396">Sends the focus change @event to @widget

This function is not meant to be used by applications. The only time it
should be used is when it is necessary for a #GtkWidget to assign focus
to a widget that is semantically owned by the first widget even though
it's not a direct child - for instance, a search entry in a floating
window similar to the quick search in #GtkTreeView.

An example of its usage is:

|[
  GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE);

  fevent-&gt;focus_change.type = GDK_FOCUS_CHANGE;
  fevent-&gt;focus_change.in = TRUE;
  fevent-&gt;focus_change.window = gtk_widget_get_window (widget);
  if (fevent-&gt;focus_change.window != NULL)
    g_object_ref (fevent-&gt;focus_change.window);

  gtk_widget_send_focus_change (widget, fevent);

  gdk_event_free (event);
]|</doc>
        <source-position filename="gtkwidget.h" line="916"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="11425">the return value from the event signal emission: %TRUE
  if the event was handled, and %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11398">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11399">a #GdkEvent of type GDK_FOCUS_CHANGE</doc>
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set"
              c:identifier="gtk_widget_set"
              introspectable="0"
              deprecated="1"
              deprecated-version="2.0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3037">Precursor of g_object_set().</doc>
        <doc-deprecated xml:space="preserve">Use g_object_set() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="843"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3039">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3040">name of first property to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3041">value of first property, followed by more properties,
          %NULL-terminated</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accel_path" c:identifier="gtk_widget_set_accel_path">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4615">Given an accelerator group, @accel_group, and an accelerator path,
@accel_path, sets up an accelerator in @accel_group so whenever the
key binding that is defined for @accel_path is pressed, @widget
will be activated.  This removes any accelerators (for any
accelerator group) installed by previous calls to
gtk_widget_set_accel_path(). Associating accelerators with
paths allows them to be modified by the user and the modifications
to be saved for future use. (See gtk_accel_map_save().)

This function is a low level function that would most likely
be used by a menu creation system like #GtkUIManager. If you
use #GtkUIManager, setting up accelerator paths will be done
automatically.

Even when you you aren't using #GtkUIManager, if you only want to
set up accelerators on menu items gtk_menu_item_set_accel_path()
provides a somewhat more convenient interface.

Note that @accel_path string will be stored in a #GQuark. Therefore, if you
pass a static string, you can save some memory by interning it first with
g_intern_static_string().</doc>
        <source-position filename="gtkwidget.h" line="902"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4617">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="accel_path"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4618">path used to look up the accelerator</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="accel_group"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4619">a #GtkAccelGroup.</doc>
            <type name="AccelGroup" c:type="GtkAccelGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_allocation"
              c:identifier="gtk_widget_set_allocation"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11291">Sets the widget's allocation.  This should not be used
directly, but from within a widget's size_allocate method.</doc>
        <source-position filename="gtkwidget.h" line="1015"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11293">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11294">a pointer to a #GtkAllocation to copy from</doc>
            <type name="Allocation" c:type="const GtkAllocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_app_paintable"
              c:identifier="gtk_widget_set_app_paintable"
              glib:set-property="app-paintable">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6140">Sets whether the application intends to draw on the widget in
an #GtkWidget::expose-event handler.

This is a hint to the widget and does not affect the behavior of
the GTK+ core; many widgets ignore this flag entirely. For widgets
that do pay attention to the flag, such as #GtkEventBox and #GtkWindow,
the effect is to suppress default themed drawing of the widget's
background. (Children of the widget will still be drawn.) The application
is then entirely responsible for drawing the widget background.

Note that the background is still drawn when the widget is mapped.
If this is not suitable (e.g. because you want to make a transparent
window using an RGBA visual), you can work around this by doing:
|[
 gtk_widget_realize (window);
 gdk_window_set_back_pixmap (window-&gt;window, NULL, FALSE);
 gtk_widget_show (window);
]|</doc>
        <source-position filename="gtkwidget.h" line="986"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6142">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="app_paintable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6143">%TRUE if the application will paint on the widget</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_can_default"
              c:identifier="gtk_widget_set_can_default"
              glib:set-property="can-default"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5607">Specifies whether @widget can be a default widget. See
gtk_widget_grab_default() for details about the meaning of
"default".</doc>
        <source-position filename="gtkwidget.h" line="944"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5609">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="can_default" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5610">whether or not @widget can be a default widget.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_can_focus"
              c:identifier="gtk_widget_set_can_focus"
              glib:set-property="can-focus"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5513">Specifies whether @widget can own the input focus. See
gtk_widget_grab_focus() for actually setting the input focus on a
widget.</doc>
        <source-position filename="gtkwidget.h" line="937"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5515">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="can_focus" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5516">whether or not @widget can own the input focus.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_child_visible"
              c:identifier="gtk_widget_set_child_visible">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7503">Sets whether @widget should be mapped along with its when its parent
is mapped and @widget has been shown with gtk_widget_show().

The child visibility can be set for widget before it is added to
a container with gtk_widget_set_parent(), to avoid mapping
children unnecessary before immediately unmapping them. However
it will be reset to its default state of %TRUE when the widget
is removed from a container.

Note that changing the child visibility of a widget does not
queue a resize on the widget. Most of the time, the size of
a widget is computed from all visible children, whether or
not they are mapped. If this is not the case, the container
can queue a resize itself.

This function is only useful for container implementations and
never should be called by an application.</doc>
        <source-position filename="gtkwidget.h" line="1005"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7505">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="is_visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7506">if %TRUE, @widget should be mapped along with its parent.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_colormap" c:identifier="gtk_widget_set_colormap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8349">Sets the colormap for the widget to the given value. Widget must not
have been previously realized. This probably should only be used
from an &lt;function&gt;init()&lt;/function&gt; function (i.e. from the constructor
for the widget).</doc>
        <source-position filename="gtkwidget.h" line="1111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8351">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="colormap" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8352">a colormap</doc>
            <type name="Gdk.Colormap" c:type="GdkColormap*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_composite_name"
              c:identifier="gtk_widget_set_composite_name">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8478">Sets a widgets composite name. The widget must be
a composite child of its parent; see gtk_widget_push_composite_child().</doc>
        <source-position filename="gtkwidget.h" line="1200"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8480">a #GtkWidget.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8481">the name to set</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_direction" c:identifier="gtk_widget_set_direction">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8648">Sets the reading direction on a particular widget. This direction
controls the primary direction for widgets containing text,
and also the direction in which the children of a container are
packed. The ability to set the direction is present in order
so that correct localization into languages with right-to-left
reading directions can be done. Generally, applications will
let the default reading direction present, except for containers
where the containers are arranged in an order that is explicitely
visual rather than logical (such as buttons for text justification).

If the direction is set to %GTK_TEXT_DIR_NONE, then the value
set by gtk_widget_set_default_direction() will be used.</doc>
        <source-position filename="gtkwidget.h" line="1250"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8650">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="dir" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8651">the new direction</doc>
            <type name="TextDirection" c:type="GtkTextDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_double_buffered"
              c:identifier="gtk_widget_set_double_buffered"
              glib:set-property="double-buffered">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6207">Widgets are double buffered by default; you can use this function
to turn off the buffering. "Double buffered" simply means that
gdk_window_begin_paint_region() and gdk_window_end_paint() are called
automatically around expose events sent to the
widget. gdk_window_begin_paint() diverts all drawing to a widget's
window to an offscreen buffer, and gdk_window_end_paint() draws the
buffer to the screen. The result is that users see the window
update in one smooth step, and don't see individual graphics
primitives being rendered.

In very simple terms, double buffered widgets don't flicker,
so you would only use this function to turn off double buffering
if you had special needs and really knew what you were doing.

Note: if you turn off double-buffering, you have to handle
expose events, since even the clearing to the background color or
pixmap will not happen automatically (as it is done in
gdk_window_begin_paint()).</doc>
        <source-position filename="gtkwidget.h" line="990"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6209">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="double_buffered" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6210">%TRUE to double-buffer a widget</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_events"
              c:identifier="gtk_widget_set_events"
              glib:set-property="events">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8086">Sets the event mask (see #GdkEventMask) for a widget. The event
mask determines which events a widget will receive. Keep in mind
that different widgets have different default event masks, and by
changing the event mask you may disrupt a widget's functionality,
so be careful. This function must be called while a widget is
unrealized. Consider gtk_widget_add_events() for widgets that are
already realized, or if you want to preserve the existing event
mask. This function can't be used with #GTK_NO_WINDOW widgets;
to get events on those widgets, place them inside a #GtkEventBox
and receive events on the event box.</doc>
        <source-position filename="gtkwidget.h" line="1042"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8088">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="events" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8089">event mask</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_extension_events"
              c:identifier="gtk_widget_set_extension_events"
              glib:set-property="extension-events">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8177">Sets the extension events mask to @mode. See #GdkExtensionMode
and gdk_input_set_extension_events().</doc>
        <source-position filename="gtkwidget.h" line="1046"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8179">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8180">bitfield of extension events to receive</doc>
            <type name="Gdk.ExtensionMode" c:type="GdkExtensionMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_has_tooltip"
              c:identifier="gtk_widget_set_has_tooltip"
              glib:set-property="has-tooltip"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11230">Sets the has-tooltip property on @widget to @has_tooltip.  See
GtkWidget:has-tooltip for more information.</doc>
        <source-position filename="gtkwidget.h" line="1304"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11232">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="has_tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11233">whether or not @widget has a tooltip.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_has_window"
              c:identifier="gtk_widget_set_has_window"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5957">Specifies whether @widget has a #GdkWindow of its own. Note that
all realized widgets have a non-%NULL "window" pointer
(gtk_widget_get_window() never returns a %NULL window when a widget
is realized), but for many of them it's actually the #GdkWindow of
one of its parent widgets. Widgets that do not create a %window for
themselves in GtkWidget::realize() must announce this by
calling this function with @has_window = %FALSE.

This function should only be called by widget implementations,
and they should call it in their init() function.</doc>
        <source-position filename="gtkwidget.h" line="973"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5959">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="has_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5960">whether or not @widget has a window.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mapped"
              c:identifier="gtk_widget_set_mapped"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6116">Marks the widget as being realized.

This function should only ever be called in a derived widget's
"map" or "unmap" implementation.</doc>
        <source-position filename="gtkwidget.h" line="982"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6118">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="mapped" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6119">%TRUE to mark the widget as mapped</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gtk_widget_set_name"
              glib:set-property="name">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5797">Widgets can be named, which allows you to refer to them from a
gtkrc file. You can apply a style to widgets with a particular name
in the gtkrc file. See the documentation for gtkrc files (on the
same page as the docs for #GtkRcStyle).

Note that widget names are separated by periods in paths (see
gtk_widget_path()), so names with embedded periods may cause confusion.</doc>
        <source-position filename="gtkwidget.h" line="956"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5799">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5800">name for the widget</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_no_show_all"
              c:identifier="gtk_widget_set_no_show_all"
              glib:set-property="no-show-all"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10961">Sets the #GtkWidget:no-show-all property, which determines whether
calls to gtk_widget_show_all() and gtk_widget_hide_all() will affect
this widget.

This is mostly for use in constructing widget hierarchies with externally
controlled visibility, see #GtkUIManager.</doc>
        <source-position filename="gtkwidget.h" line="855"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10963">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="no_show_all" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10964">the new value for the "no-show-all" property</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent"
              c:identifier="gtk_widget_set_parent"
              glib:set-property="parent">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6394">This function is useful only when implementing subclasses of
#GtkContainer.
Sets the container as the parent of @widget, and takes care of
some details such as updating the state and style of the child
to reflect its new location. The opposite function is
gtk_widget_unparent().</doc>
        <source-position filename="gtkwidget.h" line="997"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6396">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="parent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6397">parent container</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_parent_window"
              c:identifier="gtk_widget_set_parent_window">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7452">Sets a non default parent window for @widget.</doc>
        <source-position filename="gtkwidget.h" line="1001"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7454">a #GtkWidget.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="parent_window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7455">the new parent window.</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_realized"
              c:identifier="gtk_widget_set_realized"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6074">Marks the widget as being realized.

This function should only ever be called in a derived widget's
"realize" or "unrealize" implementation.</doc>
        <source-position filename="gtkwidget.h" line="979"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6076">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="realized" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6077">%TRUE to mark the widget as realized</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_receives_default"
              c:identifier="gtk_widget_set_receives_default"
              glib:set-property="receives-default"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5712">Specifies whether @widget will be treated as the default widget
within its toplevel when it has the focus, even if another widget
is the default.

See gtk_widget_grab_default() for details about the meaning of
"default".</doc>
        <source-position filename="gtkwidget.h" line="950"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5714">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="receives_default" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5715">whether or not @widget can be a default widget.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_redraw_on_allocate"
              c:identifier="gtk_widget_set_redraw_on_allocate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6270">Sets whether the entire widget is queued for drawing when its size
allocation changes. By default, this setting is %TRUE and
the entire widget is redrawn on every size change. If your widget
leaves the upper left unchanged when made bigger, turning this
setting off will improve performance.

Note that for %NO_WINDOW widgets setting this flag to %FALSE turns
off all allocation on resizing: the widget will not even redraw if
its position changes; this is to allow containers that don't draw
anything to avoid excess invalidations. If you set this flag on a
%NO_WINDOW widget that &lt;emphasis&gt;does&lt;/emphasis&gt; draw on @widget-&gt;window,
you are responsible for invalidating both the old and new allocation
of the widget when the widget is moved and responsible for invalidating
regions newly when the widget increases size.</doc>
        <source-position filename="gtkwidget.h" line="994"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6272">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="redraw_on_allocate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6273">if %TRUE, the entire widget will be redrawn
  when it is allocated to a new size. Otherwise, only the
  new portion of the widget will be redrawn.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_scroll_adjustments"
              c:identifier="gtk_widget_set_scroll_adjustments">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5049">For widgets that support scrolling, sets the scroll adjustments and
returns %TRUE.  For widgets that don't support scrolling, does
nothing and returns %FALSE. Widgets that don't support scrolling
can be scrolled by placing them in a #GtkViewport, which does
support scrolling.</doc>
        <source-position filename="gtkwidget.h" line="920"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="5061">%TRUE if the widget supports scrolling</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5051">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="hadjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5052">an adjustment for horizontal scrolling, or %NULL</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
          <parameter name="vadjustment"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5053">an adjustment for vertical scrolling, or %NULL</doc>
            <type name="Adjustment" c:type="GtkAdjustment*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sensitive"
              c:identifier="gtk_widget_set_sensitive"
              glib:set-property="sensitive">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6304">Sets the sensitivity of a widget. A widget is sensitive if the user
can interact with it. Insensitive widgets are "grayed out" and the
user can't interact with them. Insensitive widgets are known as
"inactive", "disabled", or "ghosted" in some other toolkits.</doc>
        <source-position filename="gtkwidget.h" line="964"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6306">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="sensitive" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6307">%TRUE to make the widget sensitive</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size_request"
              c:identifier="gtk_widget_set_size_request">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="8000">Sets the minimum size of a widget; that is, the widget's size
request will be @width by @height. You can use this function to
force a widget to be either larger or smaller than it normally
would be.

In most cases, gtk_window_set_default_size() is a better choice for
toplevel windows than this function; setting the default size will
still allow users to shrink the window. Setting the size request
will force them to leave the window at least as large as the size
request. When dealing with window sizes,
gtk_window_set_geometry_hints() can be a useful function as well.

Note the inherent danger of setting any fixed size - themes,
translations into other languages, different fonts, and user action
can all change the appropriate size for a given widget. So, it's
basically impossible to hardcode a size that will always be
correct.

The size request of a widget is the smallest size a widget can
accept while still functioning well and drawing itself correctly.
However in some strange cases a widget may be allocated less than
its requested size, and in many cases a widget may be allocated more
space than it requested.

If the size request in a given direction is -1 (unset), then
the "natural" size request of the widget will be used instead.

Widgets can't actually be allocated a size less than 1 by 1, but
you can pass 0,0 to this function to mean "as small as possible."</doc>
        <source-position filename="gtkwidget.h" line="1027"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8002">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8003">width @widget should request, or -1 to unset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="8004">height @widget should request, or -1 to unset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_state" c:identifier="gtk_widget_set_state">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5848">This function is for use in widget implementations. Sets the state
of a widget (insensitive, prelighted, etc.) Usually you should set
the state using wrapper functions such as gtk_widget_set_sensitive().</doc>
        <source-position filename="gtkwidget.h" line="960"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5850">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5851">new state for @widget</doc>
            <type name="StateType" c:type="GtkStateType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_style"
              c:identifier="gtk_widget_set_style"
              glib:set-property="style">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6532">Sets the #GtkStyle for a widget (@widget-&gt;style). You probably don't
want to use this function; it interacts badly with themes, because
themes work by replacing the #GtkStyle. Instead, use
gtk_widget_modify_style().</doc>
        <source-position filename="gtkwidget.h" line="1138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6534">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="style"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="6535">a #GtkStyle, or %NULL to remove the effect of a previous
        gtk_widget_set_style() and go back to the default style</doc>
            <type name="Style" c:type="GtkStyle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_markup"
              c:identifier="gtk_widget_set_tooltip_markup"
              glib:set-property="tooltip-markup"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11182">Sets @markup as the contents of the tooltip, which is marked up with
 the &lt;link linkend="PangoMarkupFormat"&gt;Pango text markup language&lt;/link&gt;.

This function will take care of setting GtkWidget:has-tooltip to %TRUE
and of the default handler for the GtkWidget::query-tooltip signal.

See also the GtkWidget:tooltip-markup property and
gtk_tooltip_set_markup().</doc>
        <source-position filename="gtkwidget.h" line="1301"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11184">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="markup"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11185">the contents of the tooltip for @widget, or %NULL</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_text"
              c:identifier="gtk_widget_set_tooltip_text"
              glib:set-property="tooltip-text"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11137">Sets @text as the contents of the tooltip. This function will take
care of setting GtkWidget:has-tooltip to %TRUE and of the default
handler for the GtkWidget::query-tooltip signal.

See also the GtkWidget:tooltip-text property and gtk_tooltip_set_text().</doc>
        <source-position filename="gtkwidget.h" line="1298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11139">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11140">the contents of the tooltip for @widget</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_tooltip_window"
              c:identifier="gtk_widget_set_tooltip_window"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11030">Replaces the default, usually yellow, window used for displaying
tooltips with @custom_window. GTK+ will take care of showing and
hiding @custom_window at the right moment, to behave likewise as
the default tooltip window. If @custom_window is %NULL, the default
tooltip window will be used.

If the custom window should have the default theming it needs to
have the name "gtk-tooltip", see gtk_widget_set_name().</doc>
        <source-position filename="gtkwidget.h" line="1294"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11032">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="custom_window"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11033">a #GtkWindow, or %NULL</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uposition" c:identifier="gtk_widget_set_uposition">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7863">Sets the position of a widget. The funny "u" in the name comes from
the "user position" hint specified by the X Window System, and
exists for legacy reasons. This function doesn't work if a widget
is inside a container; it's only really useful on #GtkWindow.

Don't use this function to center dialogs over the main application
window; most window managers will do the centering on your behalf
if you call gtk_window_set_transient_for(), and it's really not
possible to get the centering to work correctly in all cases from
application code. But if you insist, use gtk_window_set_position()
to set #GTK_WIN_POS_CENTER_ON_PARENT, don't do the centering
manually.

Note that although @x and @y can be individually unset, the position
is not honoured unless both @x and @y are set.</doc>
        <source-position filename="gtkwidget.h" line="1034"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7865">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7866">x position; -1 to unset x; -2 to leave x unchanged</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7867">y position; -1 to unset y; -2 to leave y unchanged</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_usize"
              c:identifier="gtk_widget_set_usize"
              deprecated="1"
              deprecated-version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="7964">Sets the minimum size of a widget; that is, the widget's size
request will be @width by @height. You can use this function to
force a widget to be either larger or smaller than it is. The
strange "usize" name dates from the early days of GTK+, and derives
from X Window System terminology. In many cases,
gtk_window_set_default_size() is a better choice for toplevel
windows than this function; setting the default size will still
allow users to shrink the window. Setting the usize will force them
to leave the window at least as large as the usize. When dealing
with window sizes, gtk_window_set_geometry_hints() can be a useful
function as well.

Note the inherent danger of setting any fixed size - themes,
translations into other languages, different fonts, and user action
can all change the appropriate size for a given widget. So, it's
basically impossible to hardcode a size that will always be
correct.</doc>
        <doc-deprecated xml:space="preserve">Use gtk_widget_set_size_request() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="1037"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7966">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7967">minimum width, or -1 to unset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="7968">minimum height, or -1 to unset</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visible"
              c:identifier="gtk_widget_set_visible"
              glib:set-property="visible"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="5905">Sets the visibility state of @widget. Note that setting this to
%TRUE doesn't mean the widget is actually viewable, see
gtk_widget_get_visible().

This function simply calls gtk_widget_show() or gtk_widget_hide()
but is nicer to use when the visibility of the widget depends on
some condition.</doc>
        <source-position filename="gtkwidget.h" line="969"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5907">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="visible" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="5908">whether the widget should be shown or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_window"
              c:identifier="gtk_widget_set_window"
              version="2.18">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11337">Sets a widget's window. This function should only be used in a
widget's GtkWidget::realize() implementation. The %window passed is
usually either new window created with gdk_window_new(), or the
window of its parent widget as returned by
gtk_widget_get_parent_window().

Widgets must indicate whether they will create their own #GdkWindow
by calling gtk_widget_set_has_window(). This is usually done in the
widget's init() function.</doc>
        <source-position filename="gtkwidget.h" line="1009"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11339">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11340">a #GdkWindow</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="shape_combine_mask"
              c:identifier="gtk_widget_shape_combine_mask">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9395">Sets a shape for this widget's GDK window. This allows for
transparent windows etc., see gdk_window_shape_combine_mask()
for more information.</doc>
        <source-position filename="gtkwidget.h" line="1262"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9397">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="shape_mask"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9398">shape to be added, or %NULL to remove an existing shape</doc>
            <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
          </parameter>
          <parameter name="offset_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9399">X position of shape mask with respect to @window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="offset_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9400">Y position of shape mask with respect to @window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="gtk_widget_show">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3210">Flags a widget to be displayed. Any widget that isn't shown will
not appear on the screen. If you want to show all the widgets in a
container, it's easier to call gtk_widget_show_all() on the
container, instead of individually showing the widgets.

Remember that you have to show the containers containing a widget,
in addition to the widget itself, before it will appear onscreen.

When a toplevel container is shown, it is immediately realized and
mapped; other shown widgets are realized and mapped when their
toplevel container is realized and mapped.</doc>
        <source-position filename="gtkwidget.h" line="851"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3212">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="show_all" c:identifier="gtk_widget_show_all">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3364">Recursively shows a widget, and any child widgets (if the widget is
a container).</doc>
        <source-position filename="gtkwidget.h" line="854"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3366">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="show_now" c:identifier="gtk_widget_show_now">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3266">Shows a widget. If the widget is an unmapped toplevel widget
(i.e. a #GtkWindow that has not yet been shown), enter the main
loop and wait for the window to actually be mapped. Be careful;
because the main loop is running, anything can happen during
this function.</doc>
        <source-position filename="gtkwidget.h" line="852"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3268">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="size_allocate" c:identifier="gtk_widget_size_allocate">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4038">This function is only used by #GtkContainer subclasses, to assign a size
and position to their child widgets.</doc>
        <source-position filename="gtkwidget.h" line="888"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4040">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="allocation" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4041">position and size to be allocated to @widget</doc>
            <type name="Allocation" c:type="GtkAllocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size_request" c:identifier="gtk_widget_size_request">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3901">This function is typically used when implementing a #GtkContainer
subclass.  Obtains the preferred size of a widget. The container
uses this information to arrange its child widgets and decide what
size allocations to give them with gtk_widget_size_allocate().

You can also call this function from an application, with some
caveats. Most notably, getting a size request requires the widget
to be associated with a screen, because font information may be
needed. Multihead-aware applications should keep this in mind.

Also remember that the size request is not necessarily the size
a widget will actually be allocated.

See also gtk_widget_get_child_requisition().</doc>
        <source-position filename="gtkwidget.h" line="886"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3903">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="requisition" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3904">a #GtkRequisition to be filled in</doc>
            <type name="Requisition" c:type="GtkRequisition*"/>
          </parameter>
        </parameters>
      </method>
      <method name="style_attach"
              c:identifier="gtk_widget_style_attach"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="6486">This function attaches the widget's #GtkStyle to the widget's
#GdkWindow. It is a replacement for

&lt;programlisting&gt;
widget-&gt;style = gtk_style_attach (widget-&gt;style, widget-&gt;window);
&lt;/programlisting&gt;

and should only ever be called in a derived widget's "realize"
implementation which does not chain up to its parent class'
"realize" implementation, because one of the parent classes
(finally #GtkWidget) would attach the style itself.</doc>
        <source-position filename="gtkwidget.h" line="1135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="style" transfer-ownership="none">
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="style_get"
              c:identifier="gtk_widget_style_get"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="10016">Gets the values of a multiple style properties of @widget.</doc>
        <source-position filename="gtkwidget.h" line="1233"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10018">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10019">the name of the first property to get</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10020">pairs of property names and locations to
  return the property values, starting with the location for
  @first_property_name, terminated by %NULL.</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="style_get_property"
              c:identifier="gtk_widget_style_get_property">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9902">Gets the value of a style property of @widget.</doc>
        <source-position filename="gtkwidget.h" line="1227"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9904">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9905">the name of a style property</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9906">location to return the property value</doc>
            <type name="GObject.Value" c:type="GValue*"/>
          </parameter>
        </parameters>
      </method>
      <method name="style_get_valist"
              c:identifier="gtk_widget_style_get_valist"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9955">Non-vararg variant of gtk_widget_style_get(). Used primarily by language
bindings.</doc>
        <source-position filename="gtkwidget.h" line="1230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9957">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="first_property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9958">the name of the first property to get</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9959">a &lt;type&gt;va_list&lt;/type&gt; of pairs of property names and
    locations to return the property values, starting with the location
    for @first_property_name.</doc>
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </method>
      <method name="thaw_child_notify"
              c:identifier="gtk_widget_thaw_child_notify">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2975">Reverts the effect of a previous call to gtk_widget_freeze_child_notify().
This causes all queued #GtkWidget::child-notify signals on @widget to be
emitted.</doc>
        <source-position filename="gtkwidget.h" line="935"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2977">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="translate_coordinates"
              c:identifier="gtk_widget_translate_coordinates">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="4213">Translate coordinates relative to @src_widget's allocation to coordinates
relative to @dest_widget's allocations. In order to perform this
operation, both widgets must be realized, and must share a common
toplevel.</doc>
        <source-position filename="gtkwidget.h" line="1122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="4227">%FALSE if either widget was not realized, or there
  was no common ancestor. In this case, nothing is stored in
  *@dest_x and *@dest_y. Otherwise %TRUE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="src_widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4215">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
          <parameter name="dest_widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4216">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="src_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4217">X position relative to @src_widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="src_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4218">Y position relative to @src_widget</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="dest_x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4219">location to store X position relative to @dest_widget</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="dest_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4220">location to store Y position relative to @dest_widget</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="trigger_tooltip_query"
              c:identifier="gtk_widget_trigger_tooltip_query"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="11091">Triggers a tooltip query on the display where the toplevel of @widget
is located. See gtk_tooltip_trigger_tooltip_query() for more
information.</doc>
        <source-position filename="gtkwidget.h" line="1297"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="11093">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmap" c:identifier="gtk_widget_unmap">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3437">This function is only for use in widget implementations. Causes
a widget to be unmapped if it's currently mapped.</doc>
        <source-position filename="gtkwidget.h" line="859"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3439">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unparent" c:identifier="gtk_widget_unparent">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3076">This function is only for use in widget implementations.
Should be called by implementations of the remove method
on #GtkContainer, to dissociate a child from the container.</doc>
        <source-position filename="gtkwidget.h" line="850"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3078">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unrealize" c:identifier="gtk_widget_unrealize">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="3582">This function is only useful in widget implementations.
Causes a widget to be unrealized (frees all GDK resources
associated with the widget, such as @widget-&gt;window).</doc>
        <source-position filename="gtkwidget.h" line="861"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="3584">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref"
              c:identifier="gtk_widget_unref"
              deprecated="1"
              deprecated-version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9556">Inverse of gtk_widget_ref(). Equivalent to g_object_unref().</doc>
        <doc-deprecated xml:space="preserve">Use g_object_unref() instead.</doc-deprecated>
        <source-position filename="gtkwidget.h" line="842"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9558">a #GtkWidget</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="app-paintable"
                writable="1"
                transfer-ownership="none"
                setter="set_app_paintable"
                getter="get_app_paintable"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="can-default"
                writable="1"
                transfer-ownership="none"
                setter="set_can_default"
                getter="get_can_default"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="can-focus"
                writable="1"
                transfer-ownership="none"
                setter="set_can_focus"
                getter="get_can_focus"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="composite-child"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="double-buffered"
                version="2.18"
                writable="1"
                transfer-ownership="none"
                setter="set_double_buffered"
                getter="get_double_buffered"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="765">Whether or not the widget is double buffered.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="events"
                writable="1"
                transfer-ownership="none"
                setter="set_events"
                getter="get_events"
                default-value="GDK_STRUCTURE_MASK">
        <type name="Gdk.EventMask"/>
      </property>
      <property name="extension-events"
                writable="1"
                transfer-ownership="none"
                setter="set_extension_events"
                getter="get_extension_events"
                default-value="GDK_EXTENSION_EVENTS_NONE">
        <type name="Gdk.ExtensionMode"/>
      </property>
      <property name="has-default"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-focus"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="has-tooltip"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_has_tooltip"
                getter="get_has_tooltip"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="685">Enables or disables the emission of #GtkWidget::query-tooltip on @widget.
A value of %TRUE indicates that @widget can have a tooltip, in this case
the widget will be queried using #GtkWidget::query-tooltip to determine
whether it will provide a tooltip or not.

Note that setting this property to %TRUE for the first time will change
the event masks of the GdkWindows of this widget to include leave-notify
and motion-notify events.  This cannot and will not be undone when the
property is set to %FALSE again.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="height-request"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="is-focus"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name"
                writable="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="no-show-all"
                writable="1"
                transfer-ownership="none"
                setter="set_no_show_all"
                getter="get_no_show_all"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="parent"
                writable="1"
                transfer-ownership="none"
                setter="set_parent"
                getter="get_parent">
        <type name="Container"/>
      </property>
      <property name="receives-default"
                writable="1"
                transfer-ownership="none"
                setter="set_receives_default"
                getter="get_receives_default"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sensitive"
                writable="1"
                transfer-ownership="none"
                setter="set_sensitive"
                getter="get_sensitive"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="style"
                writable="1"
                transfer-ownership="none"
                setter="set_style"
                getter="get_style">
        <type name="Style"/>
      </property>
      <property name="tooltip-markup"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_markup"
                getter="get_tooltip_markup"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="728">Sets the text of tooltip to be the given string, which is marked up
with the &lt;link linkend="PangoMarkupFormat"&gt;Pango text markup language&lt;/link&gt;.
Also see gtk_tooltip_set_markup().

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL: #GtkWidget:has-tooltip
will automatically be set to %TRUE and there will be taken care of
#GtkWidget::query-tooltip in the default signal handler.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tooltip-text"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_tooltip_text"
                getter="get_tooltip_text"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="707">Sets the text of tooltip to be the given string.

Also see gtk_tooltip_set_text().

This is a convenience property which will take care of getting the
tooltip shown if the given string is not %NULL: #GtkWidget:has-tooltip
will automatically be set to %TRUE and there will be taken care of
#GtkWidget::query-tooltip in the default signal handler.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="visible"
                writable="1"
                transfer-ownership="none"
                setter="set_visible"
                getter="get_visible"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="width-request"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="window"
                version="2.14"
                transfer-ownership="none"
                getter="get_window">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="750">The widget's window if it is realized, %NULL otherwise.</doc>
        <type name="Gdk.Window"/>
      </property>
      <field name="object">
        <type name="Object" c:type="GtkObject"/>
      </field>
      <field name="private_flags">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="state">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="saved_state">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="name">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="style">
        <type name="Style" c:type="GtkStyle*"/>
      </field>
      <field name="requisition">
        <type name="Requisition" c:type="GtkRequisition"/>
      </field>
      <field name="allocation">
        <type name="Allocation" c:type="GtkAllocation"/>
      </field>
      <field name="window">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="parent">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <glib:signal name="accel-closures-changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="button-press-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1135">The ::button-press-event signal will be emitted when a button
(typically from a mouse) is pressed.

To receive this signal, the #GdkWindow associated to the
widget needs to enable the #GDK_BUTTON_PRESS_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1149">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1138">the #GdkEventButton which triggered
  this signal.</doc>
            <type name="Gdk.EventButton"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="button-release-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1162">The ::button-release-event signal will be emitted when a button
(typically from a mouse) is released.

To receive this signal, the #GdkWindow associated to the
widget needs to enable the #GDK_BUTTON_RELEASE_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1176">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1165">the #GdkEventButton which triggered
  this signal.</doc>
            <type name="Gdk.EventButton"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="can-activate-accel" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2380">Determines whether an accelerator that activates the signal
identified by @signal_id can currently be activated.
This signal is present to allow applications and derived
widgets to override the default #GtkWidget handling
for determining whether an accelerator can be activated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2391">%TRUE if the signal can be activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="signal_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2383">the ID of a signal installed on @widget</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="child-notify"
                   when="first"
                   no-recurse="1"
                   detailed="1"
                   no-hooks="1">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1009">The ::child-notify signal is emitted for each
&lt;link linkend="child-properties"&gt;child property&lt;/link&gt;  that has
changed on an object. The signal's detail holds the property name.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1012">the #GParamSpec of the changed child property</doc>
            <type name="GObject.ParamSpec"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="client-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2148">The ::client-event will be emitted when the @widget's window
receives a message (via a ClientMessage event) from another
application.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2158">%TRUE to stop other handlers from being invoked for
  the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2151">the #GdkEventClient which triggered
  this signal.</doc>
            <type name="Gdk.EventClient"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="composited-changed" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1243">The ::composited-changed signal is emitted when the composited
status of @widget&lt;!-- --&gt;s screen changes.
See gdk_screen_is_composited().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="configure-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1470">The ::configure-event signal will be emitted when the size, position or
stacking of the @widget's window has changed.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
automatically for all new windows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1483">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1473">the #GdkEventConfigure which triggered
  this signal.</doc>
            <type name="Gdk.EventConfigure"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="damage-event" when="last" version="2.14">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2222">Emitted when a redirected window belonging to @widget gets drawn into.
The region/area members of the event shows what area of the redirected
drawable was drawn into.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2231">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2225">the #GdkEventExpose event</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="delete-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1284">The ::delete-event signal is emitted if a user requests that
a toplevel window is closed. The default handler for this signal
destroys the window. Connecting gtk_widget_hide_on_delete() to
this signal will cause the window to be hidden instead, so that
it can later be shown again without reconstructing it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1295">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1287">the event which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="destroy-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1308">The ::destroy-event signal is emitted when a #GdkWindow is destroyed.
You rarely get this signal, because most widgets disconnect themselves
from their window before they destroy it, so no widget owns the
window at destroy time.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
automatically for all new windows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1322">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1311">the event which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="direction-changed" when="first">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="966">The ::direction-changed signal is emitted when the text direction
of a widget changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previous_direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="969">the previous text direction of @widget</doc>
            <type name="TextDirection"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-begin" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1789">The ::drag-begin signal is emitted on the drag source when a drag is
started. A typical reason to connect to this signal is to set up a
custom drag icon with gtk_drag_source_set_icon().

Note that some widgets set up a drag icon in the default handler of
this signal, so you may have to use g_signal_connect_after() to
override what the default handler did.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1792">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-data-delete" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1831">The ::drag-data-delete signal is emitted on the drag source when a drag
with the action %GDK_ACTION_MOVE is successfully completed. The signal
handler is responsible for deleting the data that has been dropped. What
"delete" means depends on the context of the drag operation.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1834">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-data-get" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2016">The ::drag-data-get signal is emitted on the drag source when the drop
site requests the data which is dragged. It is the responsibility of
the signal handler to fill @data with the data in the format which
is indicated by @info. See gtk_selection_data_set() and
gtk_selection_data_set_text().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2019">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2020">the #GtkSelectionData to be filled with the dragged data</doc>
            <type name="SelectionData"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2021">the info that has been registered with the target in the
       #GtkTargetList</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2023">the timestamp at which the data was requested</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-data-received" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2044">The ::drag-data-received signal is emitted on the drop site when the
dragged data has been received. If the data was received in order to
determine whether the drop will be accepted, the handler is expected
to call gdk_drag_status() and &lt;emphasis&gt;not&lt;/emphasis&gt; finish the drag.
If the data was received in response to a #GtkWidget::drag-drop signal
(and this is the last target to be received), the handler for this
signal is expected to process the received data and then call
gtk_drag_finish(), setting the @success parameter depending on whether
the data was processed successfully.

The handler may inspect and modify @drag_context-&gt;action before calling
gtk_drag_finish(), e.g. to implement %GDK_ACTION_ASK as shown in the
following example:
|[
void
drag_data_received (GtkWidget          *widget,
                    GdkDragContext     *drag_context,
                    gint                x,
                    gint                y,
                    GtkSelectionData   *data,
                    guint               info,
                    guint               time)
{
  if ((data-&gt;length &gt;= 0) &amp;&amp; (data-&gt;format == 8))
    {
      if (drag_context-&gt;action == GDK_ACTION_ASK)
        {
          GtkWidget *dialog;
          gint response;
          
          dialog = gtk_message_dialog_new (NULL,
                                           GTK_DIALOG_MODAL |
                                           GTK_DIALOG_DESTROY_WITH_PARENT,
                                           GTK_MESSAGE_INFO,
                                           GTK_BUTTONS_YES_NO,
                                           "Move the data ?\n");
          response = gtk_dialog_run (GTK_DIALOG (dialog));
          gtk_widget_destroy (dialog);
            
          if (response == GTK_RESPONSE_YES)
            drag_context-&gt;action = GDK_ACTION_MOVE;
          else
            drag_context-&gt;action = GDK_ACTION_COPY;
         }
         
      gtk_drag_finish (drag_context, TRUE, FALSE, time);
      return;
    }
      
   gtk_drag_finish (drag_context, FALSE, FALSE, time);
 }
]|</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2047">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2048">where the drop happened</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2049">where the drop happened</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2050">the received data</doc>
            <type name="SelectionData"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2051">the info that has been registered with the target in the
       #GtkTargetList</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2053">the timestamp at which the data was received</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-drop" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1983">The ::drag-drop signal is emitted on the drop site when the user drops
the data onto the widget. The signal handler must determine whether
the cursor position is in a drop zone or not. If it is not in a drop
zone, it returns %FALSE and no further processing is necessary.
Otherwise, the handler returns %TRUE. In this case, the handler must
ensure that gtk_drag_finish() is called to let the source know that
the drop is done. The call to gtk_drag_finish() can be done either
directly or in a #GtkWidget::drag-data-received handler which gets
triggered by calling gtk_drag_get_data() to receive the data for one
or more of the supported targets.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1990">whether the cursor position is in a drop zone</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1986">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1987">the x coordinate of the current cursor position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1988">the y coordinate of the current cursor position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1989">the timestamp of the motion event</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-end" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1812">The ::drag-end signal is emitted on the drag source when a drag is
finished.  A typical reason to connect to this signal is to undo
things done in #GtkWidget::drag-begin.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1815">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-failed" when="last" version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1851">The ::drag-failed signal is emitted on the drag source when a drag has
failed. The signal handler may hook custom code to handle a failed DND
operation based on the type of error, it returns %TRUE is the failure has
been already handled (not showing the default "drag operation failed"
animation), otherwise it returns %FALSE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1863">%TRUE if the failed drag operation has been already handled.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1854">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1855">the result of the drag operation</doc>
            <type name="DragResult"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-leave" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1767">The ::drag-leave signal is emitted on the drop site when the cursor
leaves the widget. A typical reason to connect to this signal is to
undo things done in #GtkWidget::drag-motion, e.g. undo highlighting
with gtk_drag_unhighlight()</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1770">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1771">the timestamp of the motion event</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="drag-motion" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1877">The drag-motion signal is emitted on the drop site when the user
moves the cursor over the widget during a drag. The signal handler
must determine whether the cursor position is in a drop zone or not.
If it is not in a drop zone, it returns %FALSE and no further processing
is necessary. Otherwise, the handler returns %TRUE. In this case, the
handler is responsible for providing the necessary information for
displaying feedback to the user, by calling gdk_drag_status().

If the decision whether the drop will be accepted or rejected can't be
made based solely on the cursor position and the type of the data, the
handler may inspect the dragged data by calling gtk_drag_get_data() and
defer the gdk_drag_status() call to the #GtkWidget::drag-data-received
handler. Note that you cannot not pass #GTK_DEST_DEFAULT_DROP,
#GTK_DEST_DEFAULT_MOTION or #GTK_DEST_DEFAULT_ALL to gtk_drag_dest_set()
when using the drag-motion signal that way.

Also note that there is no drag-enter signal. The drag receiver has to
keep track of whether he has received any drag-motion signals since the
last #GtkWidget::drag-leave and if not, treat the drag-motion signal as
an "enter" signal. Upon an "enter", the handler will typically highlight
the drop site with gtk_drag_highlight().
|[
static void
drag_motion (GtkWidget *widget,
             GdkDragContext *context,
             gint x,
             gint y,
             guint time)
{
  GdkAtom target;
 
  PrivateData *private_data = GET_PRIVATE_DATA (widget);
 
  if (!private_data-&gt;drag_highlight)
   {
     private_data-&gt;drag_highlight = 1;
     gtk_drag_highlight (widget);
   }
 
  target = gtk_drag_dest_find_target (widget, context, NULL);
  if (target == GDK_NONE)
    gdk_drag_status (context, 0, time);
  else
   {
     private_data-&gt;pending_status = context-&gt;suggested_action;
     gtk_drag_get_data (widget, context, target, time);
   }
 
  return TRUE;
}
  
static void
drag_data_received (GtkWidget        *widget,
                    GdkDragContext   *context,
                    gint              x,
                    gint              y,
                    GtkSelectionData *selection_data,
                    guint             info,
                    guint             time)
{
  PrivateData *private_data = GET_PRIVATE_DATA (widget);
  
  if (private_data-&gt;suggested_action)
   {
     private_data-&gt;suggested_action = 0;
     
    /&amp;ast; We are getting this data due to a request in drag_motion,
     * rather than due to a request in drag_drop, so we are just
     * supposed to call gdk_drag_status (), not actually paste in
     * the data.
     &amp;ast;/
     str = gtk_selection_data_get_text (selection_data);
     if (!data_is_acceptable (str))
       gdk_drag_status (context, 0, time);
     else
       gdk_drag_status (context, private_data-&gt;suggested_action, time);
   }
  else
   {
     /&amp;ast; accept the drop &amp;ast;/
   }
}
]|</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1884">whether the cursor position is in a drop zone</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="drag_context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1880">the drag context</doc>
            <type name="Gdk.DragContext"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1881">the x coordinate of the current cursor position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1882">the y coordinate of the current cursor position</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1883">the timestamp of the motion event</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="enter-notify-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1416">The ::enter-notify-event will be emitted when the pointer enters
the @widget's window.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_ENTER_NOTIFY_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1430">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1419">the #GdkEventCrossing which triggered
  this signal.</doc>
            <type name="Gdk.EventCrossing"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1088">The GTK+ main loop will emit three signals for each GDK event delivered
to a widget: one generic ::event signal, another, more specific,
signal that matches the type of event delivered (e.g.
#GtkWidget::key-press-event) and finally a generic
#GtkWidget::event-after signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1099">%TRUE to stop other handlers from being invoked for the event
and to cancel the emission of the second specific ::event signal.
  %FALSE to propagate the event further and to allow the emission of
  the second signal. The ::event-after signal is emitted regardless of
  the return value.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1091">the #GdkEvent which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="event-after">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1115">After the emission of the #GtkWidget::event signal and (optionally)
the second more specific signal, ::event-after will be emitted
regardless of the previous two signals handlers return values.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1118">the #GdkEvent which triggered this signal</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="expose-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1335">The ::expose-event signal is emitted when an area of a previously
obscured #GdkWindow is made visible and needs to be redrawn.
#GTK_NO_WINDOW widgets will get a synthesized event from their parent
widget.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_EXPOSURE_MASK mask.

Note that the ::expose-event signal has been replaced by a ::draw
signal in GTK+ 3. The &lt;link linkend="http://library.gnome.org/devel/gtk3/3.0/gtk-migrating-2-to-3.html"&gt;GTK+ 3 migration guide&lt;/link&gt;
for hints on how to port from ::expose-event to ::draw.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1353">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1338">the #GdkEventExpose which triggered
  this signal.</doc>
            <type name="Gdk.EventExpose"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="focus" when="last">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1061">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="direction" transfer-ownership="none">
            <type name="DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="focus-in-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1496">The ::focus-in-event signal will be emitted when the keyboard focus
enters the @widget's window.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_FOCUS_CHANGE_MASK mask.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1508">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1499">the #GdkEventFocus which triggered
  this signal.</doc>
            <type name="Gdk.EventFocus"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="focus-out-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1521">The ::focus-out-event signal will be emitted when the keyboard focus
leaves the @widget's window.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_FOCUS_CHANGE_MASK mask.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1533">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1524">the #GdkEventFocus which triggered this
  signal.</doc>
            <type name="Gdk.EventFocus"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="grab-broken-event" when="last" version="2.8">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2245">Emitted when a pointer or keyboard grab on a window belonging
to @widget gets broken.

On X11, this happens when the grab window becomes unviewable
(i.e. it or one of its ancestors is unmapped), or if the same
application grabs the pointer or keyboard again.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2257">%TRUE to stop other handlers from being invoked for
  the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2248">the #GdkEventGrabBroken event</doc>
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="grab-focus" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="grab-notify" when="first">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="984">The ::grab-notify signal is emitted when a widget becomes
shadowed by a GTK+ grab (not a pointer or keyboard grab) on
another widget, or when it becomes unshadowed due to a grab
being removed.

A widget is shadowed by a gtk_grab_add() when the topmost
grab widget in the grab stack of its window group is not
its ancestor.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="was_grabbed" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="987">%FALSE if the widget becomes shadowed, %TRUE
              if it becomes unshadowed</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="hide" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="hierarchy-changed" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="925">The ::hierarchy-changed signal is emitted when the
anchored state of a widget changes. A widget is
&lt;firstterm&gt;anchored&lt;/firstterm&gt; when its toplevel
ancestor is a #GtkWindow. This signal is emitted when
a widget changes from un-anchored to anchored or vice-versa.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previous_toplevel"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="928">the previous toplevel ancestor, or %NULL
  if the widget was previously unanchored</doc>
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-press-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1366">The ::key-press-event signal is emitted when a key is pressed.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_KEY_PRESS_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1378">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1369">the #GdkEventKey which triggered this signal.</doc>
            <type name="Gdk.EventKey"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="key-release-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1391">The ::key-release-event signal is emitted when a key is pressed.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_KEY_RELEASE_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1403">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1394">the #GdkEventKey which triggered this signal.</doc>
            <type name="Gdk.EventKey"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="keynav-failed" when="last" version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1260">Gets emitted if keyboard navigation fails.
See gtk_widget_keynav_failed() for details.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1268">%TRUE if stopping keyboard navigation is fine, %FALSE
         if the emitting widget should try to handle the keyboard
         navigation attempt in its parent container(s).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1263">the direction of movement</doc>
            <type name="DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="leave-notify-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1443">The ::leave-notify-event will be emitted when the pointer leaves
the @widget's window.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_LEAVE_NOTIFY_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1457">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1446">the #GdkEventCrossing which triggered
  this signal.</doc>
            <type name="Gdk.EventCrossing"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="map" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="map-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1546">The ::map-event signal will be emitted when the @widget's window is
mapped. A window is mapped when it becomes visible on the screen.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
automatically for all new windows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1558">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1549">the #GdkEventAny which triggered this signal.</doc>
            <type name="Gdk.EventAny"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="mnemonic-activate" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="arg1" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="motion-notify-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1216">The ::motion-notify-event signal is emitted when the pointer moves
over the widget's #GdkWindow.

To receive this signal, the #GdkWindow associated to the widget
needs to enable the #GDK_POINTER_MOTION_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1230">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1219">the #GdkEventMotion which triggered
  this signal.</doc>
            <type name="Gdk.EventMotion"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="move-focus" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="direction" transfer-ownership="none">
            <type name="DirectionType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="no-expose-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2171">The ::no-expose-event will be emitted when the @widget's window is
drawn as a copy of another #GdkDrawable (with gdk_draw_drawable() or
gdk_window_copy_area()) which was completely unobscured. If the source
window was partially obscured #GdkEventExpose events will be generated
for those areas.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2183">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2174">the #GdkEventNoExpose which triggered
  this signal.</doc>
            <type name="Gdk.EventNoExpose"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="parent-set" when="first">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="906">The ::parent-set signal is emitted when a new parent
has been set on a widget.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="909">the previous parent, or %NULL if the widget
  just got its initial parent.</doc>
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="popup-menu" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2311">This signal gets emitted whenever a widget should pop up a context
menu. This usually happens through the standard key binding mechanism;
by pressing a certain key while a widget is focused, the user can cause
the widget to pop up a menu.  For example, the #GtkEntry widget creates
a menu with clipboard commands. See &lt;xref linkend="checklist-popup-menu"/&gt;
for an example of how to use this signal.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2322">%TRUE if a menu was activated</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="property-notify-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1596">The ::property-notify-event signal will be emitted when a property on
the @widget's window has been changed or deleted.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_PROPERTY_CHANGE_MASK mask.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1608">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1599">the #GdkEventProperty which triggered
  this signal.</doc>
            <type name="Gdk.EventProperty"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="proximity-in-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1719">To receive this signal the #GdkWindow associated to the widget needs
to enable the #GDK_PROXIMITY_IN_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1730">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1722">the #GdkEventProximity which triggered
  this signal.</doc>
            <type name="Gdk.EventProximity"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="proximity-out-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1743">To receive this signal the #GdkWindow associated to the widget needs
to enable the #GDK_PROXIMITY_OUT_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1754">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1746">the #GdkEventProximity which triggered
  this signal.</doc>
            <type name="Gdk.EventProximity"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="query-tooltip" when="last" version="2.12">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2271">Emitted when #GtkWidget:has-tooltip is %TRUE and the #GtkSettings:gtk-tooltip-timeout
has expired with the cursor hovering "above" @widget; or emitted when @widget got
focus in keyboard mode.

Using the given coordinates, the signal handler should determine
whether a tooltip should be shown for @widget. If this is the case
%TRUE should be returned, %FALSE otherwise.  Note that if
@keyboard_mode is %TRUE, the values of @x and @y are undefined and
should not be used.

The signal handler is free to manipulate @tooltip with the therefore
destined function calls.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2294">%TRUE if @tooltip should be shown right now, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2274">the x coordinate of the cursor position where the request has
    been emitted, relative to @widget-&gt;window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2276">the y coordinate of the cursor position where the request has
    been emitted, relative to @widget-&gt;window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="keyboard_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2278">%TRUE if the tooltip was trigged using the keyboard</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="tooltip" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2279">a #GtkTooltip</doc>
            <type name="Tooltip"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="realize" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="screen-changed" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2361">The ::screen-changed signal gets emitted when the
screen of a widget has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previous_screen"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2364">the previous screen, or %NULL if the
  widget was not associated with a screen before</doc>
            <type name="Gdk.Screen"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="scroll-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1189">The ::scroll-event signal is emitted when a button in the 4 to 7
range is pressed. Wheel mice are usually configured to generate
button press events for buttons 4 and 5 when the wheel is turned.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_BUTTON_PRESS_MASK mask.

This signal will be sent to the grab widget if there is one.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1204">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1192">the #GdkEventScroll which triggered
  this signal.</doc>
            <type name="Gdk.EventScroll"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-clear-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1621">The ::selection-clear-event signal will be emitted when the
the @widget's window has lost ownership of a selection.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1630">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1624">the #GdkEventSelection which triggered
  this signal.</doc>
            <type name="Gdk.EventSelection"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-get" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="SelectionData"/>
          </parameter>
          <parameter name="info" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-notify-event" when="last">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1671">%TRUE to stop other handlers from being invoked for the event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-received" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="SelectionData"/>
          </parameter>
          <parameter name="time" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="selection-request-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1643">The ::selection-request-event signal will be emitted when
another client requests ownership of the selection owned by
the @widget's window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1653">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1646">the #GdkEventSelection which triggered
  this signal.</doc>
            <type name="Gdk.EventSelection"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-help" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="help_type" transfer-ownership="none">
            <type name="WidgetHelpType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="size-allocate" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="allocation" transfer-ownership="none">
            <type name="Gdk.Rectangle"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="size-request" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="requisition" transfer-ownership="none">
            <type name="Requisition"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="state-changed" when="first">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="888">The ::state-changed signal is emitted when the widget state changes.
See gtk_widget_get_state().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="891">the previous state</doc>
            <type name="StateType"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="style-set" when="first">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="947">The ::style-set signal is emitted when a new style has been set
on a widget. Note that style-modifying functions like
gtk_widget_modify_base() also cause this signal to be emitted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previous_style"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="950">the previous style, or %NULL if the widget
  just got its initial style</doc>
            <type name="Style"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unmap" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unmap-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="1571">The ::unmap-event signal will be emitted when the @widget's window is
unmapped. A window is unmapped when it becomes invisible on the screen.

To receive this signal, the #GdkWindow associated to the widget needs
to enable the #GDK_STRUCTURE_MASK mask. GDK will enable this mask
automatically for all new windows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="1583">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="1574">the #GdkEventAny which triggered this signal</doc>
            <type name="Gdk.EventAny"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="unrealize" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="visibility-notify-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2123">The ::visibility-notify-event will be emitted when the @widget's window
is obscured or unobscured.

To receive this signal the #GdkWindow associated to the widget needs
to enable the #GDK_VISIBILITY_NOTIFY_MASK mask.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2135">%TRUE to stop other handlers from being invoked for the event.
  %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2126">the #GdkEventVisibility which
  triggered this signal.</doc>
            <type name="Gdk.EventVisibility"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-state-event" when="last">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="2196">The ::window-state-event will be emitted when the state of the
toplevel window associated to the @widget changes.

To receive this signal the #GdkWindow associated to the widget
needs to enable the #GDK_STRUCTURE_MASK mask. GDK will enable
this mask automatically for all new windows.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="2209">%TRUE to stop other handlers from being invoked for the
  event. %FALSE to propagate the event further.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="2199">the #GdkEventWindowState which
  triggered this signal.</doc>
            <type name="Gdk.EventWindowState"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="WidgetAuxInfo" c:type="GtkWidgetAuxInfo">
      <source-position filename="gtkwidget.h" line="824"/>
      <field name="x" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="x_set" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="y_set" writable="1" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <record name="WidgetClass"
            c:type="GtkWidgetClass"
            glib:is-gtype-struct-for="Widget">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="596">&lt;structfield&gt;activate_signal&lt;/structfield&gt;
The signal to emit when a widget of this class is activated,
gtk_widget_activate() handles the emission. Implementation of this
signal is optional.


&lt;structfield&gt;set_scroll_adjustment_signal&lt;/structfield&gt;
This signal is emitted  when a widget of this class is added
to a scrolling aware parent, gtk_widget_set_scroll_adjustments()
handles the emission.
Implementation of this signal is optional.</doc>
      <source-position filename="gtkwidget.h" line="814"/>
      <field name="parent_class">
        <type name="ObjectClass" c:type="GtkObjectClass"/>
      </field>
      <field name="activate_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="set_scroll_adjustments_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="dispatch_child_properties_changed">
        <callback name="dispatch_child_properties_changed">
          <source-position filename="gtkwidget.h" line="633"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="n_pspecs" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="pspecs" transfer-ownership="none">
              <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show">
        <callback name="show">
          <source-position filename="gtkwidget.h" line="638"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3212">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_all">
        <callback name="show_all">
          <source-position filename="gtkwidget.h" line="639"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3366">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide">
        <callback name="hide">
          <source-position filename="gtkwidget.h" line="640"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3302">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_all">
        <callback name="hide_all">
          <source-position filename="gtkwidget.h" line="641"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3389">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="map">
        <callback name="map">
          <source-position filename="gtkwidget.h" line="642"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3413">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unmap">
        <callback name="unmap">
          <source-position filename="gtkwidget.h" line="643"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3439">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="realize">
        <callback name="realize">
          <source-position filename="gtkwidget.h" line="644"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3505">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unrealize">
        <callback name="unrealize">
          <source-position filename="gtkwidget.h" line="645"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3584">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_request">
        <callback name="size_request">
          <source-position filename="gtkwidget.h" line="646"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3903">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="requisition" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="3904">a #GtkRequisition to be filled in</doc>
              <type name="Requisition" c:type="GtkRequisition*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_allocate">
        <callback name="size_allocate">
          <source-position filename="gtkwidget.h" line="648"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4040">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="allocation" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4041">position and size to be allocated to @widget</doc>
              <type name="Allocation" c:type="GtkAllocation*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="state_changed">
        <callback name="state_changed">
          <source-position filename="gtkwidget.h" line="650"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_state" transfer-ownership="none">
              <type name="StateType" c:type="GtkStateType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="parent_set">
        <callback name="parent_set">
          <source-position filename="gtkwidget.h" line="652"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_parent" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hierarchy_changed">
        <callback name="hierarchy_changed">
          <source-position filename="gtkwidget.h" line="654"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_toplevel" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="style_set">
        <callback name="style_set">
          <source-position filename="gtkwidget.h" line="656"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_style" transfer-ownership="none">
              <type name="Style" c:type="GtkStyle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="direction_changed">
        <callback name="direction_changed">
          <source-position filename="gtkwidget.h" line="658"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_direction" transfer-ownership="none">
              <type name="TextDirection" c:type="GtkTextDirection"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="grab_notify">
        <callback name="grab_notify">
          <source-position filename="gtkwidget.h" line="660"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="was_grabbed" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="child_notify">
        <callback name="child_notify">
          <source-position filename="gtkwidget.h" line="662"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="2934">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="pspec" transfer-ownership="none">
              <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="mnemonic_activate">
        <callback name="mnemonic_activate">
          <source-position filename="gtkwidget.h" line="666"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4701">%TRUE if the signal has been handled</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4692">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="group_cycling" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4693">%TRUE if there are other widgets with the same mnemonic</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="grab_focus">
        <callback name="grab_focus">
          <source-position filename="gtkwidget.h" line="670"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="5311">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus">
        <callback name="focus">
          <source-position filename="gtkwidget.h" line="671"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <type name="DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="event">
        <callback name="event">
          <source-position filename="gtkwidget.h" line="675"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4789">return from the event signal emission (%TRUE if
              the event was handled)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4777">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4778">a #GdkEvent</doc>
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="button_press_event">
        <callback name="button_press_event">
          <source-position filename="gtkwidget.h" line="677"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="button_release_event">
        <callback name="button_release_event">
          <source-position filename="gtkwidget.h" line="679"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventButton" c:type="GdkEventButton*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="scroll_event">
        <callback name="scroll_event">
          <source-position filename="gtkwidget.h" line="681"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventScroll" c:type="GdkEventScroll*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="motion_notify_event">
        <callback name="motion_notify_event">
          <source-position filename="gtkwidget.h" line="683"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventMotion" c:type="GdkEventMotion*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="delete_event">
        <callback name="delete_event">
          <source-position filename="gtkwidget.h" line="685"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroy_event">
        <callback name="destroy_event">
          <source-position filename="gtkwidget.h" line="687"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="expose_event">
        <callback name="expose_event">
          <source-position filename="gtkwidget.h" line="689"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventExpose" c:type="GdkEventExpose*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_press_event">
        <callback name="key_press_event">
          <source-position filename="gtkwidget.h" line="691"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="key_release_event">
        <callback name="key_release_event">
          <source-position filename="gtkwidget.h" line="693"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="enter_notify_event">
        <callback name="enter_notify_event">
          <source-position filename="gtkwidget.h" line="695"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="leave_notify_event">
        <callback name="leave_notify_event">
          <source-position filename="gtkwidget.h" line="697"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventCrossing" c:type="GdkEventCrossing*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="configure_event">
        <callback name="configure_event">
          <source-position filename="gtkwidget.h" line="699"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventConfigure" c:type="GdkEventConfigure*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_in_event">
        <callback name="focus_in_event">
          <source-position filename="gtkwidget.h" line="701"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus_out_event">
        <callback name="focus_out_event">
          <source-position filename="gtkwidget.h" line="703"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventFocus" c:type="GdkEventFocus*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="map_event">
        <callback name="map_event">
          <source-position filename="gtkwidget.h" line="705"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unmap_event">
        <callback name="unmap_event">
          <source-position filename="gtkwidget.h" line="707"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="property_notify_event">
        <callback name="property_notify_event">
          <source-position filename="gtkwidget.h" line="709"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventProperty" c:type="GdkEventProperty*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_clear_event">
        <callback name="selection_clear_event">
          <source-position filename="gtkwidget.h" line="711"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_request_event">
        <callback name="selection_request_event">
          <source-position filename="gtkwidget.h" line="713"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_notify_event">
        <callback name="selection_notify_event">
          <source-position filename="gtkwidget.h" line="715"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="proximity_in_event">
        <callback name="proximity_in_event">
          <source-position filename="gtkwidget.h" line="717"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="proximity_out_event">
        <callback name="proximity_out_event">
          <source-position filename="gtkwidget.h" line="719"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventProximity" c:type="GdkEventProximity*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="visibility_notify_event">
        <callback name="visibility_notify_event">
          <source-position filename="gtkwidget.h" line="721"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventVisibility" c:type="GdkEventVisibility*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="client_event">
        <callback name="client_event">
          <source-position filename="gtkwidget.h" line="723"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventClient" c:type="GdkEventClient*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="no_expose_event">
        <callback name="no_expose_event">
          <source-position filename="gtkwidget.h" line="725"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventAny" c:type="GdkEventAny*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_state_event">
        <callback name="window_state_event">
          <source-position filename="gtkwidget.h" line="727"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventWindowState" c:type="GdkEventWindowState*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_get">
        <callback name="selection_get">
          <source-position filename="gtkwidget.h" line="731"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="selection_received">
        <callback name="selection_received">
          <source-position filename="gtkwidget.h" line="735"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_begin">
        <callback name="drag_begin">
          <source-position filename="gtkwidget.h" line="740"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_end">
        <callback name="drag_end">
          <source-position filename="gtkwidget.h" line="742"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_get">
        <callback name="drag_data_get">
          <source-position filename="gtkwidget.h" line="744"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_delete">
        <callback name="drag_data_delete">
          <source-position filename="gtkwidget.h" line="749"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_leave">
        <callback name="drag_leave">
          <source-position filename="gtkwidget.h" line="753"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_motion">
        <callback name="drag_motion">
          <source-position filename="gtkwidget.h" line="756"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_drop">
        <callback name="drag_drop">
          <source-position filename="gtkwidget.h" line="761"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="drag_data_received">
        <callback name="drag_data_received">
          <source-position filename="gtkwidget.h" line="766"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="context" transfer-ownership="none">
              <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="selection_data" transfer-ownership="none">
              <type name="SelectionData" c:type="GtkSelectionData*"/>
            </parameter>
            <parameter name="info" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="time_" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="popup_menu">
        <callback name="popup_menu">
          <source-position filename="gtkwidget.h" line="775"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_help">
        <callback name="show_help">
          <source-position filename="gtkwidget.h" line="782"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="help_type" transfer-ownership="none">
              <type name="WidgetHelpType" c:type="GtkWidgetHelpType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_accessible">
        <callback name="get_accessible">
          <source-position filename="gtkwidget.h" line="787"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="10234">the #AtkObject associated with @widget</doc>
            <type name="Atk.Object" c:type="AtkObject*"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="10219">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="screen_changed">
        <callback name="screen_changed">
          <source-position filename="gtkwidget.h" line="789"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="previous_screen" transfer-ownership="none">
              <type name="Gdk.Screen" c:type="GdkScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_activate_accel">
        <callback name="can_activate_accel">
          <source-position filename="gtkwidget.h" line="791"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="4370">%TRUE if the accelerator can be activated.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4359">a #GtkWidget</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="signal_id" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwidget.c"
                   line="4360">the ID of a signal installed on @widget</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="grab_broken_event">
        <callback name="grab_broken_event">
          <source-position filename="gtkwidget.h" line="795"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.EventGrabBroken" c:type="GdkEventGrabBroken*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="composited_changed">
        <callback name="composited_changed">
          <source-position filename="gtkwidget.h" line="798"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="query_tooltip">
        <callback name="query_tooltip">
          <source-position filename="gtkwidget.h" line="800"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="keyboard_tooltip" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="tooltip" transfer-ownership="none">
              <type name="Tooltip" c:type="GtkTooltip*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved5" introspectable="0">
        <callback name="_gtk_reserved5">
          <source-position filename="gtkwidget.h" line="811"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved6" introspectable="0">
        <callback name="_gtk_reserved6">
          <source-position filename="gtkwidget.h" line="812"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved7" introspectable="0">
        <callback name="_gtk_reserved7">
          <source-position filename="gtkwidget.h" line="813"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <method name="find_style_property"
              c:identifier="gtk_widget_class_find_style_property"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9851">Finds a style property of a widget class by name.</doc>
        <source-position filename="gtkwidget.h" line="1223"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="9855">the #GParamSpec of the style property or
  %NULL if @class has no style property with that name.</doc>
          <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
        </return-value>
        <parameters>
          <instance-parameter name="klass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9853">a #GtkWidgetClass</doc>
            <type name="WidgetClass" c:type="GtkWidgetClass*"/>
          </instance-parameter>
          <parameter name="property_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9854">the name of the style property to find</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="install_style_property"
              c:identifier="gtk_widget_class_install_style_property">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9829">Installs a style property on a widget class. The parser for the
style property is determined by the value type of @pspec.</doc>
        <source-position filename="gtkwidget.h" line="1218"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="klass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9831">a #GtkWidgetClass</doc>
            <type name="WidgetClass" c:type="GtkWidgetClass*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9832">the #GParamSpec for the property</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
        </parameters>
      </method>
      <method name="install_style_property_parser"
              c:identifier="gtk_widget_class_install_style_property_parser"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9798">Installs a style property on a widget class.</doc>
        <source-position filename="gtkwidget.h" line="1220"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="klass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9800">a #GtkWidgetClass</doc>
            <type name="WidgetClass" c:type="GtkWidgetClass*"/>
          </instance-parameter>
          <parameter name="pspec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9801">the #GParamSpec for the style property</doc>
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </parameter>
          <parameter name="parser" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9802">the parser for the style property</doc>
            <type name="RcPropertyParser" c:type="GtkRcPropertyParser"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_style_properties"
              c:identifier="gtk_widget_class_list_style_properties"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwidget.c"
             line="9874">Returns all style properties of a widget class.</doc>
        <source-position filename="gtkwidget.h" line="1225"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwidget.c"
               line="9878">an newly
      allocated array of #GParamSpec*. The array must be freed with
      g_free().</doc>
          <array length="0" zero-terminated="0" c:type="GParamSpec**">
            <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="klass" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9876">a #GtkWidgetClass</doc>
            <type name="WidgetClass" c:type="GtkWidgetClass*"/>
          </instance-parameter>
          <parameter name="n_properties"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="gtkwidget.c"
                 line="9877">location to return the number of style properties found</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <bitfield name="WidgetFlags"
              glib:type-name="GtkWidgetFlags"
              glib:get-type="gtk_widget_flags_get_type"
              c:type="GtkWidgetFlags">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="44">Tells about certain properties of the widget.</doc>
      <member name="toplevel"
              value="16"
              c:identifier="GTK_TOPLEVEL"
              glib:nick="toplevel"
              glib:name="GTK_TOPLEVEL">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="46">widgets without a real parent, as there are #GtkWindow&lt;!-- --&gt;s and
 #GtkMenu&lt;!-- --&gt;s have this flag set throughout their lifetime.
 Toplevel widgets always contain their own #GdkWindow.</doc>
      </member>
      <member name="no_window"
              value="32"
              c:identifier="GTK_NO_WINDOW"
              glib:nick="no-window"
              glib:name="GTK_NO_WINDOW">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="49">Indicative for a widget that does not provide its own #GdkWindow.
 Visible action (e.g. drawing) is performed on the parent's #GdkWindow.</doc>
      </member>
      <member name="realized"
              value="64"
              c:identifier="GTK_REALIZED"
              glib:nick="realized"
              glib:name="GTK_REALIZED">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="51">Set by gtk_widget_realize(), unset by gtk_widget_unrealize().
 A realized widget has an associated #GdkWindow.</doc>
      </member>
      <member name="mapped"
              value="128"
              c:identifier="GTK_MAPPED"
              glib:nick="mapped"
              glib:name="GTK_MAPPED">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="53">Set by gtk_widget_map(), unset by gtk_widget_unmap().
 Only realized widgets can be mapped. It means that gdk_window_show()
 has been called on the widgets window(s).</doc>
      </member>
      <member name="visible"
              value="256"
              c:identifier="GTK_VISIBLE"
              glib:nick="visible"
              glib:name="GTK_VISIBLE">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="56">Set by gtk_widget_show(), unset by gtk_widget_hide(). Implies that a
 widget will be mapped as soon as its parent is mapped.</doc>
      </member>
      <member name="sensitive"
              value="512"
              c:identifier="GTK_SENSITIVE"
              glib:nick="sensitive"
              glib:name="GTK_SENSITIVE">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="58">Set and unset by gtk_widget_set_sensitive().
 The sensitivity of a widget determines whether it will receive
 certain events (e.g. button or key presses). One premise for
 the widget's sensitivity is to have this flag set.</doc>
      </member>
      <member name="parent_sensitive"
              value="1024"
              c:identifier="GTK_PARENT_SENSITIVE"
              glib:nick="parent-sensitive"
              glib:name="GTK_PARENT_SENSITIVE">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="62">Set and unset by gtk_widget_set_sensitive() operations on the
 parents of the widget.
 This is the second premise for the widget's sensitivity. Once
 it has %GTK_SENSITIVE and %GTK_PARENT_SENSITIVE set, its state is
 effectively sensitive. This is expressed (and can be examined) by
 the #GTK_WIDGET_IS_SENSITIVE macro.</doc>
      </member>
      <member name="can_focus"
              value="2048"
              c:identifier="GTK_CAN_FOCUS"
              glib:nick="can-focus"
              glib:name="GTK_CAN_FOCUS">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="68">Determines whether a widget is able to handle focus grabs.</doc>
      </member>
      <member name="has_focus"
              value="4096"
              c:identifier="GTK_HAS_FOCUS"
              glib:nick="has-focus"
              glib:name="GTK_HAS_FOCUS">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="69">Set by gtk_widget_grab_focus() for widgets that also
 have %GTK_CAN_FOCUS set. The flag will be unset once another widget
 grabs the focus.</doc>
      </member>
      <member name="can_default"
              value="8192"
              c:identifier="GTK_CAN_DEFAULT"
              glib:nick="can-default"
              glib:name="GTK_CAN_DEFAULT">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="72">The widget is allowed to receive the default action via
 gtk_widget_grab_default() and will reserve space to draw the default if possible</doc>
      </member>
      <member name="has_default"
              value="16384"
              c:identifier="GTK_HAS_DEFAULT"
              glib:nick="has-default"
              glib:name="GTK_HAS_DEFAULT">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="74">The widget currently is receiving the default action and
 should be drawn appropriately if possible</doc>
      </member>
      <member name="has_grab"
              value="32768"
              c:identifier="GTK_HAS_GRAB"
              glib:nick="has-grab"
              glib:name="GTK_HAS_GRAB">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="76">Set by gtk_grab_add(), unset by gtk_grab_remove(). It means that the
 widget is in the grab_widgets stack, and will be the preferred one for
 receiving events other than ones of cosmetic value.</doc>
      </member>
      <member name="rc_style"
              value="65536"
              c:identifier="GTK_RC_STYLE"
              glib:nick="rc-style"
              glib:name="GTK_RC_STYLE">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="79">Indicates that the widget's style has been looked up through the rc
 mechanism. It does not imply that the widget actually had a style
 defined through the rc mechanism.</doc>
      </member>
      <member name="composite_child"
              value="131072"
              c:identifier="GTK_COMPOSITE_CHILD"
              glib:nick="composite-child"
              glib:name="GTK_COMPOSITE_CHILD">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="82">Indicates that the widget is a composite child of its parent; see
 gtk_widget_push_composite_child(), gtk_widget_pop_composite_child().</doc>
      </member>
      <member name="no_reparent"
              value="262144"
              c:identifier="GTK_NO_REPARENT"
              glib:nick="no-reparent"
              glib:name="GTK_NO_REPARENT">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="84">Unused since before GTK+ 1.2, will be removed in a future version.</doc>
      </member>
      <member name="app_paintable"
              value="524288"
              c:identifier="GTK_APP_PAINTABLE"
              glib:nick="app-paintable"
              glib:name="GTK_APP_PAINTABLE">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="85">Set and unset by gtk_widget_set_app_paintable().
 Must be set on widgets whose window the application directly draws on,
 in order to keep GTK+ from overwriting the drawn stuff.  See
 &lt;xref linkend="app-paintable-widgets"/&gt; for a detailed
 description of this flag.</doc>
      </member>
      <member name="receives_default"
              value="1048576"
              c:identifier="GTK_RECEIVES_DEFAULT"
              glib:nick="receives-default"
              glib:name="GTK_RECEIVES_DEFAULT">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="90">The widget when focused will receive the default action and have
 %GTK_HAS_DEFAULT set even if there is a different widget set as default.</doc>
      </member>
      <member name="double_buffered"
              value="2097152"
              c:identifier="GTK_DOUBLE_BUFFERED"
              glib:nick="double-buffered"
              glib:name="GTK_DOUBLE_BUFFERED">
        <doc xml:space="preserve"
             filename="gtkwidget.h"
             line="92">Set and unset by gtk_widget_set_double_buffered().
 Indicates that exposes done on the widget should be
 double-buffered.  See &lt;xref linkend="double-buffering"/&gt; for a
 detailed discussion of how double-buffering works in GTK+ and
 why you may want to disable it for special cases.</doc>
      </member>
      <member name="no_show_all"
              value="4194304"
              c:identifier="GTK_NO_SHOW_ALL"
              glib:nick="no-show-all"
              glib:name="GTK_NO_SHOW_ALL">
      </member>
    </bitfield>
    <enumeration name="WidgetHelpType"
                 glib:type-name="GtkWidgetHelpType"
                 glib:get-type="gtk_widget_help_type_get_type"
                 c:type="GtkWidgetHelpType">
      <member name="tooltip"
              value="0"
              c:identifier="GTK_WIDGET_HELP_TOOLTIP"
              glib:nick="tooltip"
              glib:name="GTK_WIDGET_HELP_TOOLTIP">
      </member>
      <member name="whats_this"
              value="1"
              c:identifier="GTK_WIDGET_HELP_WHATS_THIS"
              glib:nick="whats-this"
              glib:name="GTK_WIDGET_HELP_WHATS_THIS">
      </member>
    </enumeration>
    <record name="WidgetShapeInfo" c:type="GtkWidgetShapeInfo">
      <source-position filename="gtkwidget.h" line="831"/>
      <field name="offset_x" writable="1">
        <type name="gint16" c:type="gint16"/>
      </field>
      <field name="offset_y" writable="1">
        <type name="gint16" c:type="gint16"/>
      </field>
      <field name="shape_mask" writable="1">
        <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
      </field>
    </record>
    <class name="Window"
           c:symbol-prefix="window"
           c:type="GtkWindow"
           parent="Bin"
           glib:type-name="GtkWindow"
           glib:get-type="gtk_window_get_type"
           glib:type-struct="WindowClass">
      <source-position filename="gtkwindow.h" line="145"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Buildable"/>
      <constructor name="new" c:identifier="gtk_window_new">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1354">Creates a new #GtkWindow, which is a toplevel window that can
contain other widgets. Nearly always, the type of the window should
be #GTK_WINDOW_TOPLEVEL. If you're implementing something like a
popup menu from scratch (which is a bad idea, just use #GtkMenu),
you might use #GTK_WINDOW_POPUP. #GTK_WINDOW_POPUP is not for
dialogs, though in some other toolkits dialogs are called "popups".
In GTK+, #GTK_WINDOW_POPUP means a pop-up menu or pop-up tooltip.
On X11, popup windows are not controlled by the &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;.

If you simply want an undecorated window (no window borders), use
gtk_window_set_decorated(), don't use #GTK_WINDOW_POPUP.</doc>
        <source-position filename="gtkwindow.h" line="179"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1371">a new #GtkWindow.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1356">type of window</doc>
            <type name="WindowType" c:type="GtkWindowType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="get_default_icon_list"
                c:identifier="gtk_window_get_default_icon_list">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3857">Gets the value set by gtk_window_set_default_icon_list().
The list is a copy and should be freed with g_list_free(),
but the pixbufs in the list have not had their reference count
incremented.</doc>
        <source-position filename="gtkwindow.h" line="296"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3865">copy of default icon list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GdkPixbuf.Pixbuf"/>
          </type>
        </return-value>
      </function>
      <function name="get_default_icon_name"
                c:identifier="gtk_window_get_default_icon_name"
                version="2.16">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3808">Returns the fallback icon name for windows that has been set
with gtk_window_set_default_icon_name(). The returned
string is owned by GTK+ and should not be modified. It
is only valid until the next call to
gtk_window_set_default_icon_name().</doc>
        <source-position filename="gtkwindow.h" line="300"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3817">the fallback icon name for windows</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </function>
      <function name="list_toplevels" c:identifier="gtk_window_list_toplevels">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2106">Returns a list of all existing toplevel windows. The widgets
in the list are not individually referenced. If you want
to iterate through the list and perform actions involving
callbacks that might destroy the widgets, you &lt;emphasis&gt;must&lt;/emphasis&gt; call
&lt;literal&gt;g_list_foreach (result, (GFunc)g_object_ref, NULL)&lt;/literal&gt; first, and
then unref all the widgets afterwards.</doc>
        <source-position filename="gtkwindow.h" line="310"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2116">list of toplevel widgets</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Widget"/>
          </type>
        </return-value>
      </function>
      <function name="set_auto_startup_notification"
                c:identifier="gtk_window_set_auto_startup_notification"
                version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="8480">By default, after showing the first #GtkWindow, GTK+ calls
gdk_notify_startup_complete().  Call this function to disable
the automatic startup notification. You might do this if your
first window is a splash screen, and you want to delay notification
until after your real main window has been shown, for example.

In that example, you would disable startup notification
temporarily, show your splash screen, then re-enable it so that
showing the main window would automatically result in notification.</doc>
        <source-position filename="gtkwindow.h" line="304"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8482">%TRUE to automatically do startup notification</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_icon"
                c:identifier="gtk_window_set_default_icon"
                version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3737">Sets an icon to be used as fallback for windows that haven't
had gtk_window_set_icon() called on them from a pixbuf.</doc>
        <source-position filename="gtkwindow.h" line="297"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3739">the icon</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_icon_from_file"
                c:identifier="gtk_window_set_default_icon_from_file"
                version="2.2"
                throws="1">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3827">Sets an icon to be used as fallback for windows that haven't
had gtk_window_set_icon_list() called on them from a file
on disk. Warns on failure if @err is %NULL.</doc>
        <source-position filename="gtkwindow.h" line="301"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3836">%TRUE if setting the icon succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3829">location of icon file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_icon_list"
                c:identifier="gtk_window_set_default_icon_list">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3682">Sets an icon list to be used as fallback for windows that haven't
had gtk_window_set_icon_list() called on them to set up a
window-specific icon list. This function allows you to set up the
icon for all windows in your app at once.

See gtk_window_set_icon_list() for more details.</doc>
        <source-position filename="gtkwindow.h" line="295"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3684">a list of #GdkPixbuf</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="GdkPixbuf.Pixbuf"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="set_default_icon_name"
                c:identifier="gtk_window_set_default_icon_name"
                version="2.6">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3758">Sets an icon to be used as fallback for windows that haven't
had gtk_window_set_icon_list() called on them from a named
themed icon, see gtk_window_set_icon_name().</doc>
        <source-position filename="gtkwindow.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3760">the name of the themed icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="activate_default">
        <source-position filename="gtkwindow.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="activate_focus">
        <source-position filename="gtkwindow.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="frame_event">
        <source-position filename="gtkwindow.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gdk.Event" c:type="GdkEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="keys_changed">
        <source-position filename="gtkwindow.h" line="138"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="move_focus">
        <source-position filename="gtkwindow.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="DirectionType" c:type="GtkDirectionType"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_focus" invoker="set_focus">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1591">If @focus is not the current focus widget, and is focusable, sets
it as the focus widget for the window. If @focus is %NULL, unsets
the focus widget for this window. To set the focus to a particular
widget in the toplevel, it is usually more convenient to use
gtk_widget_grab_focus() instead of this function.</doc>
        <source-position filename="gtkwindow.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1593">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="focus"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1594">widget to be the new focus widget, or %NULL to unset
  any focus widget for the toplevel window.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate_default"
              c:identifier="gtk_window_activate_default">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2015">Activates the default widget for the window, unless the current
focused widget has been configured to receive the default action
(see gtk_widget_set_receives_default()), in which case the
focused widget is activated.</doc>
        <source-position filename="gtkwindow.h" line="204"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2024">%TRUE if a widget got activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2017">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="activate_focus" c:identifier="gtk_window_activate_focus">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1976">Activates the current focused widget within the window.</doc>
        <source-position filename="gtkwindow.h" line="197"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1982">%TRUE if a widget got activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1978">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="activate_key"
              c:identifier="gtk_window_activate_key"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="8279">Activates mnemonics and accelerators for this #GtkWindow. This is normally
called by the default ::key_press_event handler for toplevel windows,
however in some cases it may be useful to call this directly when
overriding the standard key handling for a toplevel window.</doc>
        <source-position filename="gtkwindow.h" line="325"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="8289">%TRUE if a mnemonic or accelerator was found and activated.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8281">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8282">a #GdkEventKey</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_accel_group" c:identifier="gtk_window_add_accel_group">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1780">Associate @accel_group with @window, such that calling
gtk_accel_groups_activate() on @window will activate accelerators
in @accel_group.</doc>
        <source-position filename="gtkwindow.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1782">window to attach accelerator group to</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="accel_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1783">a #GtkAccelGroup</doc>
            <type name="AccelGroup" c:type="GtkAccelGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_embedded_xid"
              c:identifier="gtk_window_add_embedded_xid">
        <source-position filename="gtkwindow.h" line="412"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="xid" transfer-ownership="none">
            <type name="Gdk.NativeWindow" c:type="GdkNativeWindow"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_mnemonic" c:identifier="gtk_window_add_mnemonic">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1835">Adds a mnemonic to this window.</doc>
        <source-position filename="gtkwindow.h" line="312"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1837">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1838">the mnemonic</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1839">the widget that gets activated by the mnemonic</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_move_drag" c:identifier="gtk_window_begin_move_drag">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7406">Starts moving a window. This function is used if an application has
window movement grips. When GDK can support it, the window movement
will be done using the standard mechanism for the &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt; or windowing
system. Otherwise, GDK will try to emulate window movement,
potentially not all that well, depending on the windowing system.</doc>
        <source-position filename="gtkwindow.h" line="350"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7408">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7409">mouse button that initiated the drag</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="root_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7410">X position where the user clicked to initiate the drag, in root window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="root_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7411">Y position where the user clicked to initiate the drag</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7412">timestamp from the click event that initiated the drag</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_resize_drag"
              c:identifier="gtk_window_begin_resize_drag">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7323">Starts resizing a window. This function is used if an application
has window resizing controls. When GDK can support it, the resize
will be done using the standard mechanism for the &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt; or windowing
system. Otherwise, GDK will try to emulate window resizing,
potentially not all that well, depending on the windowing system.</doc>
        <source-position filename="gtkwindow.h" line="344"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7325">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="edge" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7327">position of the resize control</doc>
            <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7326">mouse button that initiated the drag</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="root_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7328">X position where the user clicked to initiate the drag, in root window coordinates</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="root_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7329">Y position where the user clicked to initiate the drag</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7330">timestamp from the click event that initiated the drag</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="deiconify" c:identifier="gtk_window_deiconify">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6865">Asks to deiconify (i.e. unminimize) the specified @window. Note
that you shouldn't assume the window is definitely deiconified
afterward, because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could iconify it
again before your code which assumes deiconification gets to run.

You can track iconification via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="334"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6867">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="fullscreen"
              c:identifier="gtk_window_fullscreen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7051">Asks to place @window in the fullscreen state. Note that you
shouldn't assume the window is definitely full screen afterward,
because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could unfullscreen it
again, and not all window managers honor requests to fullscreen
windows. But normally the window will end up fullscreen. Just
don't write code that crashes if not.

You can track the fullscreen state via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="339"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7053">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_accept_focus"
              c:identifier="gtk_window_get_accept_focus"
              glib:get-property="accept-focus"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2691">Gets the value set by gtk_window_set_accept_focus().</doc>
        <source-position filename="gtkwindow.h" line="226"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2697">%TRUE if window should receive the input focus</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2693">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_decorated"
              c:identifier="gtk_window_get_decorated"
              glib:get-property="decorated">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2946">Returns whether the window has been set to have decorations
such as a title bar via gtk_window_set_decorated().</doc>
        <source-position filename="gtkwindow.h" line="277"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2953">%TRUE if the window has been set to have decorations</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2948">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_size"
              c:identifier="gtk_window_get_default_size">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3970">Gets the default size of the window. A value of -1 for the width or
height indicates that a default size has not been explicitly set
for that dimension, so the "natural" size of the window will be
used.</doc>
        <source-position filename="gtkwindow.h" line="370"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3972">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="width"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3973">location to store the default width, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3974">location to store the default height, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_widget"
              c:identifier="gtk_window_get_default_widget"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1707">Returns the default widget for @window. See gtk_window_set_default()
for more details.</doc>
        <source-position filename="gtkwindow.h" line="203"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1714">the default widget, or %NULL if there is none.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1709">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_deletable"
              c:identifier="gtk_window_get_deletable"
              glib:get-property="deletable"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3011">Returns whether the window has been set to have a close button
via gtk_window_set_deletable().</doc>
        <source-position filename="gtkwindow.h" line="280"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3018">%TRUE if the window has been set to have a close button</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3013">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_destroy_with_parent"
              c:identifier="gtk_window_get_destroy_with_parent"
              glib:get-property="destroy-with-parent">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2802">Returns whether the window will be destroyed with its transient parent. See
gtk_window_set_destroy_with_parent ().</doc>
        <source-position filename="gtkwindow.h" line="232"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2809">%TRUE if the window will be destroyed with its transient parent.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2804">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus" c:identifier="gtk_window_get_focus">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1995">Retrieves the current focused widget within the window.
Note that this is the widget that would have the focus
if the toplevel window focused; if the toplevel window
is not focused then  &lt;literal&gt;gtk_widget_has_focus (widget)&lt;/literal&gt; will
not be %TRUE for the widget.</doc>
        <source-position filename="gtkwindow.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2005">the currently focused widget, or %NULL if there is none.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1997">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_on_map"
              c:identifier="gtk_window_get_focus_on_map"
              glib:get-property="focus-on-map"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2746">Gets the value set by gtk_window_set_focus_on_map().</doc>
        <source-position filename="gtkwindow.h" line="229"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2752">%TRUE if window should receive the input focus when
mapped.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2748">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_frame_dimensions"
              c:identifier="gtk_window_get_frame_dimensions"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7366">(Note: this is a special-purpose function intended for the
 framebuffer port; see gtk_window_set_has_frame(). It will not
 return the size of the window border drawn by the &lt;link
 linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;, which is the normal
 case when using a windowing system.  See
 gdk_window_get_frame_extents() to get the standard window border
 extents.)

Retrieves the dimensions of the frame window for this toplevel.
See gtk_window_set_has_frame(), gtk_window_set_frame_dimensions().</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkwindow.h" line="269"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7368">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="left"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7369">location to store the width of the frame at the left, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="top"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7370">location to store the height of the frame at the top, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="right"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7371">location to store the width of the frame at the returns, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="bottom"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7372">location to store the height of the frame at the bottom, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gravity"
              c:identifier="gtk_window_get_gravity"
              glib:get-property="gravity">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7307">Gets the value set by gtk_window_set_gravity().</doc>
        <source-position filename="gtkwindow.h" line="243"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7313">window gravity</doc>
          <type name="Gdk.Gravity" c:type="GdkGravity"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7309">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_group"
              c:identifier="gtk_window_get_group"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7740">Returns the group for @window or the default group, if
@window is %NULL or if @window does not have an explicit
window group.</doc>
        <source-position filename="gtkwindow.h" line="387"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7748">the #GtkWindowGroup for a window or the default group</doc>
          <type name="WindowGroup" c:type="GtkWindowGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7742">a #GtkWindow, or %NULL</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_has_frame"
              c:identifier="gtk_window_get_has_frame"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6673">Accessor for whether the window has a frame window exterior to
@window-&gt;window. Gets the value set by gtk_window_set_has_frame ().</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkwindow.h" line="263"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="6680">%TRUE if a frame has been added to the window
  via gtk_window_set_has_frame().</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6675">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="gtk_window_get_icon"
              glib:get-property="icon">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3598">Gets the value set by gtk_window_set_icon() (or if you've
called gtk_window_set_icon_list(), gets the first icon in
the icon list).</doc>
        <source-position filename="gtkwindow.h" line="292"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3606">icon for window</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3600">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_list" c:identifier="gtk_window_get_icon_list">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3454">Retrieves the list of icons set by gtk_window_set_icon_list().
The list is copied, but the reference count on each
member won't be incremented.</doc>
        <source-position filename="gtkwindow.h" line="284"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3462">copy of window's icon list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GdkPixbuf.Pixbuf"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3456">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gtk_window_get_icon_name"
              glib:get-property="icon-name"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3574">Returns the name of the themed icon for the window,
see gtk_window_set_icon_name().</doc>
        <source-position filename="gtkwindow.h" line="294"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3581">the icon name or %NULL if the window has
no themed icon</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3576">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mnemonic_modifier"
              c:identifier="gtk_window_get_mnemonic_modifier">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1922">Returns the mnemonic modifier for this window. See
gtk_window_set_mnemonic_modifier().</doc>
        <source-position filename="gtkwindow.h" line="323"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1929">the modifier mask used to activate
              mnemonics on this window.</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1924">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mnemonics_visible"
              c:identifier="gtk_window_get_mnemonics_visible"
              glib:get-property="mnemonics-visible">
        <source-position filename="gtkwindow.h" line="235"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modal"
              c:identifier="gtk_window_get_modal"
              glib:get-property="modal">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2089">Returns whether the window is modal. See gtk_window_set_modal().</doc>
        <source-position filename="gtkwindow.h" line="309"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2095">%TRUE if the window is set to be modal and
              establishes a grab when shown</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2091">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_opacity"
              c:identifier="gtk_window_get_opacity"
              glib:get-property="opacity"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2416">Fetches the requested opacity for this window. See
gtk_window_set_opacity().</doc>
        <source-position filename="gtkwindow.h" line="211"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2423">the requested opacity for this window.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2418">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="gtk_window_get_position">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="4230">This function returns the position you need to pass to
gtk_window_move() to keep @window in its current position.  This
means that the meaning of the returned value varies with window
gravity. See gtk_window_move() for more details.

If you haven't changed the window gravity, its gravity will be
#GDK_GRAVITY_NORTH_WEST. This means that gtk_window_get_position()
gets the position of the top-left corner of the window manager
frame for the window. gtk_window_move() sets the position of this
same top-left corner.

gtk_window_get_position() is not 100% reliable because the X Window System
does not specify a way to obtain the geometry of the
decorations placed on a window by the window manager.
Thus GTK+ is using a "best guess" that works with most
window managers.

Moreover, nearly all window managers are historically broken with
respect to their handling of window gravity. So moving a window to
its current position as returned by gtk_window_get_position() tends
to result in moving the window slightly. Window managers are
slowly getting better over time.

If a window has gravity #GDK_GRAVITY_STATIC the window manager
frame is not relevant, and thus gtk_window_get_position() will
always produce accurate results. However you can't use static
gravity to do things like place a window in a corner of the screen,
because static gravity ignores the window manager decorations.

If you are saving and restoring your application's window
positions, you should know that it's impossible for applications to
do this without getting it somewhat wrong because applications do
not have sufficient knowledge of window manager state. The Correct
Mechanism is to support the session management protocol (see the
"GnomeClient" object in the GNOME libraries for example) and allow
the window manager to save your window sizes and positions.</doc>
        <source-position filename="gtkwindow.h" line="382"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4232">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="root_x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4233">return location for X coordinate of gravity-determined reference point</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="root_y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4234">return location for Y coordinate of gravity-determined reference point</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_resizable"
              c:identifier="gtk_window_get_resizable"
              glib:get-property="resizable">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7256">Gets the value set by gtk_window_set_resizable().</doc>
        <source-position filename="gtkwindow.h" line="239"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7262">%TRUE if the user can resize the window</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7258">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_role"
              c:identifier="gtk_window_get_role"
              glib:get-property="role">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1572">Returns the role of the window. See gtk_window_set_role() for
further explanation.</doc>
        <source-position filename="gtkwindow.h" line="190"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1579">the role of the window if set, or %NULL. The
  returned is owned by the widget and must not be modified
  or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1574">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen"
              c:identifier="gtk_window_get_screen"
              glib:get-property="screen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7523">Returns the #GdkScreen associated with @window.</doc>
        <source-position filename="gtkwindow.h" line="253"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7529">a #GdkScreen.</doc>
          <type name="Gdk.Screen" c:type="GdkScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7525">a #GtkWindow.</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="gtk_window_get_size">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="4038">Obtains the current size of @window. If @window is not onscreen,
it returns the size GTK+ will suggest to the &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt; for the initial window
size (but this is not reliably the same as the size the window
manager will actually select). The size obtained by
gtk_window_get_size() is the last size received in a
#GdkEventConfigure, that is, GTK+ uses its locally-stored size,
rather than querying the X server for the size. As a result, if you
call gtk_window_resize() then immediately call
gtk_window_get_size(), the size won't have taken effect yet. After
the window manager processes the resize request, GTK+ receives
notification that the size has changed via a configure event, and
the size of the window gets updated.

Note 1: Nearly any use of this function creates a race condition,
because the size of the window may change between the time that you
get the size and the time that you perform some action assuming
that size is the current size. To avoid race conditions, connect to
"configure-event" on the window and adjust your size-dependent
state to match the size delivered in the #GdkEventConfigure.

Note 2: The returned size does &lt;emphasis&gt;not&lt;/emphasis&gt; include the
size of the window manager decorations (aka the window frame or
border). Those are not drawn by GTK+ and GTK+ has no reliable
method of determining their size.

Note 3: If you are getting a window size in order to position
the window onscreen, there may be a better way. The preferred
way is to simply set the window's semantic type with
gtk_window_set_type_hint(), which allows the window manager to
e.g. center dialogs. Also, if you set the transient parent of
dialogs with gtk_window_set_transient_for() window managers
will often center the dialog over its parent window. It's
much preferred to let the window manager handle these
things rather than doing it yourself, because all apps will
behave consistently and according to user prefs if the window
manager handles it. Also, the window manager can take the size
of the window decorations/border into account, while your
application cannot.

In any case, if you insist on application-specified window
positioning, there's &lt;emphasis&gt;still&lt;/emphasis&gt; a better way than
doing it yourself - gtk_window_set_position() will frequently
handle the details for you.</doc>
        <source-position filename="gtkwindow.h" line="376"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4040">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4041">return location for width, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4042">return location for height, or %NULL</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_skip_pager_hint"
              c:identifier="gtk_window_get_skip_pager_hint"
              glib:get-property="skip-pager-hint"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2583">Gets the value set by gtk_window_set_skip_pager_hint().</doc>
        <source-position filename="gtkwindow.h" line="220"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2589">%TRUE if window shouldn't be in pager</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2585">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_skip_taskbar_hint"
              c:identifier="gtk_window_get_skip_taskbar_hint"
              glib:get-property="skip-taskbar-hint"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2526">Gets the value set by gtk_window_set_skip_taskbar_hint()</doc>
        <source-position filename="gtkwindow.h" line="217"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2532">%TRUE if window shouldn't be in taskbar</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2528">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="gtk_window_get_title"
              glib:get-property="title">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1424">Retrieves the title of the window. See gtk_window_set_title().</doc>
        <source-position filename="gtkwindow.h" line="182"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1430">the title of the window, or %NULL if none has
   been set explicitely. The returned string is owned by the widget
   and must not be modified or freed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1426">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transient_for"
              c:identifier="gtk_window_get_transient_for"
              glib:get-property="transient-for">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2359">Fetches the transient parent for this window. See
gtk_window_set_transient_for().</doc>
        <source-position filename="gtkwindow.h" line="208"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2366">the transient parent for this window, or %NULL
   if no transient parent has been set.</doc>
          <type name="Window" c:type="GtkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2361">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_type_hint"
              c:identifier="gtk_window_get_type_hint"
              glib:get-property="type-hint">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2474">Gets the type hint for this window. See gtk_window_set_type_hint().</doc>
        <source-position filename="gtkwindow.h" line="214"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2480">the type hint for @window.</doc>
          <type name="Gdk.WindowTypeHint" c:type="GdkWindowTypeHint"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2476">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_urgency_hint"
              c:identifier="gtk_window_get_urgency_hint"
              glib:get-property="urgency-hint"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2637">Gets the value set by gtk_window_set_urgency_hint()</doc>
        <source-position filename="gtkwindow.h" line="223"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="2643">%TRUE if window is urgent</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2639">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_type"
              c:identifier="gtk_window_get_window_type"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="8502">Gets the type of the window. See #GtkWindowType.</doc>
        <source-position filename="gtkwindow.h" line="393"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="8508">the type of the window</doc>
          <type name="WindowType" c:type="GtkWindowType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8504">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_group" c:identifier="gtk_window_has_group">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7768">Returns whether @window has an explicit window group.</doc>
        <source-position filename="gtkwindow.h" line="388"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7774">%TRUE if @window has an explicit window group.

Since 2.22</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7770">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_toplevel_focus"
              c:identifier="gtk_window_has_toplevel_focus"
              glib:get-property="has-toplevel-focus"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7565">Returns whether the input focus is within this GtkWindow.
For real toplevel windows, this is identical to gtk_window_is_active(),
but for embedded windows, like #GtkPlug, the results will differ.</doc>
        <source-position filename="gtkwindow.h" line="256"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7573">%TRUE if the input focus is within this GtkWindow</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7567">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="iconify" c:identifier="gtk_window_iconify">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6824">Asks to iconify (i.e. minimize) the specified @window. Note that
you shouldn't assume the window is definitely iconified afterward,
because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could deiconify it
again, or there may not be a window manager in which case
iconification isn't possible, etc. But normally the window will end
up iconified. Just don't write code that crashes if not.

It's permitted to call this function before showing a window,
in which case the window will be iconified before it ever appears
onscreen.

You can track iconification via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="333"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6826">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active"
              c:identifier="gtk_window_is_active"
              glib:get-property="is-active"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7541">Returns whether the window is part of the current active toplevel.
(That is, the toplevel window receiving keystrokes.)
The return value is %TRUE if the window is active toplevel
itself, but also if it is, say, a #GtkPlug embedded in the active toplevel.
You might use this function if you wanted to draw a widget
differently in an active window from a widget in an inactive window.
See gtk_window_has_toplevel_focus()</doc>
        <source-position filename="gtkwindow.h" line="255"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7553">%TRUE if the window part of the current active window.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7543">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="maximize" c:identifier="gtk_window_maximize">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6974">Asks to maximize @window, so that it becomes full-screen. Note that
you shouldn't assume the window is definitely maximized afterward,
because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could unmaximize it
again, and not all window managers support maximization. But
normally the window will end up maximized. Just don't write code
that crashes if not.

It's permitted to call this function before showing a window,
in which case the window will be maximized when it appears onscreen
initially.

You can track maximization via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="337"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6976">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="mnemonic_activate"
              c:identifier="gtk_window_mnemonic_activate">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1877">Activates the targets associated with the mnemonic.</doc>
        <source-position filename="gtkwindow.h" line="318"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="1882">%TRUE if the activation is done.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1879">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1880">the mnemonic</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="modifier" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1881">the modifiers</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="move" c:identifier="gtk_window_move">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="4125">Asks the &lt;link linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt; to move
@window to the given position.  Window managers are free to ignore
this; most window managers ignore requests for initial window
positions (instead using a user-defined placement algorithm) and
honor requests after the window has already been shown.

Note: the position is the position of the gravity-determined
reference point for the window. The gravity determines two things:
first, the location of the reference point in root window
coordinates; and second, which point on the window is positioned at
the reference point.

By default the gravity is #GDK_GRAVITY_NORTH_WEST, so the reference
point is simply the @x, @y supplied to gtk_window_move(). The
top-left corner of the window decorations (aka window frame or
border) will be placed at @x, @y.  Therefore, to position a window
at the top left of the screen, you want to use the default gravity
(which is #GDK_GRAVITY_NORTH_WEST) and move the window to 0,0.

To position a window at the bottom right corner of the screen, you
would set #GDK_GRAVITY_SOUTH_EAST, which means that the reference
point is at @x + the window width and @y + the window height, and
the bottom-right corner of the window border will be placed at that
reference point. So, to place a window in the bottom right corner
you would first set gravity to south east, then write:
&lt;literal&gt;gtk_window_move (window, gdk_screen_width () - window_width,
gdk_screen_height () - window_height)&lt;/literal&gt; (note that this
example does not take multi-head scenarios into account).

The Extended Window Manager Hints specification at &lt;ulink
url="http://www.freedesktop.org/Standards/wm-spec"&gt;
http://www.freedesktop.org/Standards/wm-spec&lt;/ulink&gt; has a
nice table of gravities in the "implementation notes" section.

The gtk_window_get_position() documentation may also be relevant.</doc>
        <source-position filename="gtkwindow.h" line="379"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4127">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4128">X coordinate to move window to</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4129">Y coordinate to move window to</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_geometry" c:identifier="gtk_window_parse_geometry">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7987">Parses a standard X Window System geometry string - see the
manual page for X (type 'man X') for details on this.
gtk_window_parse_geometry() does work on all GTK+ ports
including Win32 but is primarily intended for an X environment.

If either a size or a position can be extracted from the
geometry string, gtk_window_parse_geometry() returns %TRUE
and calls gtk_window_set_default_size() and/or gtk_window_move()
to resize/move the window.

If gtk_window_parse_geometry() returns %TRUE, it will also
set the #GDK_HINT_USER_POS and/or #GDK_HINT_USER_SIZE hints
indicating to the window manager that the size/position of
the window was user-specified. This causes most window
managers to honor the geometry.

Note that for gtk_window_parse_geometry() to work as expected, it has
to be called when the window has its "final" size, i.e. after calling
gtk_widget_show_all() on the contents and gtk_window_set_geometry_hints()
on the window.
|[
#include &lt;gtk/gtk.h&gt;
   
static void
fill_with_content (GtkWidget *vbox)
{
  /&amp;ast; fill with content... &amp;ast;/
}
   
int
main (int argc, char *argv[])
{
  GtkWidget *window, *vbox;
  GdkGeometry size_hints = {
    100, 50, 0, 0, 100, 50, 10, 10, 0.0, 0.0, GDK_GRAVITY_NORTH_WEST
  };
   
  gtk_init (&amp;argc, &amp;argv);
  
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  vbox = gtk_vbox_new (FALSE, 0);
  
  gtk_container_add (GTK_CONTAINER (window), vbox);
  fill_with_content (vbox);
  gtk_widget_show_all (vbox);
  
  gtk_window_set_geometry_hints (GTK_WINDOW (window),
	  			    window,
				    &amp;size_hints,
				    GDK_HINT_MIN_SIZE |
				    GDK_HINT_BASE_SIZE |
				    GDK_HINT_RESIZE_INC);
  
  if (argc &amp;gt; 1)
    {
      if (!gtk_window_parse_geometry (GTK_WINDOW (window), argv[1]))
        fprintf (stderr, "Failed to parse '%s'\n", argv[1]);
    }
   
  gtk_widget_show_all (window);
  gtk_main ();
   
  return 0;
}
]|</doc>
        <source-position filename="gtkwindow.h" line="385"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="8058">%TRUE if string was parsed successfully</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7989">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="geometry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7990">geometry string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="present" c:identifier="gtk_window_present">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6747">Presents a window to the user. This may mean raising the window
in the stacking order, deiconifying it, moving it to the current
desktop, and/or giving it the keyboard focus, possibly dependent
on the user's platform, window manager, and preferences.

If @window is hidden, this function calls gtk_widget_show()
as well.

This function should be used when the user tries to open a window
that's already open. Say for example the preferences dialog is
currently open, and the user chooses Preferences from the menu
a second time; use gtk_window_present() to move the already-open dialog
where the user can see it.

If you are calling this function in response to a user interaction,
it is preferable to use gtk_window_present_with_time().</doc>
        <source-position filename="gtkwindow.h" line="330"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6749">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="present_with_time"
              c:identifier="gtk_window_present_with_time"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6775">Presents a window to the user in response to a user interaction.
If you need to present a window without a timestamp, use
gtk_window_present(). See gtk_window_present() for details.</doc>
        <source-position filename="gtkwindow.h" line="331"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6777">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6778">the timestamp of the user interaction (typically a
  button or key press event) which triggered this call</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="propagate_key_event"
              c:identifier="gtk_window_propagate_key_event"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="5162">Propagate a key press or release event to the focus widget and
up the focus container chain until a widget handles @event.
This is normally called by the default ::key_press_event and
::key_release_event handlers for toplevel windows,
however in some cases it may be useful to call this directly when
overriding the standard key handling for a toplevel window.</doc>
        <source-position filename="gtkwindow.h" line="327"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="5174">%TRUE if a widget in the focus chain handled the event.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="5164">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="5165">a #GdkEventKey</doc>
            <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_accel_group"
              c:identifier="gtk_window_remove_accel_group">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1803">Reverses the effects of gtk_window_add_accel_group().</doc>
        <source-position filename="gtkwindow.h" line="193"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1805">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="accel_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1806">a #GtkAccelGroup</doc>
            <type name="AccelGroup" c:type="GtkAccelGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_embedded_xid"
              c:identifier="gtk_window_remove_embedded_xid">
        <source-position filename="gtkwindow.h" line="410"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="xid" transfer-ownership="none">
            <type name="Gdk.NativeWindow" c:type="GdkNativeWindow"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_mnemonic" c:identifier="gtk_window_remove_mnemonic">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1856">Removes a mnemonic from this window.</doc>
        <source-position filename="gtkwindow.h" line="315"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1858">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="keyval" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1859">the mnemonic</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1860">the widget that gets activated by the mnemonic</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reshow_with_initial_size"
              c:identifier="gtk_window_reshow_with_initial_size">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="4394">Hides @window, then reshows it, resetting the
default size and position of the window. Used
by GUI builders only.</doc>
        <source-position filename="gtkwindow.h" line="391"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4396">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="resize" c:identifier="gtk_window_resize">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="4000">Resizes the window as if the user had done so, obeying geometry
constraints. The default geometry constraint is that windows may
not be smaller than their size request; to override this
constraint, call gtk_widget_set_size_request() to set the window's
request to a smaller value.

If gtk_window_resize() is called before showing a window for the
first time, it overrides any default size set with
gtk_window_set_default_size().

Windows may not be resized smaller than 1 by 1 pixels.</doc>
        <source-position filename="gtkwindow.h" line="373"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4002">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4003">width in pixels to resize the window to</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="4004">height in pixels to resize the window to</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_accept_focus"
              c:identifier="gtk_window_set_accept_focus"
              glib:set-property="accept-focus"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2659">Windows may set a hint asking the desktop environment not to receive
the input focus. This function sets this hint.</doc>
        <source-position filename="gtkwindow.h" line="224"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2661">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2662">%TRUE to let this window receive input focus</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_decorated"
              c:identifier="gtk_window_set_decorated"
              glib:set-property="decorated">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2902">By default, windows are decorated with a title bar, resize
controls, etc.  Some &lt;link linkend="gtk-X11-arch"&gt;window
managers&lt;/link&gt; allow GTK+ to disable these decorations, creating a
borderless window. If you set the decorated property to %FALSE
using this function, GTK+ will do its best to convince the window
manager not to decorate the window. Depending on the system, this
function may not have any effect when called on a window that is
already visible, so you should call it before calling gtk_window_show().

On Windows, this function always works, since there's no window manager
policy involved.</doc>
        <source-position filename="gtkwindow.h" line="275"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2904">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2905">%TRUE to decorate the window</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default" c:identifier="gtk_window_set_default">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1646">The default widget is the widget that's activated when the user
presses Enter in a dialog (for example). This function sets or
unsets the default widget for a #GtkWindow about. When setting
(rather than unsetting) the default widget it's generally easier to
call gtk_widget_grab_focus() on the widget. Before making a widget
the default widget, you must set the #GTK_CAN_DEFAULT flag on the
widget you'd like to make the default using GTK_WIDGET_SET_FLAGS().</doc>
        <source-position filename="gtkwindow.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1648">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="default_widget"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1649">widget to be the default, or %NULL to unset the
                 default widget for the toplevel.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_size"
              c:identifier="gtk_window_set_default_size">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3923">Sets the default size of a window. If the window's "natural" size
(its size request) is larger than the default, the default will be
ignored. More generally, if the default size does not obey the
geometry hints for the window (gtk_window_set_geometry_hints() can
be used to set these explicitly), the default size will be clamped
to the nearest permitted size.

Unlike gtk_widget_set_size_request(), which sets a size request for
a widget and thus would keep users from shrinking the window, this
function only sets the initial size, just as if the user had
resized the window themselves. Users can still shrink the window
again as they normally would. Setting a default size of -1 means to
use the "natural" default size (the size request of the window).

For more control over a window's initial size and how resizing works,
investigate gtk_window_set_geometry_hints().

For some uses, gtk_window_resize() is a more appropriate function.
gtk_window_resize() changes the current size of the window, rather
than the size to be used on initial display. gtk_window_resize() always
affects the window itself, not the geometry widget.

The default size of a window only affects the first time a window is
shown; if a window is hidden and re-shown, it will remember the size
it had prior to hiding, rather than using the default size.

Windows can't actually be 0x0 in size, they must be at least 1x1, but
passing 0 for @width and @height is OK, resulting in a 1x1 default size.</doc>
        <source-position filename="gtkwindow.h" line="367"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3925">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3926">width in pixels, or -1 to unset the default width</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3927">height in pixels, or -1 to unset the default height</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_deletable"
              c:identifier="gtk_window_set_deletable"
              glib:set-property="deletable"
              version="2.10">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2963">By default, windows have a close button in the window frame. Some
&lt;link linkend="gtk-X11-arch"&gt;window managers&lt;/link&gt; allow GTK+ to
disable this button. If you set the deletable property to %FALSE
using this function, GTK+ will do its best to convince the window
manager not to show a close button. Depending on the system, this
function may not have any effect when called on a window that is
already visible, so you should call it before calling gtk_window_show().

On Windows, this function always works, since there's no window manager
policy involved.</doc>
        <source-position filename="gtkwindow.h" line="278"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2965">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2966">%TRUE to decorate the window as deletable</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_destroy_with_parent"
              c:identifier="gtk_window_set_destroy_with_parent"
              glib:set-property="destroy-with-parent">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2769">If @setting is %TRUE, then destroying the transient parent of @window
will also destroy @window itself. This is useful for dialogs that
shouldn't persist beyond the lifetime of the main window they're
associated with, for example.</doc>
        <source-position filename="gtkwindow.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2771">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2772">whether to destroy @window with its transient parent</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_focus" c:identifier="gtk_window_set_focus">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1591">If @focus is not the current focus widget, and is focusable, sets
it as the focus widget for the window. If @focus is %NULL, unsets
the focus widget for this window. To set the focus to a particular
widget in the toplevel, it is usually more convenient to use
gtk_widget_grab_focus() instead of this function.</doc>
        <source-position filename="gtkwindow.h" line="198"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1593">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="focus"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1594">widget to be the new focus widget, or %NULL to unset
  any focus widget for the toplevel window.</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_focus_on_map"
              c:identifier="gtk_window_set_focus_on_map"
              glib:set-property="focus-on-map"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2713">Windows may set a hint asking the desktop environment not to receive
the input focus when the window is mapped.  This function sets this
hint.</doc>
        <source-position filename="gtkwindow.h" line="227"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2715">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2716">%TRUE to let this window receive input focus on map</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_frame_dimensions"
              c:identifier="gtk_window_set_frame_dimensions"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6693">(Note: this is a special-purpose function intended for the framebuffer
 port; see gtk_window_set_has_frame(). It will have no effect on the
 window border drawn by the window manager, which is the normal
 case when using the X Window system.)

For windows with frames (see gtk_window_set_has_frame()) this function
can be used to change the size of the frame border.</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkwindow.h" line="264"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6695">a #GtkWindow that has a frame</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="left" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6696">The width of the left border</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="top" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6697">The height of the top border</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="right" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6698">The width of the right border</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="bottom" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6699">The height of the bottom border</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_geometry_hints"
              c:identifier="gtk_window_set_geometry_hints">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2851">This function sets up hints about how a window can be resized by
the user.  You can set a minimum and maximum size; allowed resize
increments (e.g. for xterm, you can only resize by the size of a
character); aspect ratios; and more. See the #GdkGeometry struct.</doc>
        <source-position filename="gtkwindow.h" line="246"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2853">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="geometry_widget" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2854">widget the geometry hints will be applied to</doc>
            <type name="Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="geometry" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2855">struct containing geometry information</doc>
            <type name="Gdk.Geometry" c:type="GdkGeometry*"/>
          </parameter>
          <parameter name="geom_mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2856">mask indicating which struct fields should be paid attention to</doc>
            <type name="Gdk.WindowHints" c:type="GdkWindowHints"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gravity"
              c:identifier="gtk_window_set_gravity"
              glib:set-property="gravity">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7276">Window gravity defines the meaning of coordinates passed to
gtk_window_move(). See gtk_window_move() and #GdkGravity for
more details.

The default window gravity is #GDK_GRAVITY_NORTH_WEST which will
typically "do what you mean."</doc>
        <source-position filename="gtkwindow.h" line="241"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7278">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="gravity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7279">window gravity</doc>
            <type name="Gdk.Gravity" c:type="GdkGravity"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_has_frame"
              c:identifier="gtk_window_set_has_frame"
              deprecated="1"
              deprecated-version="2.24">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6642">(Note: this is a special-purpose function for the framebuffer port,
 that causes GTK+ to draw its own window border. For most applications,
 you want gtk_window_set_decorated() instead, which tells the window
 manager whether to draw the window border.)

If this function is called on a window with setting of %TRUE, before
it is realized or showed, it will have a "frame" window around
@window-&gt;window, accessible in @window-&gt;frame. Using the signal
frame_event you can receive all events targeted at the frame.

This function is used by the linux-fb port to implement managed
windows, but it could conceivably be used by X-programs that
want to do their own window decorations.</doc>
        <doc-deprecated xml:space="preserve">This function will be removed in GTK+ 3</doc-deprecated>
        <source-position filename="gtkwindow.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6644">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6645">a boolean</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon"
              c:identifier="gtk_window_set_icon"
              glib:set-property="icon">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3479">Sets up the icon representing a #GtkWindow. This icon is used when
the window is minimized (also known as iconified).  Some window
managers or desktop environments may also place it in the window
frame, or display it in other contexts.

The icon should be provided in whatever size it was naturally
drawn; that is, don't scale the image before passing it to
GTK+. Scaling is postponed until the last minute, when the desired
final size is known, to allow best quality.

If you have your icon hand-drawn in multiple sizes, use
gtk_window_set_icon_list(). Then the best size will be used.

This function is equivalent to calling gtk_window_set_icon_list()
with a 1-element list.

See also gtk_window_set_default_icon_list() to set the icon
for all windows in your application in one go.</doc>
        <source-position filename="gtkwindow.h" line="285"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3481">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="icon"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3482">icon image, or %NULL</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_from_file"
              c:identifier="gtk_window_set_icon_from_file"
              version="2.2"
              throws="1">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3648">Sets the icon for @window.
Warns on failure if @err is %NULL.

This function is equivalent to calling gtk_window_set_icon()
with a pixbuf created by loading the image from @filename.</doc>
        <source-position filename="gtkwindow.h" line="289"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="3660">%TRUE if setting the icon succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3650">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3651">location of icon file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_list"
              c:identifier="gtk_window_set_icon_list"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3388">Sets up the icon representing a #GtkWindow. The icon is used when
the window is minimized (also known as iconified).  Some window
managers or desktop environments may also place it in the window
frame, or display it in other contexts.

gtk_window_set_icon_list() allows you to pass in the same icon in
several hand-drawn sizes. The list should contain the natural sizes
your icon is available in; that is, don't scale the image before
passing it to GTK+. Scaling is postponed until the last minute,
when the desired final size is known, to allow best quality.

By passing several sizes, you may improve the final image quality
of the icon, by reducing or eliminating automatic image scaling.

Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and
larger images (64x64, 128x128) if you have them.

See also gtk_window_set_default_icon_list() to set the icon
for all windows in your application in one go.

Note that transient windows (those who have been set transient for another
window using gtk_window_set_transient_for()) will inherit their
icon from their transient parent. So there's no need to explicitly
set the icon on transient windows.</doc>
        <source-position filename="gtkwindow.h" line="282"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3390">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="list" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3391">list of #GdkPixbuf</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gtk_window_set_icon_name"
              glib:set-property="icon-name"
              version="2.6">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="3534">Sets the icon for the window from a named themed icon. See
the docs for #GtkIconTheme for more details.

Note that this has nothing to do with the WM_ICON_NAME
property which is mentioned in the ICCCM.</doc>
        <source-position filename="gtkwindow.h" line="287"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3536">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="3537">the name of the themed icon</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keep_above"
              c:identifier="gtk_window_set_keep_above"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7131">Asks to keep @window above, so that it stays on top. Note that
you shouldn't assume the window is definitely above afterward,
because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could not keep it above,
and not all window managers support keeping windows above. But
normally the window will end kept above. Just don't write code
that crashes if not.

It's permitted to call this function before showing a window,
in which case the window will be kept above when it appears onscreen
initially.

You can track the above state via the "window-state-event" signal
on #GtkWidget.

Note that, according to the &lt;ulink
url="http://www.freedesktop.org/Standards/wm-spec"&gt;Extended Window
Manager Hints&lt;/ulink&gt; specification, the above state is mainly meant
for user preferences and should not be used by applications e.g. for
drawing attention to their dialogs.</doc>
        <source-position filename="gtkwindow.h" line="341"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7133">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7134">whether to keep @window above other windows</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keep_below"
              c:identifier="gtk_window_set_keep_below"
              version="2.4">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7185">Asks to keep @window below, so that it stays in bottom. Note that
you shouldn't assume the window is definitely below afterward,
because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could not keep it below,
and not all window managers support putting windows below. But
normally the window will be kept below. Just don't write code
that crashes if not.

It's permitted to call this function before showing a window,
in which case the window will be kept below when it appears onscreen
initially.

You can track the below state via the "window-state-event" signal
on #GtkWidget.

Note that, according to the &lt;ulink
url="http://www.freedesktop.org/Standards/wm-spec"&gt;Extended Window
Manager Hints&lt;/ulink&gt; specification, the above state is mainly meant
for user preferences and should not be used by applications e.g. for
drawing attention to their dialogs.</doc>
        <source-position filename="gtkwindow.h" line="342"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7187">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7188">whether to keep @window below other windows</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mnemonic_modifier"
              c:identifier="gtk_window_set_mnemonic_modifier">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1903">Sets the mnemonic modifier for this window.</doc>
        <source-position filename="gtkwindow.h" line="321"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1905">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="modifier" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1906">the modifier mask used to activate
              mnemonics on this window.</doc>
            <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mnemonics_visible"
              c:identifier="gtk_window_set_mnemonics_visible"
              glib:set-property="mnemonics-visible"
              version="2.20">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="8542">Sets the #GtkWindow:mnemonics-visible property.</doc>
        <source-position filename="gtkwindow.h" line="233"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8544">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="8545">the new value</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_modal"
              c:identifier="gtk_window_set_modal"
              glib:set-property="modal">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2040">Sets a window modal or non-modal. Modal windows prevent interaction
with other windows in the same application. To keep modal dialogs
on top of main application windows, use
gtk_window_set_transient_for() to make the dialog transient for the
parent; most &lt;link linkend="gtk-X11-arch"&gt;window managers&lt;/link&gt;
will then disallow lowering the dialog below the parent.</doc>
        <source-position filename="gtkwindow.h" line="307"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2042">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="modal" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2043">whether the window is modal</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_opacity"
              c:identifier="gtk_window_set_opacity"
              glib:set-property="opacity"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2377">Request the windowing system to make @window partially transparent,
with opacity 0 being fully transparent and 1 fully opaque. (Values
of the opacity parameter are clamped to the [0,1] range.) On X11
this has any effect only on X screens with a compositing manager
running. See gtk_widget_is_composited(). On Windows it should work
always.

Note that setting a window's opacity after the window has been
shown causes it to flicker once on Windows.</doc>
        <source-position filename="gtkwindow.h" line="209"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2379">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="opacity" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2380">desired opacity, between 0 and 1</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_policy" c:identifier="gtk_window_set_policy">
        <source-position filename="gtkwindow.h" line="357"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="allow_shrink" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="allow_grow" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="auto_shrink" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position" c:identifier="gtk_window_set_position">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1940">Sets a position constraint for this window. If the old or new
constraint is %GTK_WIN_POS_CENTER_ALWAYS, this will also cause
the window to be repositioned to satisfy the new constraint.</doc>
        <source-position filename="gtkwindow.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1942">a #GtkWindow.</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1943">a position constraint.</doc>
            <type name="WindowPosition" c:type="GtkWindowPosition"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_resizable"
              c:identifier="gtk_window_set_resizable"
              glib:set-property="resizable">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7239">Sets whether the user can resize a window. Windows are user resizable
by default.</doc>
        <source-position filename="gtkwindow.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7241">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="resizable" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7242">%TRUE if the user can resize this window</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_role"
              c:identifier="gtk_window_set_role"
              glib:set-property="role">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1475">This function is only useful on X11, not with other GTK+ targets.

In combination with the window title, the window role allows a
&lt;link linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt; to identify "the
same" window when an application is restarted. So for example you
might set the "toolbox" role on your app's toolbox window, so that
when the user restarts their session, the window manager can put
the toolbox back in the same place.

If a window already has a unique title, you don't need to set the
role, since the WM can use the title to identify the window when
restoring the session.</doc>
        <source-position filename="gtkwindow.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1477">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="role" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1478">unique identifier for the window to be used when restoring a session</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screen"
              c:identifier="gtk_window_set_screen"
              glib:set-property="screen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7447">Sets the #GdkScreen where the @window is displayed; if
the window is already mapped, it will be unmapped, and
then remapped on the new screen.</doc>
        <source-position filename="gtkwindow.h" line="251"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7449">a #GtkWindow.</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7450">a #GdkScreen.</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip_pager_hint"
              c:identifier="gtk_window_set_skip_pager_hint"
              glib:set-property="skip-pager-hint"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2548">Windows may set a hint asking the desktop environment not to display
the window in the pager. This function sets this hint.
(A "pager" is any desktop navigation tool such as a workspace
switcher that displays a thumbnail representation of the windows
on the screen.)</doc>
        <source-position filename="gtkwindow.h" line="218"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2550">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2551">%TRUE to keep this window from appearing in the pager</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip_taskbar_hint"
              c:identifier="gtk_window_set_skip_taskbar_hint"
              glib:set-property="skip-taskbar-hint"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2494">Windows may set a hint asking the desktop environment not to display
the window in the task bar. This function sets this hint.</doc>
        <source-position filename="gtkwindow.h" line="215"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2496">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2497">%TRUE to keep this window from appearing in the task bar</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_startup_id"
              c:identifier="gtk_window_set_startup_id"
              glib:set-property="startup-id"
              version="2.12">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1512">Startup notification identifiers are used by desktop environment to
track application startup, to provide user feedback and other
features. This function changes the corresponding property on the
underlying GdkWindow. Normally, startup identifier is managed
automatically and you should only use this function in special cases
like transferring focus from other processes. You should use this
function before calling gtk_window_present() or any equivalent
function generating a window map event.

This function is only useful on X11, not with other GTK+ targets.</doc>
        <source-position filename="gtkwindow.h" line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1514">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="startup_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1515">a string with startup-notification identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_title"
              c:identifier="gtk_window_set_title"
              glib:set-property="title">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1387">Sets the title of the #GtkWindow. The title of a window will be
displayed in its title bar; on the X Window System, the title bar
is rendered by the &lt;link linkend="gtk-X11-arch"&gt;window
manager&lt;/link&gt;, so exactly how the title appears to users may vary
according to a user's exact configuration. The title should help a
user distinguish this window from other windows they may have
open. A good title might include the application name and current
document filename, for example.</doc>
        <source-position filename="gtkwindow.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1389">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1390">title of the window</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transient_for"
              c:identifier="gtk_window_set_transient_for"
              glib:set-property="transient-for">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2283">Dialog windows should be set transient for the main application
window they were spawned from. This allows &lt;link
linkend="gtk-X11-arch"&gt;window managers&lt;/link&gt; to e.g. keep the
dialog on top of the main window, or center the dialog over the
main window. gtk_dialog_new_with_buttons() and other convenience
functions in GTK+ will sometimes call
gtk_window_set_transient_for() on your behalf.

Passing %NULL for @parent unsets the current transient window.

On Windows, this function puts the child window on top of the parent,
much as the window manager would have done on X.</doc>
        <source-position filename="gtkwindow.h" line="206"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2285">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2286">parent window, or %NULL</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_type_hint"
              c:identifier="gtk_window_set_type_hint"
              glib:set-property="type-hint">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2439">By setting the type hint for the window, you allow the window
manager to decorate and handle the window in a way which is
suitable to the function of the window in your application.

This function should be called before the window becomes visible.

gtk_dialog_new_with_buttons() and other convenience functions in GTK+
will sometimes call gtk_window_set_type_hint() on your behalf.</doc>
        <source-position filename="gtkwindow.h" line="212"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2441">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2442">the window type</doc>
            <type name="Gdk.WindowTypeHint" c:type="GdkWindowTypeHint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_urgency_hint"
              c:identifier="gtk_window_set_urgency_hint"
              glib:set-property="urgency-hint"
              version="2.8">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="2605">Windows may set a hint asking the desktop environment to draw
the users attention to the window. This function sets this hint.</doc>
        <source-position filename="gtkwindow.h" line="221"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2607">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="2608">%TRUE to mark this window as urgent</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_wmclass" c:identifier="gtk_window_set_wmclass">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="1442">Don't use this function. It sets the X Window System "class" and
"name" hints for a window.  According to the ICCCM, you should
always set these to the same value for all windows in an
application, and GTK+ sets them to that value by default, so calling
this function is sort of pointless. However, you may want to call
gtk_window_set_role() on each window in your application, for the
benefit of the session manager. Setting the role allows the window
manager to restore window positions when loading a saved session.</doc>
        <source-position filename="gtkwindow.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1444">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
          <parameter name="wmclass_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1445">window name hint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="wmclass_class" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="1446">window class hint</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stick" c:identifier="gtk_window_stick">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6899">Asks to stick @window, which means that it will appear on all user
desktops. Note that you shouldn't assume the window is definitely
stuck afterward, because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could unstick it
again, and some window managers do not support sticking
windows. But normally the window will end up stuck. Just don't
write code that crashes if not.

It's permitted to call this function before showing a window.

You can track stickiness via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="335"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6901">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unfullscreen"
              c:identifier="gtk_window_unfullscreen"
              version="2.2">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7091">Asks to toggle off the fullscreen state for @window. Note that you
shouldn't assume the window is definitely not full screen
afterward, because other entities (e.g. the user or &lt;link
linkend="gtk-X11-arch"&gt;window manager&lt;/link&gt;) could fullscreen it
again, and not all window managers honor requests to unfullscreen
windows. But normally the window will end up restored to its normal
state. Just don't write code that crashes if not.

You can track the fullscreen state via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="340"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7093">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmaximize" c:identifier="gtk_window_unmaximize">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7015">Asks to unmaximize @window. Note that you shouldn't assume the
window is definitely unmaximized afterward, because other entities
(e.g. the user or &lt;link linkend="gtk-X11-arch"&gt;window
manager&lt;/link&gt;) could maximize it again, and not all window
managers honor requests to unmaximize. But normally the window will
end up unmaximized. Just don't write code that crashes if not.

You can track maximization via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="338"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7017">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unstick" c:identifier="gtk_window_unstick">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="6938">Asks to unstick @window, which means that it will appear on only
one of the user's desktops. Note that you shouldn't assume the
window is definitely unstuck afterward, because other entities
(e.g. the user or &lt;link linkend="gtk-X11-arch"&gt;window
manager&lt;/link&gt;) could stick it again. But normally the window will
end up stuck. Just don't write code that crashes if not.

You can track stickiness via the "window-state-event" signal
on #GtkWidget.</doc>
        <source-position filename="gtkwindow.h" line="336"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="6940">a #GtkWindow</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="accept-focus"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_accept_focus"
                getter="get_accept_focus"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="695">Whether the window should receive the input focus.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="allow-grow"
                deprecated="1"
                deprecated-version="2.22"
                writable="1"
                transfer-ownership="none"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="539">If %TRUE, users can expand the window beyond its minimum size.</doc>
        <doc-deprecated xml:space="preserve">Use GtkWindow:resizable property instead.</doc-deprecated>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="allow-shrink"
                deprecated="1"
                deprecated-version="2.22"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="522">If %TRUE, the window has no mimimum size. Setting this to %TRUE is
99&amp;percnt; of the time a bad idea.</doc>
        <doc-deprecated xml:space="preserve">Use GtkWindow:resizable property instead.</doc-deprecated>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="decorated"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_decorated"
                getter="get_decorated"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="725">Whether the window should be decorated by the window manager.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="default-height"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="default-width"
                writable="1"
                transfer-ownership="none"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="deletable"
                version="2.10"
                writable="1"
                transfer-ownership="none"
                setter="set_deletable"
                getter="get_deletable"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="740">Whether the window frame should have a close button.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="destroy-with-parent"
                writable="1"
                transfer-ownership="none"
                setter="set_destroy_with_parent"
                getter="get_destroy_with_parent"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="focus-on-map"
                version="2.6"
                writable="1"
                transfer-ownership="none"
                setter="set_focus_on_map"
                getter="get_focus_on_map"
                default-value="TRUE">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="710">Whether the window should receive the input focus when mapped.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="gravity"
                version="2.4"
                writable="1"
                transfer-ownership="none"
                setter="set_gravity"
                getter="get_gravity"
                default-value="GDK_GRAVITY_NORTH_WEST">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="756">The window gravity of the window. See gtk_window_move() and #GdkGravity for
more details about window gravity.</doc>
        <type name="Gdk.Gravity"/>
      </property>
      <property name="has-toplevel-focus"
                transfer-ownership="none"
                getter="has_toplevel_focus"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="icon"
                writable="1"
                transfer-ownership="none"
                setter="set_icon"
                getter="get_icon">
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="icon-name"
                version="2.6"
                writable="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="622">The :icon-name property specifies the name of the themed icon to
use as the window icon. See #GtkIconTheme for more details.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="is-active"
                transfer-ownership="none"
                getter="is_active"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mnemonics-visible"
                writable="1"
                transfer-ownership="none"
                setter="set_mnemonics_visible"
                getter="get_mnemonics_visible"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="modal"
                writable="1"
                transfer-ownership="none"
                setter="set_modal"
                getter="get_modal"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="opacity"
                version="2.12"
                writable="1"
                transfer-ownership="none"
                setter="set_opacity"
                getter="get_opacity"
                default-value="1.000000">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="790">The requested opacity of the window. See gtk_window_set_opacity() for
more details about window opacity.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="resizable"
                writable="1"
                transfer-ownership="none"
                setter="set_resizable"
                getter="get_resizable"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="role"
                writable="1"
                transfer-ownership="none"
                setter="set_role"
                getter="get_role"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="screen"
                writable="1"
                transfer-ownership="none"
                setter="set_screen"
                getter="get_screen">
        <type name="Gdk.Screen"/>
      </property>
      <property name="skip-pager-hint"
                writable="1"
                transfer-ownership="none"
                setter="set_skip_pager_hint"
                getter="get_skip_pager_hint"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="skip-taskbar-hint"
                writable="1"
                transfer-ownership="none"
                setter="set_skip_taskbar_hint"
                getter="get_skip_taskbar_hint"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="startup-id"
                version="2.12"
                readable="0"
                writable="1"
                transfer-ownership="none"
                setter="set_startup_id"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="505">The :startup-id is a write-only property for setting window's
startup notification identifier. See gtk_window_set_startup_id()
for more details.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                writable="1"
                transfer-ownership="none"
                setter="set_title"
                getter="get_title"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="transient-for"
                version="2.10"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_transient_for"
                getter="get_transient_for">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="774">The transient parent of the window. See gtk_window_set_transient_for() for
more details about transient windows.</doc>
        <type name="Window"/>
      </property>
      <property name="type"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="GTK_WINDOW_TOPLEVEL">
        <type name="WindowType"/>
      </property>
      <property name="type-hint"
                writable="1"
                transfer-ownership="none"
                setter="set_type_hint"
                getter="get_type_hint"
                default-value="GDK_WINDOW_TYPE_HINT_NORMAL">
        <type name="Gdk.WindowTypeHint"/>
      </property>
      <property name="urgency-hint"
                writable="1"
                transfer-ownership="none"
                setter="set_urgency_hint"
                getter="get_urgency_hint"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="window-position"
                writable="1"
                transfer-ownership="none"
                default-value="GTK_WIN_POS_NONE">
        <type name="WindowPosition"/>
      </property>
      <field name="bin">
        <type name="Bin" c:type="GtkBin"/>
      </field>
      <field name="title">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="wmclass_name">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="wmclass_class">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="wm_role">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="focus_widget">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="default_widget">
        <type name="Widget" c:type="GtkWidget*"/>
      </field>
      <field name="transient_parent">
        <type name="Window" c:type="GtkWindow*"/>
      </field>
      <field name="geometry_info">
        <type name="WindowGeometryInfo" c:type="GtkWindowGeometryInfo*"/>
      </field>
      <field name="frame">
        <type name="Gdk.Window" c:type="GdkWindow*"/>
      </field>
      <field name="group">
        <type name="WindowGroup" c:type="GtkWindowGroup*"/>
      </field>
      <field name="configure_request_count">
        <type name="guint16" c:type="guint16"/>
      </field>
      <field name="allow_shrink" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="allow_grow" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="configure_notify_received" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_default_position" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="need_default_size" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="position" bits="3">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="type" bits="4">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_user_ref_count" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_focus" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="modal" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="destroy_with_parent" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_frame" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="iconify_initially" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="stick_initially" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="maximize_initially" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="decorated" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="type_hint" bits="3">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="gravity" bits="5">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="is_active" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="has_toplevel_focus" bits="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="frame_left">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="frame_top">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="frame_right">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="frame_bottom">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="keys_changed_handler">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="mnemonic_modifier">
        <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
      </field>
      <field name="screen">
        <type name="Gdk.Screen" c:type="GdkScreen*"/>
      </field>
      <glib:signal name="activate-default" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="847">The ::activate-default signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user activates the default widget
of @window.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="activate-focus" when="last" action="1">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="828">The ::activate-focus signal is a
&lt;link linkend="keybinding-signals"&gt;keybinding signal&lt;/link&gt;
which gets emitted when the user activates the currently
focused widget of @window.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="frame-event" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gdk.Event"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="keys-changed" when="first">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="866">The ::keys-changed signal gets emitted when the set of accelerators
or mnemonics that are associated with @window changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="set-focus" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Widget"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="WindowClass"
            c:type="GtkWindowClass"
            glib:is-gtype-struct-for="Window">
      <source-position filename="gtkwindow.h" line="145"/>
      <field name="parent_class">
        <type name="BinClass" c:type="GtkBinClass"/>
      </field>
      <field name="set_focus">
        <callback name="set_focus">
          <source-position filename="gtkwindow.h" line="121"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="gtkwindow.c"
                   line="1593">a #GtkWindow</doc>
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
            <parameter name="focus"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="gtkwindow.c"
                   line="1594">widget to be the new focus widget, or %NULL to unset
  any focus widget for the toplevel window.</doc>
              <type name="Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="frame_event">
        <callback name="frame_event">
          <source-position filename="gtkwindow.h" line="123"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <type name="Gdk.Event" c:type="GdkEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate_focus">
        <callback name="activate_focus">
          <source-position filename="gtkwindow.h" line="128"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="activate_default">
        <callback name="activate_default">
          <source-position filename="gtkwindow.h" line="129"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="move_focus">
        <callback name="move_focus">
          <source-position filename="gtkwindow.h" line="135"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <type name="DirectionType" c:type="GtkDirectionType"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="keys_changed">
        <callback name="keys_changed">
          <source-position filename="gtkwindow.h" line="138"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="GtkWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkwindow.h" line="141"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkwindow.h" line="142"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkwindow.h" line="143"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtkwindow.h" line="144"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="WindowGeometryInfo"
            c:type="GtkWindowGeometryInfo"
            disguised="1"
            opaque="1">
      <source-position filename="gtkwindow.h" line="50"/>
    </record>
    <class name="WindowGroup"
           c:symbol-prefix="window_group"
           c:type="GtkWindowGroup"
           parent="GObject.Object"
           glib:type-name="GtkWindowGroup"
           glib:get-type="gtk_window_group_get_type"
           glib:type-struct="WindowGroupClass">
      <source-position filename="gtkwindow.h" line="170"/>
      <constructor name="new" c:identifier="gtk_window_group_new">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7617">Creates a new #GtkWindowGroup object. Grabs added with
gtk_grab_add() only affect windows within the same #GtkWindowGroup.</doc>
        <source-position filename="gtkwindow.h" line="399"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7623">a new #GtkWindowGroup.</doc>
          <type name="WindowGroup" c:type="GtkWindowGroup*"/>
        </return-value>
      </constructor>
      <method name="add_window" c:identifier="gtk_window_group_add_window">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7654">Adds a window to a #GtkWindowGroup.</doc>
        <source-position filename="gtkwindow.h" line="400"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7656">a #GtkWindowGroup</doc>
            <type name="WindowGroup" c:type="GtkWindowGroup*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7657">the #GtkWindow to add</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_grab"
              c:identifier="gtk_window_group_get_current_grab"
              introspectable="0">
        <source-position filename="gtkwindow.h" line="422"/>
        <return-value>
          <type name="Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_group" transfer-ownership="none">
            <type name="WindowGroup" c:type="GtkWindowGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_windows"
              c:identifier="gtk_window_group_list_windows"
              version="2.14">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7708">Returns a list of the #GtkWindows that belong to @window_group.</doc>
        <source-position filename="gtkwindow.h" line="404"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="gtkwindow.c"
               line="7714">A newly-allocated list of
  windows inside the group.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Widget"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="window_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7710">a #GtkWindowGroup</doc>
            <type name="WindowGroup" c:type="GtkWindowGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_window"
              c:identifier="gtk_window_group_remove_window">
        <doc xml:space="preserve"
             filename="gtkwindow.c"
             line="7684">Removes a window from a #GtkWindowGroup.</doc>
        <source-position filename="gtkwindow.h" line="402"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7686">a #GtkWindowGroup</doc>
            <type name="WindowGroup" c:type="GtkWindowGroup*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gtkwindow.c"
                 line="7687">the #GtkWindow to remove</doc>
            <type name="Window" c:type="GtkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="grabs">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
    </class>
    <record name="WindowGroupClass"
            c:type="GtkWindowGroupClass"
            glib:is-gtype-struct-for="WindowGroup">
      <source-position filename="gtkwindow.h" line="170"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_gtk_reserved1" introspectable="0">
        <callback name="_gtk_reserved1">
          <source-position filename="gtkwindow.h" line="166"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved2" introspectable="0">
        <callback name="_gtk_reserved2">
          <source-position filename="gtkwindow.h" line="167"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved3" introspectable="0">
        <callback name="_gtk_reserved3">
          <source-position filename="gtkwindow.h" line="168"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_gtk_reserved4" introspectable="0">
        <callback name="_gtk_reserved4">
          <source-position filename="gtkwindow.h" line="169"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <callback name="WindowKeysForeachFunc" c:type="GtkWindowKeysForeachFunc">
      <source-position filename="gtkwindow.h" line="435"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <type name="Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
        <parameter name="is_mnemonic" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="WindowPosition"
                 glib:type-name="GtkWindowPosition"
                 glib:get-type="gtk_window_position_get_type"
                 c:type="GtkWindowPosition">
      <member name="none"
              value="0"
              c:identifier="GTK_WIN_POS_NONE"
              glib:nick="none"
              glib:name="GTK_WIN_POS_NONE">
      </member>
      <member name="center"
              value="1"
              c:identifier="GTK_WIN_POS_CENTER"
              glib:nick="center"
              glib:name="GTK_WIN_POS_CENTER">
      </member>
      <member name="mouse"
              value="2"
              c:identifier="GTK_WIN_POS_MOUSE"
              glib:nick="mouse"
              glib:name="GTK_WIN_POS_MOUSE">
      </member>
      <member name="center_always"
              value="3"
              c:identifier="GTK_WIN_POS_CENTER_ALWAYS"
              glib:nick="center-always"
              glib:name="GTK_WIN_POS_CENTER_ALWAYS">
      </member>
      <member name="center_on_parent"
              value="4"
              c:identifier="GTK_WIN_POS_CENTER_ON_PARENT"
              glib:nick="center-on-parent"
              glib:name="GTK_WIN_POS_CENTER_ON_PARENT">
      </member>
    </enumeration>
    <enumeration name="WindowType"
                 glib:type-name="GtkWindowType"
                 glib:get-type="gtk_window_type_get_type"
                 c:type="GtkWindowType">
      <member name="toplevel"
              value="0"
              c:identifier="GTK_WINDOW_TOPLEVEL"
              glib:nick="toplevel"
              glib:name="GTK_WINDOW_TOPLEVEL">
      </member>
      <member name="popup"
              value="1"
              c:identifier="GTK_WINDOW_POPUP"
              glib:nick="popup"
              glib:name="GTK_WINDOW_POPUP">
      </member>
    </enumeration>
    <enumeration name="WrapMode"
                 glib:type-name="GtkWrapMode"
                 glib:get-type="gtk_wrap_mode_get_type"
                 c:type="GtkWrapMode">
      <member name="none"
              value="0"
              c:identifier="GTK_WRAP_NONE"
              glib:nick="none"
              glib:name="GTK_WRAP_NONE">
      </member>
      <member name="char"
              value="1"
              c:identifier="GTK_WRAP_CHAR"
              glib:nick="char"
              glib:name="GTK_WRAP_CHAR">
      </member>
      <member name="word"
              value="2"
              c:identifier="GTK_WRAP_WORD"
              glib:nick="word"
              glib:name="GTK_WRAP_WORD">
      </member>
      <member name="word_char"
              value="3"
              c:identifier="GTK_WRAP_WORD_CHAR"
              glib:nick="word-char"
              glib:name="GTK_WRAP_WORD_CHAR">
      </member>
    </enumeration>
    <function name="accel_groups_activate"
              c:identifier="gtk_accel_groups_activate">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="897">Finds the first accelerator in any #GtkAccelGroup attached
to @object that matches @accel_key and @accel_mods, and
activates that accelerator.</doc>
      <source-position filename="gtkaccelgroup.h" line="154"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="908">%TRUE if an accelerator was activated and handled this keypress</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="899">the #GObject, usually a #GtkWindow, on which
                to activate the accelerator.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="accel_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="901">accelerator keyval from a key event</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="accel_mods" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="902">keyboard state mask from a key event</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="accel_groups_from_object"
              c:identifier="gtk_accel_groups_from_object">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="353">Gets a list of all accel groups which are attached to @object.</doc>
      <source-position filename="gtkaccelgroup.h" line="157"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="359">a list of all accel groups which are attached to @object</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="AccelGroup"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="355">a #GObject, usually a #GtkWindow</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="accelerator_get_default_mod_mask"
              c:identifier="gtk_accelerator_get_default_mod_mask">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="1479">Gets the value set by gtk_accelerator_set_default_mod_mask().</doc>
      <source-position filename="gtkaccelgroup.h" line="175"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="1481">the default accelerator modifier mask</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="accelerator_get_label"
              c:identifier="gtk_accelerator_get_label"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="1428">Converts an accelerator keyval and modifier mask into a string
which can be used to represent the accelerator to the user.</doc>
      <source-position filename="gtkaccelgroup.h" line="172"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="1436">a newly-allocated string representing the accelerator.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="accelerator_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1430">accelerator keyval</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="accelerator_mods" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1431">accelerator modifier mask</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="accelerator_name" c:identifier="gtk_accelerator_name">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="1284">Converts an accelerator keyval and modifier mask
into a string parseable by gtk_accelerator_parse().
For example, if you pass in #GDK_q and #GDK_CONTROL_MASK,
this function returns "&amp;lt;Control&amp;gt;q".

If you need to display accelerators in the user interface,
see gtk_accelerator_get_label().</doc>
      <source-position filename="gtkaccelgroup.h" line="170"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="1297">a newly-allocated accelerator name</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="accelerator_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1286">accelerator keyval</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="accelerator_mods" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1287">accelerator modifier mask</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="accelerator_parse" c:identifier="gtk_accelerator_parse">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="1139">Parses a string representing an accelerator. The
format looks like "&amp;lt;Control&amp;gt;a" or "&amp;lt;Shift&amp;gt;&amp;lt;Alt&amp;gt;F1" or
"&amp;lt;Release&amp;gt;z" (the last one is for key release).
The parser is fairly liberal and allows lower or upper case,
and also abbreviations such as "&amp;lt;Ctl&amp;gt;" and "&amp;lt;Ctrl&amp;gt;".
Key names are parsed using gdk_keyval_from_name(). For character keys the
name is not the symbol, but the lowercase name, e.g. one would use
"&amp;lt;Ctrl&amp;gt;minus" instead of "&amp;lt;Ctrl&amp;gt;-".

If the parse fails, @accelerator_key and @accelerator_mods will
be set to 0 (zero).</doc>
      <source-position filename="gtkaccelgroup.h" line="167"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="accelerator" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1141">string representing an accelerator</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="accelerator_key"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1142">return location for accelerator keyval</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
        <parameter name="accelerator_mods"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1143">return location for accelerator modifier mask</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="accelerator_set_default_mod_mask"
              c:identifier="gtk_accelerator_set_default_mod_mask">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="1456">Sets the modifiers that will be considered significant for keyboard
accelerators. The default mod mask is #GDK_CONTROL_MASK |
#GDK_SHIFT_MASK | #GDK_MOD1_MASK | #GDK_SUPER_MASK |
#GDK_HYPER_MASK | #GDK_META_MASK, that is, Control, Shift, Alt,
Super, Hyper and Meta. Other modifiers will by default be ignored
by #GtkAccelGroup.
You must include at least the three modifiers Control, Shift
and Alt in any value you pass to this function.

The default mod mask should be changed on application startup,
before using any accelerator groups.</doc>
      <source-position filename="gtkaccelgroup.h" line="174"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="default_mod_mask" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="1458">accelerator modifier mask</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="accelerator_valid" c:identifier="gtk_accelerator_valid">
      <doc xml:space="preserve"
           filename="gtkaccelgroup.c"
           line="935">Determines whether a given keyval and modifier mask constitute
a valid keyboard accelerator. For example, the #GDK_a keyval
plus #GDK_CONTROL_MASK is valid - this is a "Ctrl+a" accelerator.
But, you can't, for instance, use the #GDK_Control_L keyval
as an accelerator.</doc>
      <source-position filename="gtkaccelgroup.h" line="165"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkaccelgroup.c"
             line="939">%TRUE if the accelerator is valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="937">a GDK keyval</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaccelgroup.c"
               line="938">modifier mask</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="alternative_dialog_button_order"
              c:identifier="gtk_alternative_dialog_button_order"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdialog.c"
           line="1196">Returns %TRUE if dialogs are expected to use an alternative
button order on the screen @screen. See
gtk_dialog_set_alternative_button_order() for more details
about alternative button order.

If you need to use this function, you should probably connect
to the ::notify:gtk-alternative-button-order signal on the
#GtkSettings object associated to @screen, in order to be
notified if the button order setting changes.</doc>
      <source-position filename="gtkdialog.h" line="162"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdialog.c"
             line="1210">Whether the alternative button order should be used</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="screen"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdialog.c"
               line="1198">a #GdkScreen, or %NULL to use the default screen</doc>
          <type name="Gdk.Screen" c:type="GdkScreen*"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_entry_add_signall"
              c:identifier="gtk_binding_entry_add_signall"
              moved-to="BindingEntry.add_signall">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="798">Override or install a new key binding for @keyval with @modifiers on
@binding_set.</doc>
      <source-position filename="gtkbindings.h" line="131"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="binding_set" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="800">a #GtkBindingSet to add a signal to</doc>
          <type name="BindingSet" c:type="GtkBindingSet*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="801">key value</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="802">key modifier</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
        <parameter name="signal_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="803">signal name to be bound</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="binding_args" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="804">
    list of #GtkBindingArg signal arguments</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="BindingArg"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="binding_entry_clear"
              c:identifier="gtk_binding_entry_clear"
              moved-to="BindingEntry.clear"
              deprecated="1"
              deprecated-version="2.12">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="720">Clears a binding entry.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_binding_entry_remove() instead.</doc-deprecated>
      <source-position filename="gtkbindings.h" line="116"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="binding_set" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="722">binding set to clear an entry of</doc>
          <type name="BindingSet" c:type="GtkBindingSet*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="723">key value of binding to clear</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="724">key modifier of binding to clear</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_entry_remove"
              c:identifier="gtk_binding_entry_remove"
              moved-to="BindingEntry.remove">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="772">Remove a binding previously installed via
gtk_binding_entry_add_signal() on @binding_set.</doc>
      <source-position filename="gtkbindings.h" line="136"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="binding_set" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="774">a #GtkBindingSet to remove an entry of</doc>
          <type name="BindingSet" c:type="GtkBindingSet*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="775">key value of binding to remove</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="776">key modifier of binding to remove</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_entry_skip"
              c:identifier="gtk_binding_entry_skip"
              moved-to="BindingEntry.skip"
              version="2.12">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="740">Install a binding on @binding_set which causes key lookups
to be aborted, to prevent bindings from lower priority sets
to be activated.</doc>
      <source-position filename="gtkbindings.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="binding_set" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="742">a #GtkBindingSet to skip an entry of</doc>
          <type name="BindingSet" c:type="GtkBindingSet*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="743">key value of binding to skip</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="744">key modifier of binding to skip</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_parse_binding"
              c:identifier="gtk_binding_parse_binding"
              deprecated="1"
              deprecated-version="2.12">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="1592">Parse a binding entry from a gtkrc file.</doc>
      <doc-deprecated xml:space="preserve">There should be no need to call this function outside GTK+.</doc-deprecated>
      <source-position filename="gtkbindings.h" line="119"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkbindings.c"
             line="1598">expected token upon errors, %G_TOKEN_NONE on success.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="scanner" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1594">GtkRC scanner</doc>
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
      </parameters>
    </function>
    <function name="binding_set_find"
              c:identifier="gtk_binding_set_find"
              moved-to="BindingSet.find">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="631">Find a binding set by its globally unique name. The @set_name can
either be a name used for gtk_binding_set_new() or the type name of
a class used in gtk_binding_set_by_class().</doc>
      <source-position filename="gtkbindings.h" line="103"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkbindings.c"
             line="639">%NULL or the specified binding set</doc>
        <type name="BindingSet" c:type="GtkBindingSet*"/>
      </return-value>
      <parameters>
        <parameter name="set_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="633">unique binding set name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="bindings_activate" c:identifier="gtk_bindings_activate">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="1287">Find a key binding matching @keyval and @modifiers and activate the
binding on @object.</doc>
      <source-position filename="gtkbindings.h" line="104"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkbindings.c"
             line="1296">%TRUE if a binding was found and activated</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1289">object to activate when binding found</doc>
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1290">key value of the binding</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1291">key modifier of the binding</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="bindings_activate_event"
              c:identifier="gtk_bindings_activate_event"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkbindings.c"
           line="1329">Looks up key bindings for @object to find one matching
@event, and if one was found, activate it.</doc>
      <source-position filename="gtkbindings.h" line="107"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkbindings.c"
             line="1337">%TRUE if a matching key binding was found</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1331">a #GtkObject (generally must be a widget)</doc>
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkbindings.c"
               line="1332">a #GdkEventKey</doc>
          <type name="Gdk.EventKey" c:type="GdkEventKey*"/>
        </parameter>
      </parameters>
    </function>
    <function name="builder_error_quark"
              c:identifier="gtk_builder_error_quark"
              moved-to="BuilderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function-macro name="button_box_get_spacing"
                    c:identifier="gtk_button_box_get_spacing"
                    introspectable="0">
      <source-position filename="gtkbbox.h" line="81"/>
      <parameters>
        <parameter name="b">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="button_box_set_spacing"
                    c:identifier="gtk_button_box_set_spacing"
                    introspectable="0">
      <source-position filename="gtkbbox.h" line="80"/>
      <parameters>
        <parameter name="b">
        </parameter>
        <parameter name="s">
        </parameter>
      </parameters>
    </function-macro>
    <function name="check_version" c:identifier="gtk_check_version">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="244">Checks that the GTK+ library in use is compatible with the
given version. Generally you would pass in the constants
#GTK_MAJOR_VERSION, #GTK_MINOR_VERSION, #GTK_MICRO_VERSION
as the three arguments to this function; that produces
a check that the library in use is compatible with
the version of GTK+ the application or module was compiled
against.

Compatibility is defined by two things: first the version
of the running library is newer than the version
@required_major.required_minor.@required_micro. Second
the running library must be binary compatible with the
version @required_major.required_minor.@required_micro
(same major version.)

This function is primarily for GTK+ modules; the module
can call this function to check that it wasn't loaded
into an incompatible version of GTK+. However, such a
a check isn't completely reliable, since the module may be
linked against an old version of GTK+ and calling the
old version of gtk_check_version(), but still get loaded
into an application using a newer version of GTK+.</doc>
      <source-position filename="gtkmain.h" line="83"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="273">%NULL if the GTK+ library is compatible with the
  given version, or a string describing the version mismatch.
  The returned string is owned by GTK+ and should not be modified
  or freed.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="required_major" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="246">the required major version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="required_minor" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="247">the required minor version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="required_micro" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="248">the required micro version.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="ctree_node_get_type"
              c:identifier="gtk_ctree_node_get_type">
      <source-position filename="gtkctree.h" line="439"/>
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function-macro name="ctree_set_reorderable"
                    c:identifier="gtk_ctree_set_reorderable"
                    introspectable="0">
      <source-position filename="gtkctree.h" line="433"/>
      <parameters>
        <parameter name="t">
        </parameter>
        <parameter name="r">
        </parameter>
      </parameters>
    </function-macro>
    <function name="disable_setlocale" c:identifier="gtk_disable_setlocale">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="386">Prevents gtk_init(), gtk_init_check(), gtk_init_with_args() and
gtk_parse_args() from automatically
calling &lt;literal&gt;setlocale (LC_ALL, "")&lt;/literal&gt;. You would
want to use this function if you wanted to set the locale for
your program to something other than the user's locale, or if
you wanted to set different values for different locale categories.

Most programs should not need to call this function.</doc>
      <source-position filename="gtkmain.h" line="135"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="drag_begin" c:identifier="gtk_drag_begin">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2502">Initiates a drag on the source side. The function
only needs to be used when the application is
starting drags itself, and is not needed when
gtk_drag_source_set() is used.

The @event is used to retrieve the timestamp that will be used internally to
grab the pointer.  If @event is #NULL, then GDK_CURRENT_TIME will be used.
However, you should try to pass a real event in all cases, since that can be
used by GTK+ to get information about the start position of the drag, for
example if the @event is a GDK_MOTION_NOTIFY.

Generally there are three cases when you want to start a drag by hand by calling
this function:

1. During a button-press-event handler, if you want to start a drag immediately
when the user presses the mouse button.  Pass the @event that you have in your
button-press-event handler.

2. During a motion-notify-event handler, if you want to start a drag when the mouse
moves past a certain threshold distance after a button-press.  Pass the @event that you
have in your motion-notify-event handler.

3. During a timeout handler, if you want to start a drag after the mouse
button is held down for some time.  Try to save the last event that you got
from the mouse, using gdk_event_copy(), and pass it to this function
(remember to free the event with gdk_event_free() when you are done).  If you
can really not pass a real event, pass #NULL instead.</doc>
      <source-position filename="gtkdnd.h" line="133"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="2539">the context for this drag.</doc>
        <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2504">the source widget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2505">The targets (data formats) in which the
   source can provide the data.</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </parameter>
        <parameter name="actions" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2507">A bitmask of the allowed drag actions for this drag.</doc>
          <type name="Gdk.DragAction" c:type="GdkDragAction"/>
        </parameter>
        <parameter name="button" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2508">The button the user clicked to start the drag.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2509">The event that triggered the start of the drag.</doc>
          <type name="Gdk.Event" c:type="GdkEvent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_check_threshold"
              c:identifier="gtk_drag_check_threshold">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="4371">Checks to see if a mouse drag starting at (@start_x, @start_y) and ending
at (@current_x, @current_y) has passed the GTK+ drag threshold, and thus
should trigger the beginning of a drag-and-drop operation.</doc>
      <source-position filename="gtkdnd.h" line="166"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="4383">%TRUE if the drag threshold has been passed.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="4373">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="start_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="4374">X coordinate of start of drag</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="start_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="4375">Y coordinate of start of drag</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="current_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="4376">current X coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="current_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="4377">current Y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_add_image_targets"
              c:identifier="gtk_drag_dest_add_image_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1446">Add the image targets supported by #GtkSelection to
the target list of the drag destination. The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_image_targets() and
gtk_drag_dest_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="94"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1448">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_add_text_targets"
              c:identifier="gtk_drag_dest_add_text_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1419">Add the text targets supported by #GtkSelection to
the target list of the drag destination. The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_text_targets() and
gtk_drag_dest_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="93"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1421">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_add_uri_targets"
              c:identifier="gtk_drag_dest_add_uri_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1473">Add the URI targets supported by #GtkSelection to
the target list of the drag destination. The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_uri_targets() and
gtk_drag_dest_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="95"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1475">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_find_target"
              c:identifier="gtk_drag_dest_find_target">
      <source-position filename="gtkdnd.h" line="87"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="1677">first target that the source offers
    and the dest can accept, or %GDK_NONE</doc>
        <type name="Gdk.Atom" c:type="GdkAtom"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1665">drag destination widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1666">drag context</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="target_list"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1667">list of droppable targets, or %NULL to use
   gtk_drag_dest_get_target_list (@widget).
Looks for a match between the supported targets of @context and the
@dest_target_list, returning the first matching target, otherwise
returning %GDK_NONE. @dest_target_list should usually be the return
value from gtk_drag_dest_get_target_list(), but some widgets may
have different valid targets for different parts of the widget; in
that case, they will have to implement a drag_motion handler that
passes the correct target list to this function.</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_get_target_list"
              c:identifier="gtk_drag_dest_get_target_list">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1363">Returns the list of targets this widget can accept from
drag-and-drop.</doc>
      <source-position filename="gtkdnd.h" line="90"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="1370">the #GtkTargetList, or %NULL if none</doc>
        <type name="TargetList" c:type="GtkTargetList*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1365">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_get_track_motion"
              c:identifier="gtk_drag_dest_get_track_motion"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1529">Returns whether the widget has been configured to always
emit ::drag-motion signals.</doc>
      <source-position filename="gtkdnd.h" line="99"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="1536">%TRUE if the widget always emits ::drag-motion events</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1531">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_set" c:identifier="gtk_drag_dest_set">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1214">Sets a widget as a potential drop destination, and adds default behaviors.

The default behaviors listed in @flags have an effect similar
to installing default handlers for the widget's drag-and-drop signals
(#GtkWidget:drag-motion, #GtkWidget:drag-drop, ...). They all exist
for convenience. When passing #GTK_DEST_DEFAULT_ALL for instance it is
sufficient to connect to the widget's #GtkWidget::drag-data-received
signal to get primitive, but consistent drag-and-drop support.

Things become more complicated when you try to preview the dragged data,
as described in the documentation for #GtkWidget:drag-motion. The default
behaviors described by @flags make some assumptions, that can conflict
with your own signal handlers. For instance #GTK_DEST_DEFAULT_DROP causes
invokations of gdk_drag_status() in the context of #GtkWidget:drag-motion,
and invokations of gtk_drag_finish() in #GtkWidget:drag-data-received.
Especially the later is dramatic, when your own #GtkWidget:drag-motion
handler calls gtk_drag_get_data() to inspect the dragged data.

There's no way to set a default action here, you can use the
#GtkWidget:drag-motion callback for that. Here's an example which selects
the action to use depending on whether the control key is pressed or not:
|[
static void
drag_motion (GtkWidget *widget,
             GdkDragContext *context,
             gint x,
             gint y,
             guint time)
{
  GdkModifierType mask;

  gdk_window_get_pointer (gtk_widget_get_window (widget),
                          NULL, NULL, &amp;mask);
  if (mask &amp; GDK_CONTROL_MASK)
    gdk_drag_status (context, GDK_ACTION_COPY, time);
  else
    gdk_drag_status (context, GDK_ACTION_MOVE, time);
}
]|</doc>
      <source-position filename="gtkdnd.h" line="74"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1216">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1217">which types of default drag behavior to use</doc>
          <type name="DestDefaults" c:type="GtkDestDefaults"/>
        </parameter>
        <parameter name="targets"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1218">a pointer to an array of #GtkTargetEntry&lt;!-- --&gt;s
    indicating the drop types that this @widget will accept, or %NULL.
    Later you can access the list with gtk_drag_dest_get_target_list()
    and gtk_drag_dest_find_target().</doc>
          <array length="3" zero-terminated="0" c:type="const GtkTargetEntry*">
            <type name="TargetEntry" c:type="GtkTargetEntry"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1222">the number of entries in @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="actions" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1223">a bitmask of possible actions for a drop onto this @widget.</doc>
          <type name="Gdk.DragAction" c:type="GdkDragAction"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_set_proxy"
              c:identifier="gtk_drag_dest_set_proxy">
      <source-position filename="gtkdnd.h" line="80"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="proxy_window" transfer-ownership="none">
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="protocol" transfer-ownership="none">
          <type name="Gdk.DragProtocol" c:type="GdkDragProtocol"/>
        </parameter>
        <parameter name="use_coordinates" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_set_target_list"
              c:identifier="gtk_drag_dest_set_target_list">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1384">Sets the target types that this widget can accept from drag-and-drop.
The widget must first be made into a drag destination with
gtk_drag_dest_set().</doc>
      <source-position filename="gtkdnd.h" line="91"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1386">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="target_list"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1387">list of droppable targets, or %NULL for none</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_set_track_motion"
              c:identifier="gtk_drag_dest_set_track_motion"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="1500">Tells the widget to emit ::drag-motion and ::drag-leave
events regardless of the targets and the %GTK_DEST_DEFAULT_MOTION
flag.

This may be used when a widget wants to do generic
actions regardless of the targets that the source offers.</doc>
      <source-position filename="gtkdnd.h" line="97"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1502">a #GtkWidget that's a drag destination</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="track_motion" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="1503">whether to accept all targets</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_dest_unset" c:identifier="gtk_drag_dest_unset">
      <source-position filename="gtkdnd.h" line="85"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_finish" c:identifier="gtk_drag_finish">
      <source-position filename="gtkdnd.h" line="64"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="success" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="del" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_get_data" c:identifier="gtk_drag_get_data">
      <source-position filename="gtkdnd.h" line="60"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="context" transfer-ownership="none">
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="target" transfer-ownership="none">
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_get_source_widget"
              c:identifier="gtk_drag_get_source_widget">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="997">Determines the source widget for a drag.</doc>
      <source-position filename="gtkdnd.h" line="69"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="1003">if the drag is occurring
    within a single application, a pointer to the source widget.
    Otherwise, %NULL.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="999">a (destination side) drag context</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_highlight" c:identifier="gtk_drag_highlight">
      <source-position filename="gtkdnd.h" line="71"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_default_icon"
              c:identifier="gtk_drag_set_default_icon"
              deprecated="1">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3377">Changes the default drag icon. GTK+ retains references for the
arguments, and will release them when they are no longer needed.</doc>
      <doc-deprecated xml:space="preserve">Change the default drag icon via the stock system by
    changing the stock pixbuf for #GTK_STOCK_DND instead.</doc-deprecated>
      <source-position filename="gtkdnd.h" line="179"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="colormap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3379">the colormap of the icon</doc>
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </parameter>
        <parameter name="pixmap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3380">the image data for the icon</doc>
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </parameter>
        <parameter name="mask"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3381">the transparency mask for an image, or %NULL</doc>
          <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3382">The X offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3383">The Y offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_default"
              c:identifier="gtk_drag_set_icon_default">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3353">Sets the icon for a particular drag to the default
icon.</doc>
      <source-position filename="gtkdnd.h" line="164"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3355">the context for a drag. (This must be called
             with a  context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_name"
              c:identifier="gtk_drag_set_icon_name"
              version="2.8">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3301">Sets the icon for a given drag from a named themed icon. See
the docs for #GtkIconTheme for more details. Note that the
size of the icon depends on the icon theme (the icon is
loaded at the symbolic size #GTK_ICON_SIZE_DND), thus
@hot_x and @hot_y have to be used with care.</doc>
      <source-position filename="gtkdnd.h" line="159"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3303">the context for a drag. (This must be called
           with a context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="icon_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3305">name of icon to use</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3306">the X offset of the hotspot within the icon</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3307">the Y offset of the hotspot within the icon</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_pixbuf"
              c:identifier="gtk_drag_set_icon_pixbuf">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3196">Sets @pixbuf as the icon for a given drag.</doc>
      <source-position filename="gtkdnd.h" line="151"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3198">the context for a drag. (This must be called
           with a  context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="pixbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3200">the #GdkPixbuf to use as the drag icon.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3201">the X offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3202">the Y offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_pixmap"
              c:identifier="gtk_drag_set_icon_pixmap">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3240">Sets @pixmap as the icon for a given drag. GTK+ retains
references for the arguments, and will release them when
they are no longer needed. In general, gtk_drag_set_icon_pixbuf()
will be more convenient to use.</doc>
      <source-position filename="gtkdnd.h" line="145"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3242">the context for a drag. (This must be called
           with a  context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="colormap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3244">the colormap of the icon</doc>
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </parameter>
        <parameter name="pixmap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3245">the image data for the icon</doc>
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </parameter>
        <parameter name="mask"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3246">the transparency mask for the icon or %NULL for none.</doc>
          <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3247">the X offset within @pixmap of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3248">the Y offset within @pixmap of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_stock"
              c:identifier="gtk_drag_set_icon_stock">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3218">Sets the icon for a given drag from a stock ID.</doc>
      <source-position filename="gtkdnd.h" line="155"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3220">the context for a drag. (This must be called
           with a  context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="stock_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3222">the ID of the stock icon to use for the drag.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3223">the X offset within the icon of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3224">the Y offset within the icon of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_set_icon_widget"
              c:identifier="gtk_drag_set_icon_widget">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="3071">Changes the icon for a widget to a given widget. GTK+
will not destroy the icon, so if you don't want
it to persist, you should connect to the "drag-end"
signal and destroy it yourself.</doc>
      <source-position filename="gtkdnd.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3073">the context for a drag. (This must be called
          with a  context for the source side of a drag)</doc>
          <type name="Gdk.DragContext" c:type="GdkDragContext*"/>
        </parameter>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3075">a toplevel window to use as an icon.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="hot_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3076">the X offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="hot_y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="3077">the Y offset within @widget of the hotspot.</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_add_image_targets"
              c:identifier="gtk_drag_source_add_image_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2731">Add the writable image targets supported by #GtkSelection to
the target list of the drag source. The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_image_targets() and
gtk_drag_source_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="115"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2733">a #GtkWidget that's is a drag source</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_add_text_targets"
              c:identifier="gtk_drag_source_add_text_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2704">Add the text targets supported by #GtkSelection to
the target list of the drag source.  The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_text_targets() and
gtk_drag_source_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="114"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2706">a #GtkWidget that's is a drag source</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_add_uri_targets"
              c:identifier="gtk_drag_source_add_uri_targets"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2758">Add the URI targets supported by #GtkSelection to
the target list of the drag source.  The targets
are added with @info = 0. If you need another value,
use gtk_target_list_add_uri_targets() and
gtk_drag_source_set_target_list().</doc>
      <source-position filename="gtkdnd.h" line="116"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2760">a #GtkWidget that's is a drag source</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_get_target_list"
              c:identifier="gtk_drag_source_get_target_list"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2645">Gets the list of targets this widget can provide for
drag-and-drop.</doc>
      <source-position filename="gtkdnd.h" line="111"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkdnd.c"
             line="2652">the #GtkTargetList, or %NULL if none</doc>
        <type name="TargetList" c:type="GtkTargetList*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2647">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set" c:identifier="gtk_drag_source_set">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2556">Sets up a widget so that GTK+ will start a drag operation when the user
clicks and drags on the widget. The widget must have a window.</doc>
      <source-position filename="gtkdnd.h" line="103"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2558">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="start_button_mask" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2559">the bitmask of buttons that can start the drag</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
        <parameter name="targets"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2560">the table of targets that the drag will support,
    may be %NULL</doc>
          <array length="3" zero-terminated="0" c:type="const GtkTargetEntry*">
            <type name="TargetEntry" c:type="GtkTargetEntry"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2562">the number of items in @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="actions" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2563">the bitmask of possible actions for a drag from this widget</doc>
          <type name="Gdk.DragAction" c:type="GdkDragAction"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set_icon"
              c:identifier="gtk_drag_source_set_icon">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2818">Sets the icon that will be used for drags from a particular widget
from a pixmap/mask. GTK+ retains references for the arguments, and
will release them when they are no longer needed.
Use gtk_drag_source_set_icon_pixbuf() instead.</doc>
      <source-position filename="gtkdnd.h" line="118"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2820">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="colormap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2821">the colormap of the icon</doc>
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </parameter>
        <parameter name="pixmap" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2822">the image data for the icon</doc>
          <type name="Gdk.Pixmap" c:type="GdkPixmap*"/>
        </parameter>
        <parameter name="mask"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2823">the transparency mask for an image.</doc>
          <type name="Gdk.Bitmap" c:type="GdkBitmap*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set_icon_name"
              c:identifier="gtk_drag_source_set_icon_name"
              version="2.8">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2914">Sets the icon that will be used for drags from a particular source
to a themed icon. See the docs for #GtkIconTheme for more details.</doc>
      <source-position filename="gtkdnd.h" line="126"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2916">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="icon_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2917">name of icon to use</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set_icon_pixbuf"
              c:identifier="gtk_drag_source_set_icon_pixbuf">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2860">Sets the icon that will be used for drags from a particular widget
from a #GdkPixbuf. GTK+ retains a reference for @pixbuf and will
release it when it is no longer needed.</doc>
      <source-position filename="gtkdnd.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2862">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="pixbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2863">the #GdkPixbuf for the drag icon</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set_icon_stock"
              c:identifier="gtk_drag_source_set_icon_stock">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2888">Sets the icon that will be used for drags from a particular source
to a stock icon.</doc>
      <source-position filename="gtkdnd.h" line="124"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2890">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="stock_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2891">the ID of the stock icon to use</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_set_target_list"
              c:identifier="gtk_drag_source_set_target_list"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkdnd.c"
           line="2668">Changes the target types that this widget offers for drag-and-drop.
The widget must first be made into a drag source with
gtk_drag_source_set().</doc>
      <source-position filename="gtkdnd.h" line="112"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2670">a #GtkWidget that's a drag source</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="target_list"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkdnd.c"
               line="2671">list of draggable targets, or %NULL for none</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_source_unset" c:identifier="gtk_drag_source_unset">
      <source-position filename="gtkdnd.h" line="109"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="drag_unhighlight" c:identifier="gtk_drag_unhighlight">
      <source-position filename="gtkdnd.h" line="72"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_arrow"
              c:identifier="gtk_draw_arrow"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1070">Draws an arrow in the given rectangle on @window using the given
parameters. @arrow_type determines the direction of the arrow.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_arrow() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="511"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1072">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1073">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1074">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1075">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="arrow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1076">the type of arrow to draw</doc>
          <type name="ArrowType" c:type="GtkArrowType"/>
        </parameter>
        <parameter name="fill" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1077">%TRUE if the arrow tip should be filled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1078">x origin of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1079">y origin of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1080">width of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1081">height of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_box"
              c:identifier="gtk_draw_box"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1165">Draws a box on @window with the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_box() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="529"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1167">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1168">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1169">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1170">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1171">x origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1172">y origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1173">the width of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1174">the height of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_box_gap"
              c:identifier="gtk_draw_box_gap"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1362">Draws a box in @window using the given style and state and shadow type,
leaving a gap in one side.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_box_gap() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="580"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1364">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1365">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1366">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1367">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1368">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1369">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1370">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1371">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1372">side in which to leave the gap</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
        <parameter name="gap_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1373">starting position of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1374">width of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_check"
              c:identifier="gtk_draw_check"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1227">Draws a check button indicator in the given rectangle on @window with
the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_check() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="545"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1229">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1230">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1231">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1232">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1233">x origin of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1234">y origin of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1235">the width of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1236">the height of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_diamond"
              c:identifier="gtk_draw_diamond"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1106">Draws a diamond in the given rectangle on @window using the given
parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_diamond() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="521"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1108">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1109">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1110">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1111">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1112">x origin of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1113">y origin of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1114">width of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1115">height of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_expander"
              c:identifier="gtk_draw_expander"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1526">Draws an expander as used in #GtkTreeView.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_expander() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="624"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1528">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1529">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1530">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1531">the x position to draw the expander at</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1532">the y position to draw the expander at</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="expander_style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1533">the style to draw the expander in</doc>
          <type name="ExpanderStyle" c:type="GtkExpanderStyle"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_extension"
              c:identifier="gtk_draw_extension"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1400">Draws an extension, i.e. a notebook tab.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_extension() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="591"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1402">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1403">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1404">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1405">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1406">x origin of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1407">y origin of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1408">width of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1409">width of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1410">the side on to which the extension is attached</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_flat_box"
              c:identifier="gtk_draw_flat_box"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1196">Draws a flat box on @window with the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_flat_box() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="537"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1198">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1199">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1200">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1201">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1202">x origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1203">y origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1204">the width of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1205">the height of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_focus"
              c:identifier="gtk_draw_focus"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1433">Draws a focus indicator around the given rectangle on @window using the
given style.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_focus() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="600"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1435">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1436">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1437">the x origin of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1438">the y origin of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1439">the width of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1440">the height of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_handle"
              c:identifier="gtk_draw_handle"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1493">Draws a handle as used in #GtkHandleBox and #GtkPaned.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_handle() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="615"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1495">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1496">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1497">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1498">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1499">x origin of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1500">y origin of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1501">with of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1502">height of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="orientation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1503">the orientation of the handle</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_hline"
              c:identifier="gtk_draw_hline"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="952">Draws a horizontal line from (@x1, @y) to (@x2, @y) in @window
using the given style and state.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_hline() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="484"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="954">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="955">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="956">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="x1" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="957">the starting x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="x2" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="958">the ending x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="959">the y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_insertion_cursor"
              c:identifier="gtk_draw_insertion_cursor"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="7163">Draws a text caret on @drawable at @location. This is not a style function
but merely a convenience function for drawing the standard cursor shape.</doc>
      <source-position filename="gtkstyle.h" line="932"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7165">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="drawable" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7166">a #GdkDrawable</doc>
          <type name="Gdk.Drawable" c:type="GdkDrawable*"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7167">rectangle to which the output is clipped, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7169">location where to draw the cursor (@location-&gt;width is ignored)</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="is_primary" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7170">if the cursor should be the primary cursor color.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="direction" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7171">whether the cursor is left-to-right or
            right-to-left. Should never be #GTK_TEXT_DIR_NONE</doc>
          <type name="TextDirection" c:type="GtkTextDirection"/>
        </parameter>
        <parameter name="draw_arrow" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="7173">%TRUE to draw a directional arrow on the
       cursor. Should be %FALSE unless the cursor is split.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_layout" c:identifier="gtk_draw_layout">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1555">Draws a layout on @window using the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="630"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1557">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1558">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1559">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="use_text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1560">whether to use the text or foreground
           graphics context of @style</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1562">x origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1563">y origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1564">the layout to draw</doc>
          <type name="Pango.Layout" c:type="PangoLayout*"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_option"
              c:identifier="gtk_draw_option"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1259">Draws a radio button indicator in the given rectangle on @window with
the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_option() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="553"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1261">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1262">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1263">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1264">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1265">x origin of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1266">y origin of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1267">the width of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1268">the height of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_polygon"
              c:identifier="gtk_draw_polygon"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1041">Draws a polygon on @window with the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_polygon() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="504"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1043">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1044">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1045">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1046">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="points" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1047">an array of #GdkPoint&lt;!-- --&gt;s</doc>
          <type name="Gdk.Point" c:type="GdkPoint*"/>
        </parameter>
        <parameter name="npoints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1048">length of @points</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="fill" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1049">%TRUE if the polygon should be filled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_resize_grip"
              c:identifier="gtk_draw_resize_grip"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1585">Draws a resize grip in the given rectangle on @window using the given
parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_resize_grip() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="637"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1587">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1588">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1589">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1590">the edge in which to draw the resize grip</doc>
          <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1591">the x origin of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1592">the y origin of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1593">the width of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1594">the height of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_shadow"
              c:identifier="gtk_draw_shadow"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1009">Draws a shadow around the given rectangle in @window
using the given style and state and shadow type.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_shadow() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="496"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1011">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1012">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1013">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1014">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1015">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1016">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1017">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1018">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_shadow_gap"
              c:identifier="gtk_draw_shadow_gap"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1323">Draws a shadow around the given rectangle in @window
using the given style and state and shadow type, leaving a
gap in one side.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_shadow_gap() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="569"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1325">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1326">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1327">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1328">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1329">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1330">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1331">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1332">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1333">side in which to leave the gap</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
        <parameter name="gap_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1334">starting position of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1335">width of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_slider" c:identifier="gtk_draw_slider">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1461">Draws a slider in the given rectangle on @window using the
given style and orientation.</doc>
      <source-position filename="gtkstyle.h" line="606"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1463">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1464">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1465">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1466">a shadow</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1467">the x origin of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1468">the y origin of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1469">the width of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1470">the height of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="orientation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1471">the orientation to be used</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_string"
              c:identifier="gtk_draw_string"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1138">Draws a text string on @window with the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_layout() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="915"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1140">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1141">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1142">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1143">x origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1144">y origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1145">the string to draw</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_tab"
              c:identifier="gtk_draw_tab"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="1291">Draws an option menu tab (i.e. the up and down pointing arrows)
in the given rectangle on @window using the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_tab() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="561"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1293">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1294">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1295">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1296">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1297">x origin of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1298">y origin of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1299">the width of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="1300">the height of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="draw_vline"
              c:identifier="gtk_draw_vline"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="981">Draws a vertical line from (@x, @y1_) to (@x, @y2_) in @window
using the given style and state.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_vline() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="490"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="983">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="984">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="985">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="y1_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="986">the starting y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y2_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="987">the ending y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="988">the x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="events_pending" c:identifier="gtk_events_pending">
      <source-position filename="gtkmain.h" line="137"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="exit" c:identifier="gtk_exit">
      <source-position filename="gtkmain.h" line="131"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="error_code" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="false" c:identifier="gtk_false">
      <source-position filename="gtkmain.h" line="153"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="file_chooser_error_quark"
              c:identifier="gtk_file_chooser_error_quark"
              moved-to="FileChooserError.quark"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkfilechooser.c"
           line="954">Registers an error quark for #GtkFileChooser if necessary.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkfilechooser.c"
             line="959">The error quark used for #GtkFileChooser errors.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <docsection name="filesystem">
      <doc xml:space="preserve"
           filename="gtkmountoperation.c"
           line="58">The functions and objects described here make working with GTK+ and
GIO more convenient.

#GtkMountOperation is needed when mounting volumes:
It is an implementation of #GMountOperation that can be used with
GIO functions for mounting volumes such as
g_file_mount_enclosing_volume(), g_file_mount_mountable(),
g_volume_mount(), g_mount_unmount_with_operation() and others.

When necessary, #GtkMountOperation shows dialogs to ask for
passwords, questions or show processes blocking unmount.

gtk_show_uri() is a convenient way to launch applications for URIs.

Another object that is worth mentioning in this context is
#GdkAppLaunchContext, which provides visual feedback when lauching
applications.</doc>
    </docsection>
    <function name="gc_get" c:identifier="gtk_gc_get" introspectable="0">
      <source-position filename="gtkgc.h" line="40"/>
      <return-value>
        <type name="Gdk.GC" c:type="GdkGC*"/>
      </return-value>
      <parameters>
        <parameter name="depth" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="colormap" transfer-ownership="none">
          <type name="Gdk.Colormap" c:type="GdkColormap*"/>
        </parameter>
        <parameter name="values" transfer-ownership="none">
          <type name="Gdk.GCValues" c:type="GdkGCValues*"/>
        </parameter>
        <parameter name="values_mask" transfer-ownership="none">
          <type name="Gdk.GCValuesMask" c:type="GdkGCValuesMask"/>
        </parameter>
      </parameters>
    </function>
    <function name="gc_release" c:identifier="gtk_gc_release">
      <source-position filename="gtkgc.h" line="44"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="gc" transfer-ownership="none">
          <type name="Gdk.GC" c:type="GdkGC*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_current_event" c:identifier="gtk_get_current_event">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="2306">Obtains a copy of the event currently being processed by GTK+.  For
example, if you get a "clicked" signal from #GtkButton, the current
event will be the #GdkEventButton that triggered the "clicked"
signal. The returned event must be freed with gdk_event_free().
If there is no current event, the function returns %NULL.</doc>
      <source-position filename="gtkmain.h" line="209"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="2315">a copy of the current event, or %NULL if no
    current event.</doc>
        <type name="Gdk.Event" c:type="GdkEvent*"/>
      </return-value>
    </function>
    <function name="get_current_event_state"
              c:identifier="gtk_get_current_event_state">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="2344">If there is a current event and it has a state field, place
that state field in @state and return %TRUE, otherwise return
%FALSE.</doc>
      <source-position filename="gtkmain.h" line="211"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="2352">%TRUE if there was a current event and it had a state field</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="state"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="2346">a location to store the state of the current event</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_current_event_time"
              c:identifier="gtk_get_current_event_time">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="2327">If there is a current event and it has a timestamp, return that
timestamp, otherwise return %GDK_CURRENT_TIME.</doc>
      <source-position filename="gtkmain.h" line="210"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="2333">the timestamp from the current event, or %GDK_CURRENT_TIME.</doc>
        <type name="guint32" c:type="guint32"/>
      </return-value>
    </function>
    <function name="get_default_language"
              c:identifier="gtk_get_default_language">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="1220">Returns the #PangoLanguage for the default language currently in
effect. (Note that this can change over the life of an
application.)  The default language is derived from the current
locale. It determines, for example, whether GTK+ uses the
right-to-left or left-to-right text direction.

This function is equivalent to pango_language_get_default().  See
that function for details.</doc>
      <source-position filename="gtkmain.h" line="136"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="1232">the default language as a #PangoLanguage, must not be
freed</doc>
        <type name="Pango.Language" c:type="PangoLanguage*"/>
      </return-value>
    </function>
    <function name="get_event_widget" c:identifier="gtk_get_event_widget">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="2368">If @event is %NULL or the event was not associated with any widget,
returns %NULL, otherwise returns the widget that received the event
originally.</doc>
      <source-position filename="gtkmain.h" line="213"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="2376">the widget that originally
    received @event, or %NULL</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="2370">a #GdkEvent</doc>
          <type name="Gdk.Event" c:type="GdkEvent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_option_group"
              c:identifier="gtk_get_option_group"
              version="2.6">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="831">Returns a #GOptionGroup for the commandline arguments recognized
by GTK+ and GDK. You should add this group to your #GOptionContext
with g_option_context_add_group(), if you are using
g_option_context_parse() to parse your commandline arguments.</doc>
      <source-position filename="gtkmain.h" line="107"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="841">a #GOptionGroup for the commandline arguments recognized
  by GTK+</doc>
        <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
      </return-value>
      <parameters>
        <parameter name="open_default_display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="833">whether to open the default display
   when parsing the commandline arguments</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="grab_add" c:identifier="gtk_grab_add">
      <source-position filename="gtkmain.h" line="155"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="grab_get_current" c:identifier="gtk_grab_get_current">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="1899">Queries the current grab of the default window group.</doc>
      <source-position filename="gtkmain.h" line="156"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="1904">The widget which currently
    has the grab or %NULL if no grab is active</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
    </function>
    <function name="grab_remove" c:identifier="gtk_grab_remove">
      <source-position filename="gtkmain.h" line="157"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="gtkstock">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="38">Stock items represent commonly-used menu or toolbar items such as
"Open" or "Exit". Each stock item is identified by a stock ID;
stock IDs are just strings, but macros such as #GTK_STOCK_OPEN are
provided to avoid typing mistakes in the strings.
Applications can register their own stock items in addition to those
built-in to GTK+.

Each stock ID can be associated with a #GtkStockItem, which contains
the user-visible label, keyboard accelerator, and translation domain
of the menu or toolbar item; and/or with an icon stored in a
#GtkIconFactory. See &lt;link
linkend="gtk-Themeable-Stock-Images"&gt;GtkIconFactory&lt;/link&gt; for
more information on stock icons. The connection between a
#GtkStockItem and stock icons is purely conventional (by virtue of
using the same stock ID); it's possible to register a stock item but
no icon, and vice versa. Stock icons may have a RTL variant which gets
used for right-to-left locales.</doc>
    </docsection>
    <docsection name="gtkvbbox">
      <doc xml:space="preserve"
           filename="gtkvbbox.c"
           line="33">A button box should be used to provide a consistent layout of buttons
throughout your application. The layout/spacing can be altered by the
programmer, or if desired, by the user to alter the 'feel' of a
program to a small degree.

A #GtkVButtonBox is created with gtk_vbutton_box_new(). Buttons are
packed into a button box the same way widgets are added to any other
container, using gtk_container_add(). You can also use
gtk_box_pack_start() or gtk_box_pack_end(), but for button boxes both
these functions work just like gtk_container_add(), ie., they pack the
button in a way that depends on the current layout style and on
whether the button has had gtk_button_box_set_child_secondary() called
on it.

The spacing between buttons can be set with gtk_box_set_spacing(). The
arrangement and layout of the buttons can be changed with
gtk_button_box_set_layout().</doc>
    </docsection>
    <function name="icon_size_from_name"
              c:identifier="gtk_icon_size_from_name"
              moved-to="IconSize.from_name">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="1028">Looks up the icon size associated with @name.</doc>
      <source-position filename="gtkiconfactory.h" line="114"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkiconfactory.c"
             line="1035">the icon size</doc>
        <type name="gint" c:type="GtkIconSize"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="1030">the name to look up.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_size_get_name"
              c:identifier="gtk_icon_size_get_name"
              moved-to="IconSize.get_name">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="1052">Gets the canonical name of the given icon size. The returned string
is statically allocated and should not be freed.</doc>
      <source-position filename="gtkiconfactory.h" line="115"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkiconfactory.c"
             line="1055">the name of the given icon size.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="1054">a #GtkIconSize.</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_size_lookup"
              c:identifier="gtk_icon_size_lookup"
              moved-to="IconSize.lookup">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="885">Obtains the pixel size of a semantic icon size, possibly
modified by user preferences for the default #GtkSettings.
(See gtk_icon_size_lookup_for_settings().)
Normally @size would be
#GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc.  This function
isn't normally needed, gtk_widget_render_icon() is the usual
way to get an icon for rendering, then just look at the size of
the rendered pixbuf. The rendered pixbuf may not even correspond to
the width/height returned by gtk_icon_size_lookup(), because themes
are free to render the pixbuf however they like, including changing
the usual size.</doc>
      <source-position filename="gtkiconfactory.h" line="100"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkiconfactory.c"
             line="903">%TRUE if @size was a valid size</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="887">an icon size</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </parameter>
        <parameter name="width"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="888">location to store icon width</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="height"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="889">location to store icon height</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_size_lookup_for_settings"
              c:identifier="gtk_icon_size_lookup_for_settings"
              moved-to="IconSize.lookup_for_settings"
              version="2.2">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="851">Obtains the pixel size of a semantic icon size, possibly
modified by user preferences for a particular
#GtkSettings. Normally @size would be
#GTK_ICON_SIZE_MENU, #GTK_ICON_SIZE_BUTTON, etc.  This function
isn't normally needed, gtk_widget_render_icon() is the usual
way to get an icon for rendering, then just look at the size of
the rendered pixbuf. The rendered pixbuf may not even correspond to
the width/height returned by gtk_icon_size_lookup(), because themes
are free to render the pixbuf however they like, including changing
the usual size.</doc>
      <source-position filename="gtkiconfactory.h" line="104"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkiconfactory.c"
             line="870">%TRUE if @size was a valid size</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="853">a #GtkSettings object, used to determine
  which set of user preferences to used.</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="855">an icon size</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </parameter>
        <parameter name="width"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="856">location to store icon width</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="height"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="857">location to store icon height</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_size_register"
              c:identifier="gtk_icon_size_register"
              moved-to="IconSize.register">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="961">Registers a new icon size, along the same lines as #GTK_ICON_SIZE_MENU,
etc. Returns the integer value for the size.</doc>
      <source-position filename="gtkiconfactory.h" line="109"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkiconfactory.c"
             line="970">integer value representing the size</doc>
        <type name="gint" c:type="GtkIconSize"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="963">name of the icon size</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="964">the icon width</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="965">the icon height</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_size_register_alias"
              c:identifier="gtk_icon_size_register_alias"
              moved-to="IconSize.register_alias">
      <doc xml:space="preserve"
           filename="gtkiconfactory.c"
           line="984">Registers @alias as another name for @target.
So calling gtk_icon_size_from_name() with @alias as argument
will return @target.</doc>
      <source-position filename="gtkiconfactory.h" line="112"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="alias" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="986">an alias for @target</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="target" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkiconfactory.c"
               line="987">an existing icon size</doc>
          <type name="gint" c:type="GtkIconSize"/>
        </parameter>
      </parameters>
    </function>
    <function name="icon_theme_error_quark"
              c:identifier="gtk_icon_theme_error_quark"
              moved-to="IconThemeError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="idle_add" c:identifier="gtk_idle_add" introspectable="0">
      <source-position filename="gtkmain.h" line="184"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="function" transfer-ownership="none" closure="1">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="idle_add_full"
              c:identifier="gtk_idle_add_full"
              introspectable="0">
      <source-position filename="gtkmain.h" line="189"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="priority" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="function" transfer-ownership="none">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="marshal"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <type name="CallbackMarshal" c:type="GtkCallbackMarshal"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="idle_add_priority"
              c:identifier="gtk_idle_add_priority"
              introspectable="0">
      <source-position filename="gtkmain.h" line="186"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="priority" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="function" transfer-ownership="none" closure="2">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="idle_remove" c:identifier="gtk_idle_remove">
      <source-position filename="gtkmain.h" line="194"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="idle_handler_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="idle_remove_by_data"
              c:identifier="gtk_idle_remove_by_data">
      <source-position filename="gtkmain.h" line="195"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="gtk_init">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="1015">Call this function before using any other GTK+ functions in your GUI
applications.  It will initialize everything needed to operate the
toolkit and parses some standard command line options.

@argc and @argv are adjusted accordingly so your own code will
never see those standard arguments.

Note that there are some alternative ways to initialize GTK+:
if you are calling gtk_parse_args(), gtk_init_check(),
gtk_init_with_args() or g_option_context_parse() with
the option group returned by gtk_get_option_group(),
you &lt;emphasis&gt;don't&lt;/emphasis&gt; have to call gtk_init().

&lt;note&gt;&lt;para&gt;
This function will terminate your program if it was unable to
initialize the windowing system for some reason. If you want
your program to fall back to a textual interface you want to
call gtk_init_check() instead.
&lt;/para&gt;&lt;/note&gt;

&lt;note&gt;&lt;para&gt;
Since 2.18, GTK+ calls &lt;literal&gt;signal (SIGPIPE, SIG_IGN)&lt;/literal&gt;
during initialization, to ignore SIGPIPE signals, since these are
almost never wanted in graphical applications. If you do need to
handle SIGPIPE for some reason, reset the handler after gtk_init(),
but notice that other libraries (e.g. libdbus or gvfs) might do
similar things.
&lt;/para&gt;&lt;/note&gt;</doc>
      <source-position filename="gtkmain.h" line="94"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="1017">Address of the &lt;parameter&gt;argc&lt;/parameter&gt; parameter of
    your main() function. Changed if any arguments were handled</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="1019">Address of the
    &lt;parameter&gt;argv&lt;/parameter&gt; parameter of main(). Any options
    understood by GTK+ are stripped before return.</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="init_add" c:identifier="gtk_init_add" introspectable="0">
      <source-position filename="gtkmain.h" line="160"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="function" transfer-ownership="none" closure="1">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="init_check" c:identifier="gtk_init_check">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="984">This function does the same work as gtk_init() with only
a single change: It does not terminate the program if the GUI can't be
initialized. Instead it returns %FALSE on failure.

This way the application can fall back to some other means of communication
with the user - for example a curses or command line interface.</doc>
      <source-position filename="gtkmain.h" line="97"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="998">%TRUE if the GUI has been successfully initialized,
              %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="986">Address of the &lt;parameter&gt;argc&lt;/parameter&gt; parameter of your
  main() function. Changed if any arguments were handled.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="988">Address of the &lt;parameter&gt;argv&lt;/parameter&gt; parameter of main().
  Any parameters understood by gtk_init() are stripped before return.</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="init_with_args"
              c:identifier="gtk_init_with_args"
              version="2.6"
              throws="1">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="867">This function does the same work as gtk_init_check().
Additionally, it allows you to add your own commandline options,
and it automatically generates nicely formatted
&lt;option&gt;--help&lt;/option&gt; output. Note that your program will
be terminated after writing out the help output.</doc>
      <source-position filename="gtkmain.h" line="100"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="888">%TRUE if the GUI has been successfully initialized,
              %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="869">a pointer to the number of command line arguments.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="870">a pointer to the array of
   command line arguments.</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
        <parameter name="parameter_string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="872">a string which is displayed in
   the first line of &lt;option&gt;--help&lt;/option&gt; output, after
   &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="entries" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="875">a %NULL-terminated array
   of #GOptionEntry&lt;!-- --&gt;s describing the options of your program</doc>
          <array c:type="GOptionEntry*">
            <type name="GLib.OptionEntry" c:type="GOptionEntry"/>
          </array>
        </parameter>
        <parameter name="translation_domain" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="877">a translation domain to use for translating
   the &lt;option&gt;--help&lt;/option&gt; output for the options in @entries
   and the @parameter_string with gettext(), or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="input_add_full"
              c:identifier="gtk_input_add_full"
              introspectable="0">
      <source-position filename="gtkmain.h" line="196"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="source" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="condition" transfer-ownership="none">
          <type name="Gdk.InputCondition" c:type="GdkInputCondition"/>
        </parameter>
        <parameter name="function" transfer-ownership="none">
          <type name="Gdk.InputFunction" c:type="GdkInputFunction"/>
        </parameter>
        <parameter name="marshal"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <type name="CallbackMarshal" c:type="GtkCallbackMarshal"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="input_remove" c:identifier="gtk_input_remove">
      <source-position filename="gtkmain.h" line="202"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="input_handler_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="key_snooper_install"
              c:identifier="gtk_key_snooper_install"
              introspectable="0">
      <source-position filename="gtkmain.h" line="205"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="snooper" transfer-ownership="none" closure="1">
          <type name="KeySnoopFunc" c:type="GtkKeySnoopFunc"/>
        </parameter>
        <parameter name="func_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="key_snooper_remove" c:identifier="gtk_key_snooper_remove">
      <source-position filename="gtkmain.h" line="207"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="snooper_handler_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="main" c:identifier="gtk_main">
      <source-position filename="gtkmain.h" line="145"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="main_do_event" c:identifier="gtk_main_do_event">
      <source-position filename="gtkmain.h" line="143"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="event" transfer-ownership="none">
          <type name="Gdk.Event" c:type="GdkEvent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="main_iteration" c:identifier="gtk_main_iteration">
      <source-position filename="gtkmain.h" line="148"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="main_iteration_do" c:identifier="gtk_main_iteration_do">
      <source-position filename="gtkmain.h" line="150"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="blocking" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="main_level" c:identifier="gtk_main_level">
      <source-position filename="gtkmain.h" line="146"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="main_quit" c:identifier="gtk_main_quit">
      <source-position filename="gtkmain.h" line="147"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="marshal_BOOLEAN__POINTER"
              c:identifier="gtk_marshal_BOOLEAN__POINTER">
      <source-position filename="gtkmarshal.h" line="23"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__POINTER_INT_INT"
              c:identifier="gtk_marshal_BOOLEAN__POINTER_INT_INT">
      <source-position filename="gtkmarshal.h" line="45"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__POINTER_INT_INT_UINT"
              c:identifier="gtk_marshal_BOOLEAN__POINTER_INT_INT_UINT">
      <source-position filename="gtkmarshal.h" line="56"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__POINTER_POINTER_INT_INT"
              c:identifier="gtk_marshal_BOOLEAN__POINTER_POINTER_INT_INT">
      <source-position filename="gtkmarshal.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__POINTER_STRING_STRING_POINTER"
              c:identifier="gtk_marshal_BOOLEAN__POINTER_STRING_STRING_POINTER">
      <source-position filename="gtkmarshal.h" line="67"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_BOOLEAN__VOID"
              c:identifier="gtk_marshal_BOOLEAN__VOID">
      <source-position filename="gtkmarshal.h" line="12"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_ENUM__ENUM" c:identifier="gtk_marshal_ENUM__ENUM">
      <source-position filename="gtkmarshal.h" line="78"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_INT__POINTER"
              c:identifier="gtk_marshal_INT__POINTER">
      <source-position filename="gtkmarshal.h" line="87"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_INT__POINTER_CHAR_CHAR"
              c:identifier="gtk_marshal_INT__POINTER_CHAR_CHAR">
      <source-position filename="gtkmarshal.h" line="96"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__ENUM_FLOAT"
              c:identifier="gtk_marshal_VOID__ENUM_FLOAT">
      <source-position filename="gtkmarshal.h" line="120"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__ENUM_FLOAT_BOOLEAN"
              c:identifier="gtk_marshal_VOID__ENUM_FLOAT_BOOLEAN">
      <source-position filename="gtkmarshal.h" line="131"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__INT_INT"
              c:identifier="gtk_marshal_VOID__INT_INT">
      <source-position filename="gtkmarshal.h" line="147"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__INT_INT_POINTER"
              c:identifier="gtk_marshal_VOID__INT_INT_POINTER">
      <source-position filename="gtkmarshal.h" line="158"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_INT"
              c:identifier="gtk_marshal_VOID__POINTER_INT">
      <source-position filename="gtkmarshal.h" line="184"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT"
              c:identifier="gtk_marshal_VOID__POINTER_INT_INT_POINTER_UINT_UINT">
      <source-position filename="gtkmarshal.h" line="261"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_POINTER"
              c:identifier="gtk_marshal_VOID__POINTER_POINTER">
      <source-position filename="gtkmarshal.h" line="195"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_POINTER_POINTER"
              c:identifier="gtk_marshal_VOID__POINTER_POINTER_POINTER">
      <source-position filename="gtkmarshal.h" line="206"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_POINTER_UINT_UINT"
              c:identifier="gtk_marshal_VOID__POINTER_POINTER_UINT_UINT">
      <source-position filename="gtkmarshal.h" line="250"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_STRING_STRING"
              c:identifier="gtk_marshal_VOID__POINTER_STRING_STRING">
      <source-position filename="gtkmarshal.h" line="217"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_UINT"
              c:identifier="gtk_marshal_VOID__POINTER_UINT">
      <source-position filename="gtkmarshal.h" line="228"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_UINT_ENUM"
              c:identifier="gtk_marshal_VOID__POINTER_UINT_ENUM">
      <source-position filename="gtkmarshal.h" line="239"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__POINTER_UINT_UINT"
              c:identifier="gtk_marshal_VOID__POINTER_UINT_UINT">
      <source-position filename="gtkmarshal.h" line="272"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__STRING_INT_POINTER"
              c:identifier="gtk_marshal_VOID__STRING_INT_POINTER">
      <source-position filename="gtkmarshal.h" line="288"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER"
              c:identifier="gtk_marshal_VOID__UINT_POINTER_UINT_ENUM_ENUM_POINTER">
      <source-position filename="gtkmarshal.h" line="304"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__UINT_POINTER_UINT_UINT_ENUM"
              c:identifier="gtk_marshal_VOID__UINT_POINTER_UINT_UINT_ENUM">
      <source-position filename="gtkmarshal.h" line="315"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="marshal_VOID__UINT_STRING"
              c:identifier="gtk_marshal_VOID__UINT_STRING">
      <source-position filename="gtkmarshal.h" line="326"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="return_value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="n_param_values" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="param_values" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="invocation_hint"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="marshal_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="menu_append"
                    c:identifier="gtk_menu_append"
                    introspectable="0">
      <source-position filename="gtkmenu.h" line="207"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_bar_append"
                    c:identifier="gtk_menu_bar_append"
                    introspectable="0">
      <source-position filename="gtkmenubar.h" line="79"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_bar_insert"
                    c:identifier="gtk_menu_bar_insert"
                    introspectable="0">
      <source-position filename="gtkmenubar.h" line="81"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
        <parameter name="pos">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_bar_prepend"
                    c:identifier="gtk_menu_bar_prepend"
                    introspectable="0">
      <source-position filename="gtkmenubar.h" line="80"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_insert"
                    c:identifier="gtk_menu_insert"
                    introspectable="0">
      <source-position filename="gtkmenu.h" line="209"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
        <parameter name="pos">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_item_right_justify"
                    c:identifier="gtk_menu_item_right_justify"
                    introspectable="0">
      <source-position filename="gtkmenuitem.h" line="140"/>
      <parameters>
        <parameter name="menu_item">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="menu_prepend"
                    c:identifier="gtk_menu_prepend"
                    introspectable="0">
      <source-position filename="gtkmenu.h" line="208"/>
      <parameters>
        <parameter name="menu">
        </parameter>
        <parameter name="child">
        </parameter>
      </parameters>
    </function-macro>
    <function name="paint_arrow" c:identifier="gtk_paint_arrow">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6052">Draws an arrow in the given rectangle on @window using the given
parameters. @arrow_type determines the direction of the arrow.</doc>
      <source-position filename="gtkstyle.h" line="686"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6054">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6055">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6056">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6057">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6058">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6060">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6061">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="arrow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6062">the type of arrow to draw</doc>
          <type name="ArrowType" c:type="GtkArrowType"/>
        </parameter>
        <parameter name="fill" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6063">%TRUE if the arrow tip should be filled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6064">x origin of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6065">y origin of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6066">width of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6067">height of the rectangle to draw the arrow in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_box" c:identifier="gtk_paint_box">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6173">Draws a box on @window with the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="710"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6175">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6176">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6177">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6178">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6179">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6181">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6182">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6183">x origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6184">y origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6185">the width of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6186">the height of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_box_gap" c:identifier="gtk_paint_box_gap">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6419">Draws a box in @window using the given style and state and shadow type,
leaving a gap in one side.</doc>
      <source-position filename="gtkstyle.h" line="779"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6421">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6422">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6423">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6424">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6425">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6427">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6428">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6429">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6430">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6431">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6432">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6433">side in which to leave the gap</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
        <parameter name="gap_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6434">starting position of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6435">width of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_check" c:identifier="gtk_paint_check">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6251">Draws a check button indicator in the given rectangle on @window with
the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="732"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6253">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6254">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6255">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6256">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6257">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6259">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6260">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6261">x origin of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6262">y origin of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6263">the width of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6264">the height of the rectangle to draw the check in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_diamond" c:identifier="gtk_paint_diamond">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6096">Draws a diamond in the given rectangle on @window using the given
parameters.</doc>
      <source-position filename="gtkstyle.h" line="699"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6098">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6099">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6100">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6101">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6102">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6104">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6105">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6106">x origin of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6107">y origin of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6108">width of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6109">height of the rectangle to draw the diamond in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_expander" c:identifier="gtk_paint_expander">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6627">Draws an expander as used in #GtkTreeView. @x and @y specify the
center the expander. The size of the expander is determined by the
"expander-size" style property of @widget.  (If widget is not
specified or doesn't have an "expander-size" property, an
unspecified default size will be used, since the caller doesn't
have sufficient information to position the expander, this is
likely not useful.) The expander is expander_size pixels tall
in the collapsed position and expander_size pixels wide in the
expanded position.</doc>
      <source-position filename="gtkstyle.h" line="839"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6629">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6630">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6631">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6632">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6634">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6635">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6636">the x position to draw the expander at</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6637">the y position to draw the expander at</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="expander_style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6638">the style to draw the expander in; determines
  whether the expander is collapsed, expanded, or in an
  intermediate state.</doc>
          <type name="ExpanderStyle" c:type="GtkExpanderStyle"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_extension" c:identifier="gtk_paint_extension">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6465">Draws an extension, i.e. a notebook tab.</doc>
      <source-position filename="gtkstyle.h" line="793"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6467">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6468">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6469">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6470">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6471">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6473">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6474">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6475">x origin of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6476">y origin of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6477">width of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6478">width of the extension</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6479">the side on to which the extension is attached</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_flat_box" c:identifier="gtk_paint_flat_box">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6212">Draws a flat box on @window with the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="721"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6214">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6215">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6216">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6217">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6218">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6220">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6221">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6222">x origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6223">y origin of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6224">the width of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6225">the height of the box</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_focus" c:identifier="gtk_paint_focus">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6506">Draws a focus indicator around the given rectangle on @window using the
given style.</doc>
      <source-position filename="gtkstyle.h" line="805"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6508">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6509">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6510">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6511">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6513">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6514">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6515">the x origin of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6516">the y origin of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6517">the width of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6518">the height of the rectangle around which to draw a focus indicator</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_handle" c:identifier="gtk_paint_handle">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6586">Draws a handle as used in #GtkHandleBox and #GtkPaned.</doc>
      <source-position filename="gtkstyle.h" line="827"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6588">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6589">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6590">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6591">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6592">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6594">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6595">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6596">x origin of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6597">y origin of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6598">with of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6599">height of the handle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="orientation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6600">the orientation of the handle</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_hline" c:identifier="gtk_paint_hline">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="5903">Draws a horizontal line from (@x1, @y) to (@x2, @y) in @window
using the given style and state.</doc>
      <source-position filename="gtkstyle.h" line="647"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5905">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5906">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5907">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5908">rectangle to which the output is clipped, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5910">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5911">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x1" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5912">the starting x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="x2" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5913">the ending x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5914">the y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_layout" c:identifier="gtk_paint_layout">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6672">Draws a layout on @window using the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="848"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6674">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6675">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6676">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="use_text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6677">whether to use the text or foreground
           graphics context of @style</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6679">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6681">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6682">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6683">x origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6684">y origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6685">the layout to draw</doc>
          <type name="Pango.Layout" c:type="PangoLayout*"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_option" c:identifier="gtk_paint_option">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6291">Draws a radio button indicator in the given rectangle on @window with
the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="743"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6293">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6294">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6295">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6296">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6297">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6299">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6300">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6301">x origin of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6302">y origin of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6303">the width of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6304">the height of the rectangle to draw the option in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_polygon" c:identifier="gtk_paint_polygon">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6015">Draws a polygon on @window with the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="676"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6017">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6018">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6019">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6020">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6021">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6023">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6024">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="points" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6025">an array of #GdkPoint&lt;!-- --&gt;s</doc>
          <type name="Gdk.Point" c:type="const GdkPoint*"/>
        </parameter>
        <parameter name="n_points" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6026">length of @points</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="fill" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6027">%TRUE if the polygon should be filled</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_resize_grip" c:identifier="gtk_paint_resize_grip">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6710">Draws a resize grip in the given rectangle on @window using the given
parameters.</doc>
      <source-position filename="gtkstyle.h" line="858"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6712">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6713">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6714">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6715">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6717">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6718">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6719">the edge in which to draw the resize grip</doc>
          <type name="Gdk.WindowEdge" c:type="GdkWindowEdge"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6720">the x origin of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6721">the y origin of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6722">the width of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6723">the height of the rectangle in which to draw the resize grip</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_shadow" c:identifier="gtk_paint_shadow">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="5975">Draws a shadow around the given rectangle in @window
using the given style and state and shadow type.</doc>
      <source-position filename="gtkstyle.h" line="665"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5977">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5978">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5979">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5980">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5981">clip rectangle or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5983">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5984">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5985">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5986">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5987">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5988">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_shadow_gap" c:identifier="gtk_paint_shadow_gap">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6371">Draws a shadow around the given rectangle in @window
using the given style and state and shadow type, leaving a
gap in one side.</doc>
      <source-position filename="gtkstyle.h" line="765"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6373">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6374">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6375">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6376">type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6377">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6379">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6380">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6381">x origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6382">y origin of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6383">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6384">width of the rectangle</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_side" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6385">side in which to leave the gap</doc>
          <type name="PositionType" c:type="GtkPositionType"/>
        </parameter>
        <parameter name="gap_x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6386">starting position of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="gap_width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6387">width of the gap</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_slider" c:identifier="gtk_paint_slider">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6544">Draws a slider in the given rectangle on @window using the
given style and orientation.</doc>
      <source-position filename="gtkstyle.h" line="815"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6546">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6547">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6548">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6549">a shadow</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6550">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6552">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6553">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6554">the x origin of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6555">the y origin of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6556">the width of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6557">the height of the rectangle in which to draw a slider</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="orientation" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6558">the orientation to be used</doc>
          <type name="Orientation" c:type="GtkOrientation"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_spinner"
              c:identifier="gtk_paint_spinner"
              version="2.20">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6751">Draws a spinner on @window using the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="869"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6753">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6754">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6755">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6756">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6758">the widget (may be %NULL)</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6759">a style detail (may be %NULL)</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="step" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6760">the nth step, a value between 0 and #GtkSpinner:num-steps</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6761">the x origin of the rectangle in which to draw the spinner</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6762">the y origin of the rectangle in which to draw the spinner</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6763">the width of the rectangle in which to draw the spinner</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6764">the height of the rectangle in which to draw the spinner</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_string"
              c:identifier="gtk_paint_string"
              deprecated="1"
              deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6136">Draws a text string on @window with the given parameters.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_paint_layout() instead.</doc-deprecated>
      <source-position filename="gtkstyle.h" line="921"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6138">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6139">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6140">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6141">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6143">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6144">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6145">x origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6146">y origin</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6147">the string to draw</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_tab" c:identifier="gtk_paint_tab">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="6331">Draws an option menu tab (i.e. the up and down pointing arrows)
in the given rectangle on @window using the given parameters.</doc>
      <source-position filename="gtkstyle.h" line="754"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6333">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6334">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6335">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="shadow_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6336">the type of shadow to draw</doc>
          <type name="ShadowType" c:type="GtkShadowType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6337">clip rectangle, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6339">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6340">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6341">x origin of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6342">y origin of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6343">the width of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="6344">the height of the rectangle to draw the tab in</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="paint_vline" c:identifier="gtk_paint_vline">
      <doc xml:space="preserve"
           filename="gtkstyle.c"
           line="5939">Draws a vertical line from (@x, @y1_) to (@x, @y2_) in @window
using the given style and state.</doc>
      <source-position filename="gtkstyle.h" line="656"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="style" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5941">a #GtkStyle</doc>
          <type name="Style" c:type="GtkStyle*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5942">a #GdkWindow</doc>
          <type name="Gdk.Window" c:type="GdkWindow*"/>
        </parameter>
        <parameter name="state_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5943">a state</doc>
          <type name="StateType" c:type="GtkStateType"/>
        </parameter>
        <parameter name="area"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5944">rectangle to which the output is clipped, or %NULL if the
       output should not be clipped</doc>
          <type name="Gdk.Rectangle" c:type="const GdkRectangle*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5946">the widget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="detail"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5947">a style detail</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="y1_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5948">the starting y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="y2_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5949">the ending y coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstyle.c"
               line="5950">the x coordinate</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="paned_gutter_size"
                    c:identifier="gtk_paned_gutter_size"
                    introspectable="0">
      <source-position filename="gtkpaned.h" line="138"/>
      <parameters>
        <parameter name="p">
        </parameter>
        <parameter name="s">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="paned_set_gutter_size"
                    c:identifier="gtk_paned_set_gutter_size"
                    introspectable="0">
      <source-position filename="gtkpaned.h" line="139"/>
      <parameters>
        <parameter name="p">
        </parameter>
        <parameter name="s">
        </parameter>
      </parameters>
    </function-macro>
    <function name="paper_size_get_default"
              c:identifier="gtk_paper_size_get_default"
              moved-to="PaperSize.get_default"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkpapersize.c"
           line="631">Returns the name of the default paper size, which
depends on the current locale.</doc>
      <source-position filename="gtkpapersize.h" line="90"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkpapersize.c"
             line="637">the name of the default paper size. The string
is owned by GTK+ and should not be modified.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
    </function>
    <function name="paper_size_get_paper_sizes"
              c:identifier="gtk_paper_size_get_paper_sizes"
              moved-to="PaperSize.get_paper_sizes"
              version="2.12">
      <doc xml:space="preserve"
           filename="gtkpapersize.c"
           line="440">Creates a list of known paper sizes.</doc>
      <source-position filename="gtkpapersize.h" line="64"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkpapersize.c"
             line="447">a newly allocated list of newly
   allocated #GtkPaperSize objects</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="PaperSize"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="include_custom" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkpapersize.c"
               line="442">whether to include custom paper sizes
    as defined in the page setup dialog</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_args" c:identifier="gtk_parse_args">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="930">Parses command line arguments, and initializes global
attributes of GTK+, but does not actually open a connection
to a display. (See gdk_display_open(), gdk_get_display_arg_name())

Any arguments used by GTK+ or GDK are removed from the array and
@argc and @argv are updated accordingly.

There is no need to call this function explicitely if you are using
gtk_init(), or gtk_init_check().</doc>
      <source-position filename="gtkmain.h" line="91"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="946">%TRUE if initialization succeeded, otherwise %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="932">a pointer to the number of command line arguments</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="933">a pointer to the array of
    command line arguments</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="print_error_quark"
              c:identifier="gtk_print_error_quark"
              moved-to="PrintError.quark"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkprintoperation.c"
           line="96">Registers an error quark for #GtkPrintOperation if necessary.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkprintoperation.c"
             line="101">The error quark used for #GtkPrintOperation errors.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="print_run_page_setup_dialog"
              c:identifier="gtk_print_run_page_setup_dialog"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkprintoperation-unix.c"
           line="972">Runs a page setup dialog, letting the user modify the values from
@page_setup. If the user cancels the dialog, the returned #GtkPageSetup
is identical to the passed in @page_setup, otherwise it contains the
modifications done in the dialog.

Note that this function may use a recursive mainloop to show the page
setup dialog. See gtk_print_run_page_setup_dialog_async() if this is
a problem.</doc>
      <source-position filename="gtkprintoperation.h" line="192"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkprintoperation-unix.c"
             line="987">a new #GtkPageSetup</doc>
        <type name="PageSetup" c:type="GtkPageSetup*"/>
      </return-value>
      <parameters>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="974">transient parent</doc>
          <type name="Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="page_setup"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="975">an existing #GtkPageSetup</doc>
          <type name="PageSetup" c:type="GtkPageSetup*"/>
        </parameter>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="976">a #GtkPrintSettings</doc>
          <type name="PrintSettings" c:type="GtkPrintSettings*"/>
        </parameter>
      </parameters>
    </function>
    <function name="print_run_page_setup_dialog_async"
              c:identifier="gtk_print_run_page_setup_dialog_async"
              version="2.10"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtkprintoperation-unix.c"
           line="1017">Runs a page setup dialog, letting the user modify the values from @page_setup.

In contrast to gtk_print_run_page_setup_dialog(), this function  returns after
showing the page setup dialog on platforms that support this, and calls @done_cb
from a signal handler for the ::response signal of the dialog.</doc>
      <source-position filename="gtkprintoperation.h" line="199"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="1019">transient parent, or %NULL</doc>
          <type name="Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="page_setup"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="1020">an existing #GtkPageSetup, or %NULL</doc>
          <type name="PageSetup" c:type="GtkPageSetup*"/>
        </parameter>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="1021">a #GtkPrintSettings</doc>
          <type name="PrintSettings" c:type="GtkPrintSettings*"/>
        </parameter>
        <parameter name="done_cb" transfer-ownership="none" closure="4">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="1022">a function to call when the user saves the modified page setup</doc>
          <type name="PageSetupDoneFunc" c:type="GtkPageSetupDoneFunc"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkprintoperation-unix.c"
               line="1023">user data to pass to @done_cb</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="propagate_event" c:identifier="gtk_propagate_event">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="2416">Sends an event to a widget, propagating the event to parent widgets
if the event remains unhandled. Events received by GTK+ from GDK
normally begin in gtk_main_do_event(). Depending on the type of
event, existence of modal dialogs, grabs, etc., the event may be
propagated; if so, this function is used. gtk_propagate_event()
calls gtk_widget_event() on each widget it decides to send the
event to.  So gtk_widget_event() is the lowest-level function; it
simply emits the "event" and possibly an event-specific signal on a
widget.  gtk_propagate_event() is a bit higher-level, and
gtk_main_do_event() is the highest level.

All that said, you most likely don't want to use any of these
functions; synthesizing events is rarely needed. Consider asking on
the mailing list for better ways to achieve your goals. For
example, use gdk_window_invalidate_rect() or
gtk_widget_queue_draw() instead of making up expose events.</doc>
      <source-position filename="gtkmain.h" line="218"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="2418">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkmain.c"
               line="2419">an event</doc>
          <type name="Gdk.Event" c:type="GdkEvent*"/>
        </parameter>
      </parameters>
    </function>
    <function name="quit_add" c:identifier="gtk_quit_add" introspectable="0">
      <source-position filename="gtkmain.h" line="164"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="main_level" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="function" transfer-ownership="none" closure="2">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="quit_add_destroy" c:identifier="gtk_quit_add_destroy">
      <source-position filename="gtkmain.h" line="162"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="main_level" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="quit_add_full"
              c:identifier="gtk_quit_add_full"
              introspectable="0">
      <source-position filename="gtkmain.h" line="167"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="main_level" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="function" transfer-ownership="none">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="marshal"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <type name="CallbackMarshal" c:type="GtkCallbackMarshal"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="quit_remove" c:identifier="gtk_quit_remove">
      <source-position filename="gtkmain.h" line="172"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="quit_handler_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="quit_remove_by_data"
              c:identifier="gtk_quit_remove_by_data">
      <source-position filename="gtkmain.h" line="173"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_add_class_style" c:identifier="gtk_rc_add_class_style">
      <source-position filename="gtkrc.h" line="167"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rc_style" transfer-ownership="none">
          <type name="RcStyle" c:type="GtkRcStyle*"/>
        </parameter>
        <parameter name="pattern" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_add_default_file"
              c:identifier="gtk_rc_add_default_file">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="554">Adds a file to the list of files to be parsed at the
end of gtk_init().</doc>
      <source-position filename="gtkrc.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="556">the pathname to the file. If @filename is not absolute, it
   is searched in the current directory.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_add_widget_class_style"
              c:identifier="gtk_rc_add_widget_class_style">
      <source-position filename="gtkrc.h" line="165"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rc_style" transfer-ownership="none">
          <type name="RcStyle" c:type="GtkRcStyle*"/>
        </parameter>
        <parameter name="pattern" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_add_widget_name_style"
              c:identifier="gtk_rc_add_widget_name_style">
      <source-position filename="gtkrc.h" line="163"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rc_style" transfer-ownership="none">
          <type name="RcStyle" c:type="GtkRcStyle*"/>
        </parameter>
        <parameter name="pattern" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_find_module_in_path"
              c:identifier="gtk_rc_find_module_in_path">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="3545">Searches for a theme engine in the GTK+ search path. This function
is not useful for applications and should not be used.</doc>
      <source-position filename="gtkrc.h" line="181"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="3552">The filename, if found (must be freed with g_free()),
  otherwise %NULL.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="module_file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3547">name of a theme engine</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_find_pixmap_in_path"
              c:identifier="gtk_rc_find_pixmap_in_path">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="3491">Looks up a file in pixmap path for the specified #GtkSettings.
If the file is not found, it outputs a warning message using
g_warning() and returns %NULL.</doc>
      <source-position filename="gtkrc.h" line="154"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="3502">the filename.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3493">a #GtkSettings</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </parameter>
        <parameter name="scanner" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3494">Scanner used to get line number information for the
  warning message, or %NULL</doc>
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
        <parameter name="pixmap_file" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3496">name of the pixmap file to locate.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_get_default_files"
              c:identifier="gtk_rc_get_default_files">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="616">Retrieves the current list of RC files that will be parsed
at the end of gtk_init().</doc>
      <source-position filename="gtkrc.h" line="143"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="622">
    A %NULL-terminated array of filenames.
    This memory is owned by GTK+ and must not be freed by the application.
    If you want to store this information, you should make a copy.</doc>
        <array c:type="gchar**">
          <type name="filename"/>
        </array>
      </return-value>
    </function>
    <function name="rc_get_im_module_file"
              c:identifier="gtk_rc_get_im_module_file">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="430">Obtains the path to the IM modules file. See the documentation
of the &lt;link linkend="im-module-file"&gt;&lt;envar&gt;GTK_IM_MODULE_FILE&lt;/envar&gt;&lt;/link&gt;
environment variable for more details.</doc>
      <source-position filename="gtkrc.h" line="185"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="432">a newly-allocated string containing the name of the file
listing the IM modules available for loading</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="rc_get_im_module_path"
              c:identifier="gtk_rc_get_im_module_path">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="409">Obtains the path in which to look for IM modules. See the documentation
of the &lt;link linkend="im-module-path"&gt;&lt;envar&gt;GTK_PATH&lt;/envar&gt;&lt;/link&gt;
environment variable for more details about looking up modules. This
function is useful solely for utilities supplied with GTK+ and should
not be used by applications under normal circumstances.</doc>
      <source-position filename="gtkrc.h" line="184"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="411">a newly-allocated string containing the path in which to
   look for IM modules.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="rc_get_module_dir" c:identifier="gtk_rc_get_module_dir">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="475">Returns a directory in which GTK+ looks for theme engines.
For full information about the search for theme engines,
see the docs for &lt;envar&gt;GTK_PATH&lt;/envar&gt; in
&lt;xref linkend="gtk-running"/&gt;.</doc>
      <source-position filename="gtkrc.h" line="183"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="483">the directory. (Must be freed with g_free())</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="rc_get_style" c:identifier="gtk_rc_get_style">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="1942">Finds all matching RC styles for a given widget,
composites them together, and then creates a
#GtkStyle representing the composite appearance.
(GTK+ actually keeps a cache of previously
created styles, so a new style may not be
created.)</doc>
      <source-position filename="gtkrc.h" line="144"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="1953">the resulting style. No refcount is added
  to the returned style, so if you want to save this
  style around, you should add a reference yourself.</doc>
        <type name="Style" c:type="GtkStyle*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="1944">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_get_style_by_paths"
              c:identifier="gtk_rc_get_style_by_paths">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="2049">Creates up a #GtkStyle from styles defined in a RC file by providing
the raw components used in matching. This function may be useful
when creating pseudo-widgets that should be themed like widgets but
don't actually have corresponding GTK+ widgets. An example of this
would be items inside a GNOME canvas widget.

The action of gtk_rc_get_style() is similar to:
|[
 gtk_widget_path (widget, NULL, &amp;path, NULL);
 gtk_widget_class_path (widget, NULL, &amp;class_path, NULL);
 gtk_rc_get_style_by_paths (gtk_widget_get_settings (widget),
                            path, class_path,
                            G_OBJECT_TYPE (widget));
]|</doc>
      <source-position filename="gtkrc.h" line="145"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="2074">A style created by matching with the
    supplied paths, or %NULL if nothing matching was specified and the
    default style should be used. The returned value is owned by GTK+
    as part of an internal cache, so you must call g_object_ref() on
    the returned value if you want to keep a reference to it.</doc>
        <type name="Style" c:type="GtkStyle*"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="2051">a #GtkSettings object</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </parameter>
        <parameter name="widget_path"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="2052">the widget path to use when looking up the
    style, or %NULL if no matching against the widget path should be done</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="class_path"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="2054">the class path to use when looking up the style,
    or %NULL if no matching against the class path should be done.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="2056">a type that will be used along with parent types of this type
    when matching against class styles, or #G_TYPE_NONE</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_get_theme_dir" c:identifier="gtk_rc_get_theme_dir">
      <source-position filename="gtkrc.h" line="182"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="rc_parse" c:identifier="gtk_rc_parse">
      <source-position filename="gtkrc.h" line="158"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_parse_color" c:identifier="gtk_rc_parse_color">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="3875">Parses a color in the &lt;link linkend="color=format"&gt;format&lt;/link&gt; expected
in a RC file.

Note that theme engines should use gtk_rc_parse_color_full() in
order to support symbolic colors.</doc>
      <source-position filename="gtkrc.h" line="232"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="3887">%G_TOKEN_NONE if parsing succeeded, otherwise the token
    that was expected but not found</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="scanner" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3877">a #GScanner</doc>
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
        <parameter name="color"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3878">a pointer to a #GdkColor structure in which to store
    the result</doc>
          <type name="Gdk.Color" c:type="GdkColor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_parse_color_full"
              c:identifier="gtk_rc_parse_color_full"
              version="2.12">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="3897">Parses a color in the &lt;link linkend="color=format"&gt;format&lt;/link&gt; expected
in a RC file. If @style is not %NULL, it will be consulted to resolve
references to symbolic colors.</doc>
      <source-position filename="gtkrc.h" line="234"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="3908">%G_TOKEN_NONE if parsing succeeded, otherwise the token
    that was expected but not found</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="scanner" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3899">a #GScanner</doc>
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
        <parameter name="style"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3900">a #GtkRcStyle, or %NULL</doc>
          <type name="RcStyle" c:type="GtkRcStyle*"/>
        </parameter>
        <parameter name="color"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="3901">a pointer to a #GdkColor structure in which to store
    the result</doc>
          <type name="Gdk.Color" c:type="GdkColor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_parse_priority" c:identifier="gtk_rc_parse_priority">
      <source-position filename="gtkrc.h" line="239"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="scanner" transfer-ownership="none">
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
        <parameter name="priority" transfer-ownership="none">
          <type name="PathPriorityType" c:type="GtkPathPriorityType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_parse_state" c:identifier="gtk_rc_parse_state">
      <source-position filename="gtkrc.h" line="237"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="scanner" transfer-ownership="none">
          <type name="GLib.Scanner" c:type="GScanner*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <type name="StateType" c:type="GtkStateType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_parse_string" c:identifier="gtk_rc_parse_string">
      <source-position filename="gtkrc.h" line="159"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rc_string" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_property_parse_border"
              c:identifier="gtk_rc_property_parse_border"
              moved-to="RcProperty.parse_border">
      <doc xml:space="preserve"
           filename="gtksettings.c"
           line="2083">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
or gtk_widget_class_install_style_property_parser() which parses
borders in the form
&lt;literal&gt;"{ left, right, top, bottom }"&lt;/literal&gt; for integers
%left, %right, %top and %bottom.</doc>
      <source-position filename="gtksettings.h" line="101"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksettings.c"
             line="2095">%TRUE if @gstring could be parsed and @property_value
has been set to the resulting #GtkBorder.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pspec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2085">a #GParamSpec</doc>
          <type name="GObject.ParamSpec" c:type="const GParamSpec*"/>
        </parameter>
        <parameter name="gstring" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2086">the #GString to be parsed</doc>
          <type name="GLib.String" c:type="const GString*"/>
        </parameter>
        <parameter name="property_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2087">a #GValue which must hold boxed values.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_property_parse_color"
              c:identifier="gtk_rc_property_parse_color"
              moved-to="RcProperty.parse_color">
      <doc xml:space="preserve"
           filename="gtksettings.c"
           line="1797">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
or gtk_widget_class_install_style_property_parser() which parses a
color given either by its name or in the form
&lt;literal&gt;{ red, green, blue }&lt;/literal&gt; where %red, %green and
%blue are integers between 0 and 65535 or floating-point numbers
between 0 and 1.</doc>
      <source-position filename="gtksettings.h" line="89"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksettings.c"
             line="1810">%TRUE if @gstring could be parsed and @property_value
has been set to the resulting #GdkColor.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pspec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1799">a #GParamSpec</doc>
          <type name="GObject.ParamSpec" c:type="const GParamSpec*"/>
        </parameter>
        <parameter name="gstring" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1800">the #GString to be parsed</doc>
          <type name="GLib.String" c:type="const GString*"/>
        </parameter>
        <parameter name="property_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1801">a #GValue which must hold #GdkColor values.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_property_parse_enum"
              c:identifier="gtk_rc_property_parse_enum"
              moved-to="RcProperty.parse_enum">
      <doc xml:space="preserve"
           filename="gtksettings.c"
           line="1840">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
or gtk_widget_class_install_style_property_parser() which parses a single
enumeration value.

The enumeration value can be specified by its name, its nickname or
its numeric value. For consistency with flags parsing, the value
may be surrounded by parentheses.</doc>
      <source-position filename="gtksettings.h" line="92"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksettings.c"
             line="1854">%TRUE if @gstring could be parsed and @property_value
has been set to the resulting #GEnumValue.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pspec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1842">a #GParamSpec</doc>
          <type name="GObject.ParamSpec" c:type="const GParamSpec*"/>
        </parameter>
        <parameter name="gstring" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1843">the #GString to be parsed</doc>
          <type name="GLib.String" c:type="const GString*"/>
        </parameter>
        <parameter name="property_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1844">a #GValue which must hold enum values.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_property_parse_flags"
              c:identifier="gtk_rc_property_parse_flags"
              moved-to="RcProperty.parse_flags">
      <doc xml:space="preserve"
           filename="gtksettings.c"
           line="1936">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
or gtk_widget_class_install_style_property_parser() which parses flags.

Flags can be specified by their name, their nickname or
numerically. Multiple flags can be specified in the form
&lt;literal&gt;"( flag1 | flag2 | ... )"&lt;/literal&gt;.</doc>
      <source-position filename="gtksettings.h" line="95"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksettings.c"
             line="1949">%TRUE if @gstring could be parsed and @property_value
has been set to the resulting flags value.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pspec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1938">a #GParamSpec</doc>
          <type name="GObject.ParamSpec" c:type="const GParamSpec*"/>
        </parameter>
        <parameter name="gstring" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1939">the #GString to be parsed</doc>
          <type name="GLib.String" c:type="const GString*"/>
        </parameter>
        <parameter name="property_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="1940">a #GValue which must hold flags values.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_property_parse_requisition"
              c:identifier="gtk_rc_property_parse_requisition"
              moved-to="RcProperty.parse_requisition">
      <doc xml:space="preserve"
           filename="gtksettings.c"
           line="2042">A #GtkRcPropertyParser for use with gtk_settings_install_property_parser()
or gtk_widget_class_install_style_property_parser() which parses a
requisition in the form
&lt;literal&gt;"{ width, height }"&lt;/literal&gt; for integers %width and %height.</doc>
      <source-position filename="gtksettings.h" line="98"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtksettings.c"
             line="2053">%TRUE if @gstring could be parsed and @property_value
has been set to the resulting #GtkRequisition.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pspec" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2044">a #GParamSpec</doc>
          <type name="GObject.ParamSpec" c:type="const GParamSpec*"/>
        </parameter>
        <parameter name="gstring" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2045">the #GString to be parsed</doc>
          <type name="GLib.String" c:type="const GString*"/>
        </parameter>
        <parameter name="property_value" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtksettings.c"
               line="2046">a #GValue which must hold boxed values.</doc>
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_reparse_all" c:identifier="gtk_rc_reparse_all">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="1845">If the modification time on any previously read file for the
default #GtkSettings has changed, discard all style information
and then reread all previously read RC files.</doc>
      <source-position filename="gtkrc.h" line="160"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="1852">%TRUE if the files were reread.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="rc_reparse_all_for_settings"
              c:identifier="gtk_rc_reparse_all_for_settings">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="1748">If the modification time on any previously read file
for the given #GtkSettings has changed, discard all style information
and then reread all previously read RC files.</doc>
      <source-position filename="gtkrc.h" line="150"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkrc.c"
             line="1757">%TRUE if the files were reread.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="1750">a #GtkSettings</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </parameter>
        <parameter name="force_load" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="1751">load whether or not anything changed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_reset_styles"
              c:identifier="gtk_rc_reset_styles"
              version="2.4">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="1673">This function recomputes the styles for all widgets that use a
particular #GtkSettings object. (There is one #GtkSettings object
per #GdkScreen, see gtk_settings_get_for_screen()); It is useful
when some global parameter has changed that affects the appearance
of all widgets, because when a widget gets a new style, it will
both redraw and recompute any cached information about its
appearance. As an example, it is used when the default font size
set by the operating system changes. Note that this function
doesn't affect widgets that have a style set explicitely on them
with gtk_widget_set_style().</doc>
      <source-position filename="gtkrc.h" line="152"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="settings" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="1675">a #GtkSettings</doc>
          <type name="Settings" c:type="GtkSettings*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rc_scanner_new"
              c:identifier="gtk_rc_scanner_new"
              introspectable="0">
      <source-position filename="gtkrc.h" line="231"/>
      <return-value>
        <type name="GLib.Scanner" c:type="GScanner*"/>
      </return-value>
    </function>
    <function name="rc_set_default_files"
              c:identifier="gtk_rc_set_default_files">
      <doc xml:space="preserve"
           filename="gtkrc.c"
           line="585">Sets the list of files that GTK+ will read at the
end of gtk_init().</doc>
      <source-position filename="gtkrc.h" line="142"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="filenames" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkrc.c"
               line="587">A %NULL-terminated list of filenames.</doc>
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="recent_chooser_error_quark"
              c:identifier="gtk_recent_chooser_error_quark"
              moved-to="RecentChooserError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="recent_manager_error_quark"
              c:identifier="gtk_recent_manager_error_quark"
              moved-to="RecentManagerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="rgb_to_hsv" c:identifier="gtk_rgb_to_hsv" version="2.14">
      <doc xml:space="preserve"
           filename="gtkhsv.c"
           line="1570">Converts a color from RGB space to HSV.
Input values must be in the [0.0, 1.0] range;
output values will be in the same range.</doc>
      <source-position filename="gtkhsv.h" line="106"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="r" transfer-ownership="none">
          <doc xml:space="preserve" filename="gtkhsv.c" line="1572">Red</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="g" transfer-ownership="none">
          <doc xml:space="preserve" filename="gtkhsv.c" line="1573">Green</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <doc xml:space="preserve" filename="gtkhsv.c" line="1574">Blue</doc>
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="h"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkhsv.c"
               line="1575">Return value for the hue component</doc>
          <type name="gdouble" c:type="gdouble*"/>
        </parameter>
        <parameter name="s"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkhsv.c"
               line="1576">Return value for the saturation component</doc>
          <type name="gdouble" c:type="gdouble*"/>
        </parameter>
        <parameter name="v"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkhsv.c"
               line="1577">Return value for the value component</doc>
          <type name="gdouble" c:type="gdouble*"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_add_target"
              c:identifier="gtk_selection_add_target">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="874">Appends a specified target to the list of supported targets for a
given widget and selection.</doc>
      <source-position filename="gtkselection.h" line="136"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="876">a #GtkTarget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="877">the selection</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="target" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="878">target to add.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="info" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="879">A unsigned integer which will be passed back to the application.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_add_targets"
              c:identifier="gtk_selection_add_targets">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="902">Prepends a table of targets to the list of supported targets
for a given widget and selection.</doc>
      <source-position filename="gtkselection.h" line="140"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="904">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="905">the selection</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="906">a table of targets to add</doc>
          <array length="3" zero-terminated="0" c:type="const GtkTargetEntry*">
            <type name="TargetEntry" c:type="GtkTargetEntry"/>
          </array>
        </parameter>
        <parameter name="ntargets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="907">number of entries in @targets</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_clear"
              c:identifier="gtk_selection_clear"
              version="2.2"
              deprecated="1"
              deprecated-version="2.4">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="2187">The default handler for the #GtkWidget::selection-clear-event
signal.</doc>
      <doc-deprecated xml:space="preserve">Instead of calling this function, chain up from
your selection-clear-event handler. Calling this function
from any other context is illegal.</doc-deprecated>
      <source-position filename="gtkselection.h" line="201"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="2195">%TRUE if the event was handled, otherwise false</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2189">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2190">the event</doc>
          <type name="Gdk.EventSelection" c:type="GdkEventSelection*"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_clear_targets"
              c:identifier="gtk_selection_clear_targets">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="834">Remove all targets registered for the given selection for the
widget.</doc>
      <source-position filename="gtkselection.h" line="144"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="836">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="837">an atom representing a selection</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_convert" c:identifier="gtk_selection_convert">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="1003">Requests the contents of a selection. When received,
a "selection-received" signal will be generated.</doc>
      <source-position filename="gtkselection.h" line="146"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="1014">%TRUE if requested succeeded. %FALSE if we could not process
         request. (e.g., there was already a request in process for
         this widget).</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1005">The widget which acts as requestor</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1006">Which selection to get</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="target" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1007">Form of information desired (e.g., STRING)</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1008">Time of request (usually of triggering event)
       In emergency, you could use #GDK_CURRENT_TIME</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_owner_set"
              c:identifier="gtk_selection_owner_set">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="739">Claims ownership of a given selection for a particular widget,
or, if @widget is %NULL, release ownership of the selection.</doc>
      <source-position filename="gtkselection.h" line="128"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="748">%TRUE if the operation succeeded</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="741">a #GtkWidget, or %NULL.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="742">an interned atom representing the selection to claim</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="743">timestamp with which to claim the selection</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_owner_set_for_display"
              c:identifier="gtk_selection_owner_set_for_display"
              version="2.2">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="636">Claim ownership of a given selection for a particular widget, or,
if @widget is %NULL, release ownership of the selection.</doc>
      <source-position filename="gtkselection.h" line="131"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="646">TRUE if the operation succeeded</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="638">the #Gdkdisplay where the selection is set</doc>
          <type name="Gdk.Display" c:type="GdkDisplay*"/>
        </parameter>
        <parameter name="widget"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="639">new selection owner (a #GdkWidget), or %NULL.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="selection" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="640">an interned atom representing the selection to claim.</doc>
          <type name="Gdk.Atom" c:type="GdkAtom"/>
        </parameter>
        <parameter name="time_" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="641">timestamp with which to claim the selection</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="selection_remove_all"
              c:identifier="gtk_selection_remove_all">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="941">Removes all handlers and unsets ownership of all
selections for a widget. Called when widget is being
destroyed. This function will not generally be
called by applications.</doc>
      <source-position filename="gtkselection.h" line="197"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="943">a #GtkWidget</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_locale"
              c:identifier="gtk_set_locale"
              deprecated="1"
              deprecated-version="2.24">
      <doc xml:space="preserve"
           filename="gtkmain.c"
           line="1127">Initializes internationalization support for GTK+. gtk_init()
automatically does this, so there is typically no point
in calling this function.

If you are calling this function because you changed the locale
after GTK+ is was initialized, then calling this function
may help a bit. (Note, however, that changing the locale
after GTK+ is initialized may produce inconsistent results and
is not really supported.)

In detail - sets the current locale according to the
program environment. This is the same as calling the C library function
&lt;literal&gt;setlocale (LC_ALL, "")&lt;/literal&gt; but also takes care of the
locale specific setup of the windowing system used by GDK.</doc>
      <doc-deprecated xml:space="preserve">Use setlocale() directly</doc-deprecated>
      <source-position filename="gtkmain.h" line="132"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkmain.c"
             line="1145">a string corresponding to the locale set, typically in the
form lang_COUNTRY, where lang is an ISO-639 language code, and
COUNTRY is an ISO-3166 country code. On Unix, this form matches the
result of the setlocale(); it is also used on other machines, such as
Windows, where the C library returns a different result. The string is
owned by GTK+ and should not be modified or freed.</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="show_about_dialog"
              c:identifier="gtk_show_about_dialog"
              version="2.6"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtkaboutdialog.c"
           line="2444">This is a convenience function for showing an application's about box.
The constructed dialog is associated with the parent window and
reused for future invocations of this function.</doc>
      <source-position filename="gtkaboutdialog.h" line="75"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkaboutdialog.c"
               line="2446">transient parent, or %NULL for none</doc>
          <type name="Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="first_property_name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaboutdialog.c"
               line="2447">the name of the first property</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkaboutdialog.c"
               line="2448">value of first property, followed by more properties, %NULL-terminated</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="show_uri"
              c:identifier="gtk_show_uri"
              version="2.14"
              throws="1">
      <doc xml:space="preserve"
           filename="gtkshow.c"
           line="32">This is a convenience function for launching the default application
to show the uri. The uri must be of a form understood by GIO (i.e. you
need to install gvfs to get support for uri schemes such as http://
or ftp://, as only local files are handled by GIO itself).
Typical examples are
&lt;simplelist&gt;
  &lt;member&gt;&lt;filename&gt;file:///home/gnome/pict.jpg&lt;/filename&gt;&lt;/member&gt;
  &lt;member&gt;&lt;filename&gt;http://www.gnome.org&lt;/filename&gt;&lt;/member&gt;
  &lt;member&gt;&lt;filename&gt;mailto:me&amp;commat;gnome.org&lt;/filename&gt;&lt;/member&gt;
&lt;/simplelist&gt;
Ideally the timestamp is taken from the event triggering
the gtk_show_uri() call. If timestamp is not known you can take
%GDK_CURRENT_TIME.

This function can be used as a replacement for gnome_vfs_url_show()
and gnome_url_show().</doc>
      <source-position filename="gtkshow.h" line="32"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkshow.c"
             line="56">%TRUE on success, %FALSE on error.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="screen"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkshow.c"
               line="34">screen to show the uri on or %NULL for the default screen</doc>
          <type name="Gdk.Screen" c:type="GdkScreen*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkshow.c"
               line="35">the uri to show</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="timestamp" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkshow.c"
               line="36">a timestamp to prevent focus stealing.</doc>
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_compat_matched"
              c:identifier="gtk_signal_compat_matched"
              introspectable="0">
      <source-position filename="gtksignal.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none" closure="2">
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="match" transfer-ownership="none">
          <type name="GObject.SignalMatchType" c:type="GSignalMatchType"/>
        </parameter>
        <parameter name="action" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="signal_connect"
                    c:identifier="gtk_signal_connect"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="50"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="name">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="func_data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_connect_after"
                    c:identifier="gtk_signal_connect_after"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="52"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="name">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="func_data">
        </parameter>
      </parameters>
    </function-macro>
    <function name="signal_connect_full"
              c:identifier="gtk_signal_connect_full"
              introspectable="0">
      <source-position filename="gtksignal.h" line="121"/>
      <return-value transfer-ownership="none">
        <type name="gulong" c:type="gulong"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none">
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="unsupported"
                   transfer-ownership="none"
                   scope="notified"
                   closure="4"
                   destroy="5">
          <type name="CallbackMarshal" c:type="GtkCallbackMarshal"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy_func" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="object_signal" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="after" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="signal_connect_object"
                    c:identifier="gtk_signal_connect_object"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="54"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="name">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="slot_object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_connect_object_after"
                    c:identifier="gtk_signal_connect_object_after"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="56"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="name">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="slot_object">
        </parameter>
      </parameters>
    </function-macro>
    <function name="signal_connect_object_while_alive"
              c:identifier="gtk_signal_connect_object_while_alive"
              introspectable="0">
      <source-position filename="gtksignal.h" line="112"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none">
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="alive_object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_connect_while_alive"
              c:identifier="gtk_signal_connect_while_alive"
              introspectable="0">
      <source-position filename="gtksignal.h" line="116"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none" closure="3">
          <type name="GObject.Callback" c:type="GCallback"/>
        </parameter>
        <parameter name="func_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="alive_object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="signal_disconnect"
                    c:identifier="gtk_signal_disconnect"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="58"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="handler_id">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_disconnect_by_data"
                    c:identifier="gtk_signal_disconnect_by_data"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="68"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_disconnect_by_func"
                    c:identifier="gtk_signal_disconnect_by_func"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="64"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function name="signal_emit"
              c:identifier="gtk_signal_emit"
              introspectable="0">
      <source-position filename="gtksignal.h" line="132"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="signal_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_emit_by_name"
              c:identifier="gtk_signal_emit_by_name"
              introspectable="0">
      <source-position filename="gtksignal.h" line="135"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="signal_emit_stop"
                    c:identifier="gtk_signal_emit_stop"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="48"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="signal_id">
        </parameter>
      </parameters>
    </function-macro>
    <function name="signal_emit_stop_by_name"
              c:identifier="gtk_signal_emit_stop_by_name">
      <source-position filename="gtksignal.h" line="110"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_emitv" c:identifier="gtk_signal_emitv">
      <source-position filename="gtksignal.h" line="129"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="signal_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="Arg" c:type="GtkArg*"/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_emitv_by_name"
              c:identifier="gtk_signal_emitv_by_name">
      <source-position filename="gtksignal.h" line="138"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Object" c:type="GtkObject*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="Arg" c:type="GtkArg*"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="signal_handler_block"
                    c:identifier="gtk_signal_handler_block"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="60"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="handler_id">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_block_by_data"
                    c:identifier="gtk_signal_handler_block_by_data"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="74"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_block_by_func"
                    c:identifier="gtk_signal_handler_block_by_func"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="70"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_pending"
                    c:identifier="gtk_signal_handler_pending"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="82"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="signal_id">
        </parameter>
        <parameter name="may_be_blocked">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_pending_by_func"
                    c:identifier="gtk_signal_handler_pending_by_func"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="84"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="signal_id">
        </parameter>
        <parameter name="may_be_blocked">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_unblock"
                    c:identifier="gtk_signal_handler_unblock"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="62"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="handler_id">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_unblock_by_data"
                    c:identifier="gtk_signal_handler_unblock_by_data"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="80"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_handler_unblock_by_func"
                    c:identifier="gtk_signal_handler_unblock_by_func"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="76"/>
      <parameters>
        <parameter name="object">
        </parameter>
        <parameter name="func">
        </parameter>
        <parameter name="data">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_lookup"
                    c:identifier="gtk_signal_lookup"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="44"/>
      <parameters>
        <parameter name="name">
        </parameter>
        <parameter name="object_type">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="signal_name"
                    c:identifier="gtk_signal_name"
                    introspectable="0">
      <source-position filename="gtksignal.h" line="46"/>
      <parameters>
        <parameter name="signal_id">
        </parameter>
      </parameters>
    </function-macro>
    <function name="signal_new"
              c:identifier="gtk_signal_new"
              introspectable="0">
      <source-position filename="gtksignal.h" line="102"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="signal_flags" transfer-ownership="none">
          <type name="SignalRunType" c:type="GtkSignalRunType"/>
        </parameter>
        <parameter name="object_type" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="function_offset" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="marshaller" transfer-ownership="none">
          <type name="GObject.SignalCMarshaller" c:type="GSignalCMarshaller"/>
        </parameter>
        <parameter name="return_val" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="n_args" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="signal_newv" c:identifier="gtk_signal_newv">
      <source-position filename="gtksignal.h" line="94"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="signal_flags" transfer-ownership="none">
          <type name="SignalRunType" c:type="GtkSignalRunType"/>
        </parameter>
        <parameter name="object_type" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="function_offset" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="marshaller" transfer-ownership="none">
          <type name="GObject.SignalCMarshaller" c:type="GSignalCMarshaller"/>
        </parameter>
        <parameter name="return_val" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="n_args" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="GType" c:type="GType*"/>
        </parameter>
      </parameters>
    </function>
    <function name="stock_add" c:identifier="gtk_stock_add">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="125">Registers each of the stock items in @items. If an item already
exists with the same stock ID as one of the @items, the old item
gets replaced. The stock items are copied, so GTK+ does not hold
any pointer into @items and @items can be freed. Use
gtk_stock_add_static() if @items is persistent and GTK+ need not
copy the array.</doc>
      <source-position filename="gtkstock.h" line="51"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="items" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="127">a #GtkStockItem or array of items</doc>
          <array length="1" zero-terminated="0" c:type="const GtkStockItem*">
            <type name="StockItem" c:type="GtkStockItem"/>
          </array>
        </parameter>
        <parameter name="n_items" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="128">number of #GtkStockItem in @items</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="stock_add_static" c:identifier="gtk_stock_add_static">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="147">Same as gtk_stock_add(), but doesn't copy @items, so
@items must persist until application exit.</doc>
      <source-position filename="gtkstock.h" line="53"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="items" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="149">a #GtkStockItem or array of #GtkStockItem</doc>
          <array length="1" zero-terminated="0" c:type="const GtkStockItem*">
            <type name="StockItem" c:type="GtkStockItem"/>
          </array>
        </parameter>
        <parameter name="n_items" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="150">number of items</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="stock_list_ids" c:identifier="gtk_stock_list_ids">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="213">Retrieves a list of all known stock IDs added to a #GtkIconFactory
or registered with gtk_stock_add(). The list must be freed with g_slist_free(),
and each string in the list must be freed with g_free().</doc>
      <source-position filename="gtkstock.h" line="61"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkstock.c"
             line="220">a list of known stock IDs</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="stock_lookup" c:identifier="gtk_stock_lookup">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="165">Fills @item with the registered values for @stock_id, returning %TRUE
if @stock_id was known.</doc>
      <source-position filename="gtkstock.h" line="55"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkstock.c"
             line="174">%TRUE if @item was initialized</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="stock_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="167">a stock item name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="item"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="168">stock item to initialize with values</doc>
          <type name="StockItem" c:type="GtkStockItem*"/>
        </parameter>
      </parameters>
    </function>
    <function name="stock_set_translate_func"
              c:identifier="gtk_stock_set_translate_func"
              version="2.8">
      <doc xml:space="preserve"
           filename="gtkstock.c"
           line="445">Sets a function to be used for translating the @label of
a stock item.

If no function is registered for a translation domain,
g_dgettext() is used.

The function is used for all stock items whose
@translation_domain matches @domain. Note that it is possible
to use strings different from the actual gettext translation domain
of your application for this, as long as your #GtkTranslateFunc uses
the correct domain when calling dgettext(). This can be useful, e.g.
when dealing with message contexts:

|[
GtkStockItem items[] = {
 { MY_ITEM1, NC_("odd items", "Item 1"), 0, 0, "odd-item-domain" },
 { MY_ITEM2, NC_("even items", "Item 2"), 0, 0, "even-item-domain" },
};

gchar *
my_translate_func (const gchar *msgid,
                   gpointer     data)
{
  gchar *msgctxt = data;

  return (gchar*)g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msgid);
}

/&amp;ast; ... &amp;ast;/

gtk_stock_add (items, G_N_ELEMENTS (items));
gtk_stock_set_translate_func ("odd-item-domain", my_translate_func, "odd items");
gtk_stock_set_translate_func ("even-item-domain", my_translate_func, "even items");
]|</doc>
      <source-position filename="gtkstock.h" line="66"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="domain" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="447">the translation domain for which @func shall be used</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="func"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="448">a #GtkTranslateFunc</doc>
          <type name="TranslateFunc" c:type="GtkTranslateFunc"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="449">data to pass to @func</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <doc xml:space="preserve"
               filename="gtkstock.c"
               line="450">a #GDestroyNotify that is called when @data is
  no longer needed</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="style_apply_default_pixmap"
                    c:identifier="gtk_style_apply_default_pixmap"
                    introspectable="0">
      <source-position filename="gtkstyle.h" line="914"/>
      <parameters>
        <parameter name="s">
        </parameter>
        <parameter name="gw">
        </parameter>
        <parameter name="st">
        </parameter>
        <parameter name="a">
        </parameter>
        <parameter name="x">
        </parameter>
        <parameter name="y">
        </parameter>
        <parameter name="w">
        </parameter>
        <parameter name="h">
        </parameter>
      </parameters>
    </function-macro>
    <function name="target_table_free"
              c:identifier="gtk_target_table_free"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="612">This function frees a target table as returned by
gtk_target_table_new_from_list()</doc>
      <source-position filename="gtkselection.h" line="123"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="614">a #GtkTargetEntry array</doc>
          <array length="1" zero-terminated="0" c:type="GtkTargetEntry*">
            <type name="TargetEntry" c:type="GtkTargetEntry"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="615">the number of entries in the array</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="target_table_new_from_list"
              c:identifier="gtk_target_table_new_from_list"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="570">This function creates an #GtkTargetEntry array that contains the
same targets as the passed %list. The returned table is newly
allocated and should be freed using gtk_target_table_free() when no
longer needed.</doc>
      <source-position filename="gtkselection.h" line="121"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="580">the new table.</doc>
        <array length="1" zero-terminated="0" c:type="GtkTargetEntry*">
          <type name="TargetEntry" c:type="GtkTargetEntry"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="572">a #GtkTargetList</doc>
          <type name="TargetList" c:type="GtkTargetList*"/>
        </parameter>
        <parameter name="n_targets"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="573">return location for the number ot targets in the table</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="targets_include_image"
              c:identifier="gtk_targets_include_image"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="2012">Determines if any of the targets in @targets can be used to
provide a #GdkPixbuf.</doc>
      <source-position filename="gtkselection.h" line="189"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="2022">%TRUE if @targets include a suitable target for images,
  otherwise %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2014">an array of #GdkAtom&lt;!-- --&gt;s</doc>
          <array length="1" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2015">the length of @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="writable" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2016">whether to accept only targets for which GTK+ knows
  how to convert a pixbuf into the format</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="targets_include_rich_text"
              c:identifier="gtk_targets_include_rich_text"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="1894">Determines if any of the targets in @targets can be used to
provide rich text.</doc>
      <source-position filename="gtkselection.h" line="186"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="1903">%TRUE if @targets include a suitable target for rich text,
              otherwise %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1896">an array of #GdkAtom&lt;!-- --&gt;s</doc>
          <array length="1" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1897">the length of @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1898">a #GtkTextBuffer</doc>
          <type name="TextBuffer" c:type="GtkTextBuffer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="targets_include_text"
              c:identifier="gtk_targets_include_text"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="1849">Determines if any of the targets in @targets can be used to
provide text.</doc>
      <source-position filename="gtkselection.h" line="184"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="1857">%TRUE if @targets include a suitable target for text,
  otherwise %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1851">an array of #GdkAtom&lt;!-- --&gt;s</doc>
          <array length="1" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="1852">the length of @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="targets_include_uri"
              c:identifier="gtk_targets_include_uri"
              version="2.10">
      <doc xml:space="preserve"
           filename="gtkselection.c"
           line="2094">Determines if any of the targets in @targets can be used to
provide an uri list.</doc>
      <source-position filename="gtkselection.h" line="192"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtkselection.c"
             line="2102">%TRUE if @targets include a suitable target for uri lists,
  otherwise %FALSE.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2096">an array of #GdkAtom&lt;!-- --&gt;s</doc>
          <array length="1" zero-terminated="0" c:type="GdkAtom*">
            <type name="Gdk.Atom" c:type="GdkAtom"/>
          </array>
        </parameter>
        <parameter name="n_targets" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtkselection.c"
               line="2097">the length of @targets</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_create_simple_window"
              c:identifier="gtk_test_create_simple_window"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="592">Create a simple window with window title @window_title and
text contents @dialog_text.
The window will quit any running gtk_main()-loop when destroyed, and it
will automatically be destroyed upon test function teardown.</doc>
      <source-position filename="gtktestutils.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="602">a widget pointer to the newly created GtkWindow.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="window_title" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="594">Title of the window to be displayed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="dialog_text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="595">Text inside the window to be displayed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_create_widget"
              c:identifier="gtk_test_create_widget"
              version="2.14"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="490">This function wraps g_object_new() for widget types.
It'll automatically show all created non window widgets, also
g_object_ref_sink() them (to keep them alive across a running test)
and set them up for destruction during the next test teardown phase.</doc>
      <source-position filename="gtktestutils.h" line="39"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="502">a newly created widget.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="widget_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="492">a valid widget type.</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="first_property_name"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="493">Name of first property to set or %NULL</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="494">value to set the first property to, followed by more
   name-value pairs, terminated by %NULL</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="test_display_button_window"
              c:identifier="gtk_test_display_button_window"
              version="2.14"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="543">Create a window with window title @window_title, text contents @dialog_text,
and a number of buttons, according to the paired argument list given
as @... parameters.
Each button is created with a @label and a ::clicked signal handler that
incremrents the integer stored in @nump.
The window will be automatically shown with gtk_widget_show_now() after
creation, so when this function returns it has already been mapped,
resized and positioned on screen.
The window will quit any running gtk_main()-loop when destroyed, and it
will automatically be destroyed upon test function teardown.</doc>
      <source-position filename="gtktestutils.h" line="44"/>
      <return-value>
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="560">a widget pointer to the newly created GtkWindow.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="window_title" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="545">Title of the window to be displayed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="dialog_text" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="546">Text inside the window to be displayed.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="547">%NULL terminated list of (const char *label, int *nump) pairs.</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="test_find_label"
              c:identifier="gtk_test_find_label"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="211">This function will search @widget and all its descendants for a GtkLabel
widget with a text string matching @label_pattern.
The @label_pattern may contain asterisks '*' and question marks '?' as
placeholders, g_pattern_match() is used for the matching.
Note that locales other than "C" tend to alter (translate" label strings,
so this function is genrally only useful in test programs with
predetermined locales, see gtk_test_init() for more details.</doc>
      <source-position filename="gtktestutils.h" line="67"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="224">a GtkLabel widget if any is found.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="213">Valid label or container widget.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="label_pattern" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="214">Shell-glob pattern to match a label string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_find_sibling"
              c:identifier="gtk_test_find_sibling"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="307">This function will search siblings of @base_widget and siblings of its
ancestors for all widgets matching @widget_type.
Of the matching widgets, the one that is geometrically closest to
@base_widget will be returned.
The general purpose of this function is to find the most likely "action"
widget, relative to another labeling widget. Such as finding a
button or text entry widget, given it's corresponding label widget.</doc>
      <source-position filename="gtktestutils.h" line="65"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="320">a widget of type @widget_type if any is found.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="base_widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="309">Valid widget, part of a widget hierarchy</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="widget_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="310">Type of a aearched for sibling widget</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_find_widget"
              c:identifier="gtk_test_find_widget"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="348">This function will search the descendants of @widget for a widget
of type @widget_type that has a label matching @label_pattern next
to it. This is most useful for automated GUI testing, e.g. to find
the "OK" button in a dialog and synthesize clicks on it.
However see gtk_test_find_label(), gtk_test_find_sibling() and
gtk_test_widget_click() for possible caveats involving the search of
such widgets and synthesizing widget events.</doc>
      <source-position filename="gtktestutils.h" line="36"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="362">a valid widget if any is found or %NULL.</doc>
        <type name="Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="350">Container widget, usually a GtkWindow.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="label_pattern" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="351">Shell-glob pattern to match a label string.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="widget_type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="352">Type of a aearched for label sibling widget.</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_init"
              c:identifier="gtk_test_init"
              version="2.14"
              introspectable="0">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="43">This function is used to initialize a GTK+ test program.

It will in turn call g_test_init() and gtk_init() to properly
initialize the testing framework and graphical toolkit. It'll
also set the program's locale to "C" and prevent loading of rc
files and Gtk+ modules. This is done to make tets program
environments as deterministic as possible.

Like gtk_init() and g_test_init(), any known arguments will be
processed and stripped from @argc and @argv.</doc>
      <source-position filename="gtktestutils.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argcp"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="45">Address of the &lt;parameter&gt;argc&lt;/parameter&gt; parameter of the
       main() function. Changed if any arguments were handled.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argvp"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="47">Address of the
       &lt;parameter&gt;argv&lt;/parameter&gt; parameter of main().
       Any parameters understood by g_test_init() or gtk_init() are
       stripped before return.</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="51">currently unused</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="test_list_all_types"
              c:identifier="gtk_test_list_all_types"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="621">Return the type ids that have been registered after
calling gtk_test_register_all_types().</doc>
      <source-position filename="gtktestutils.h" line="35"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="624">
   0-terminated array of type ids</doc>
        <array length="0" zero-terminated="1" c:type="const GType*">
          <type name="GType" c:type="GType"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="n_types"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="623">location to store number of types</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_register_all_types"
              c:identifier="gtk_test_register_all_types"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="640">Force registration of all core Gtk+ and Gdk object types.
This allowes to refer to any of those object types via
g_type_from_name() after calling this function.</doc>
      <source-position filename="gtktestutils.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="test_slider_get_value"
              c:identifier="gtk_test_slider_get_value"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="405">Retrive the literal adjustment value for GtkRange based
widgets and spin buttons. Note that the value returned by
this function is anything between the lower and upper bounds
of the adjustment belonging to @widget, and is not a percentage
as passed in to gtk_test_slider_set_perc().</doc>
      <source-position filename="gtktestutils.h" line="49"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="415">adjustment-&gt;value for an adjustment belonging to @widget.</doc>
        <type name="gdouble" c:type="double"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="407">valid widget pointer.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_slider_set_perc"
              c:identifier="gtk_test_slider_set_perc"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="379">This function will adjust the slider position of all GtkRange
based widgets, such as scrollbars or scales, it'll also adjust
spin buttons. The adjustment value of these widgets is set to
a value between the lower and upper limits, according to the
@percentage argument.</doc>
      <source-position filename="gtktestutils.h" line="47"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="381">valid widget pointer.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="percentage" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="382">value between 0 and 100.</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_spin_button_click"
              c:identifier="gtk_test_spin_button_click"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="180">This function will generate a @button click in the upwards or downwards
spin button arrow areas, usually leading to an increase or decrease of
spin button's value.</doc>
      <source-position filename="gtktestutils.h" line="50"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="190">wether all actions neccessary for the button click simulation were carried out successfully.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="spinner" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="182">valid GtkSpinButton widget.</doc>
          <type name="SpinButton" c:type="GtkSpinButton*"/>
        </parameter>
        <parameter name="button" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="183">Number of the pointer button for the event, usually 1, 2 or 3.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="upwards" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="184">%TRUE for upwards arrow click, %FALSE for downwards arrow click.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_text_get"
              c:identifier="gtk_test_text_get"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="459">Retrive the text string of @widget if it is a GtkLabel,
GtkEditable (entry and text widgets) or GtkTextView.</doc>
      <source-position filename="gtktestutils.h" line="62"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="466">new 0-terminated C string, needs to be released with g_free().</doc>
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="461">valid widget pointer.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_text_set"
              c:identifier="gtk_test_text_set"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="430">Set the text string of @widget to @string if it is a GtkLabel,
GtkEditable (entry and text widgets) or GtkTextView.</doc>
      <source-position filename="gtktestutils.h" line="60"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="432">valid widget pointer.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="433">a 0-terminated C string</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_widget_click"
              c:identifier="gtk_test_widget_click"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="144">This function will generate a @button click (button press and button
release event) in the middle of the first GdkWindow found that belongs
to @widget.
For %GTK_NO_WINDOW widgets like GtkButton, this will often be an
input-only event window. For other widgets, this is usually widget-&gt;window.
Certain caveats should be considered when using this function, in
particular because the mouse pointer is warped to the button click
location, see gdk_test_simulate_button() for details.</doc>
      <source-position filename="gtktestutils.h" line="53"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="159">wether all actions neccessary for the button click simulation were carried out successfully.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="146">Widget to generate a button click on.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="button" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="147">Number of the pointer button for the event, usually 1, 2 or 3.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="148">Keyboard modifiers the event is setup with.</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_widget_send_key"
              c:identifier="gtk_test_widget_send_key"
              version="2.14">
      <doc xml:space="preserve"
           filename="gtktestutils.c"
           line="109">This function will generate keyboard press and release events in
the middle of the first GdkWindow found that belongs to @widget.
For %GTK_NO_WINDOW widgets like GtkButton, this will often be an
input-only event window. For other widgets, this is usually widget-&gt;window.
Certain caveats should be considered when using this function, in
particular because the mouse pointer is warped to the key press
location, see gdk_test_simulate_key() for details.</doc>
      <source-position filename="gtktestutils.h" line="56"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktestutils.c"
             line="123">wether all actions neccessary for the key event simulation were carried out successfully.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="widget" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="111">Widget to generate a key press and release on.</doc>
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="keyval" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="112">A Gdk keyboard value.</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="modifiers" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktestutils.c"
               line="113">Keyboard modifiers the event is setup with.</doc>
          <type name="Gdk.ModifierType" c:type="GdkModifierType"/>
        </parameter>
      </parameters>
    </function>
    <function name="text_anchored_child_set_layout"
              c:identifier="gtk_text_anchored_child_set_layout">
      <source-position filename="gtktextlayout.h" line="432"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="child" transfer-ownership="none">
          <type name="Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="layout" transfer-ownership="none">
          <type name="TextLayout" c:type="GtkTextLayout*"/>
        </parameter>
      </parameters>
    </function>
    <function name="timeout_add"
              c:identifier="gtk_timeout_add"
              introspectable="0">
      <source-position filename="gtkmain.h" line="174"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="interval" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="function" transfer-ownership="none" closure="2">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="timeout_add_full"
              c:identifier="gtk_timeout_add_full"
              introspectable="0">
      <source-position filename="gtkmain.h" line="177"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="interval" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
        <parameter name="function" transfer-ownership="none">
          <type name="Function" c:type="GtkFunction"/>
        </parameter>
        <parameter name="marshal"
                   transfer-ownership="none"
                   scope="notified"
                   closure="3"
                   destroy="4">
          <type name="CallbackMarshal" c:type="GtkCallbackMarshal"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="timeout_remove" c:identifier="gtk_timeout_remove">
      <source-position filename="gtkmain.h" line="182"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="timeout_handler_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="tree_get_row_drag_data"
              c:identifier="gtk_tree_get_row_drag_data">
      <doc xml:space="preserve"
           filename="gtktreednd.c"
           line="284">Obtains a @tree_model and @path from selection data of target type
%GTK_TREE_MODEL_ROW. Normally called from a drag_data_received handler.
This function can only be used if @selection_data originates from the same
process that's calling this function, because a pointer to the tree model
is being passed around. If you aren't in the same process, then you'll
get memory corruption. In the #GtkTreeDragDest drag_data_received handler,
you can assume that selection data of type %GTK_TREE_MODEL_ROW is
in from the current process. The returned path must be freed with
gtk_tree_path_free().</doc>
      <source-position filename="gtktreednd.h" line="119"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="300">%TRUE if @selection_data had target type %GTK_TREE_MODEL_ROW and
 is otherwise valid</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="selection_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="286">a #GtkSelectionData</doc>
          <type name="SelectionData" c:type="GtkSelectionData*"/>
        </parameter>
        <parameter name="tree_model"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="287">a #GtkTreeModel</doc>
          <type name="TreeModel" c:type="GtkTreeModel**"/>
        </parameter>
        <parameter name="path"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="288">row in @tree_model</doc>
          <type name="TreePath" c:type="GtkTreePath**"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="tree_model_get_iter_root"
                    c:identifier="gtk_tree_model_get_iter_root"
                    introspectable="0">
      <source-position filename="gtktreemodel.h" line="248"/>
      <parameters>
        <parameter name="tree_model">
        </parameter>
        <parameter name="iter">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="tree_path_new_root"
                    c:identifier="gtk_tree_path_new_root"
                    introspectable="0">
      <source-position filename="gtktreemodel.h" line="155"/>
    </function-macro>
    <function name="tree_row_reference_deleted"
              c:identifier="gtk_tree_row_reference_deleted"
              moved-to="TreeRowReference.deleted">
      <doc xml:space="preserve"
           filename="gtktreemodel.c"
           line="2155">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "row_deleted" signal.</doc>
      <source-position filename="gtktreemodel.h" line="178"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2157">A #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2158">The path position that was deleted</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tree_row_reference_inserted"
              c:identifier="gtk_tree_row_reference_inserted"
              moved-to="TreeRowReference.inserted">
      <doc xml:space="preserve"
           filename="gtktreemodel.c"
           line="2138">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "row_inserted" signal.</doc>
      <source-position filename="gtktreemodel.h" line="176"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2140">A #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2141">The row position that was inserted</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tree_row_reference_reordered"
              c:identifier="gtk_tree_row_reference_reordered"
              moved-to="TreeRowReference.reordered">
      <doc xml:space="preserve"
           filename="gtktreemodel.c"
           line="2172">Lets a set of row reference created by gtk_tree_row_reference_new_proxy()
know that the model emitted the "rows_reordered" signal.</doc>
      <source-position filename="gtktreemodel.h" line="180"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="proxy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2174">A #GObject</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2175">The parent path of the reordered signal</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
        <parameter name="iter" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2176">The iter pointing to the parent of the reordered</doc>
          <type name="TreeIter" c:type="GtkTreeIter*"/>
        </parameter>
        <parameter name="new_order" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreemodel.c"
               line="2177">The new order of rows</doc>
          <type name="gint" c:type="gint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tree_set_row_drag_data"
              c:identifier="gtk_tree_set_row_drag_data">
      <doc xml:space="preserve"
           filename="gtktreednd.c"
           line="229">Sets selection data of target type %GTK_TREE_MODEL_ROW. Normally used
in a drag_data_get handler.</doc>
      <source-position filename="gtktreednd.h" line="116"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="gtktreednd.c"
             line="238">%TRUE if the #GtkSelectionData had the proper target type to allow us to set a tree row</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="selection_data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="231">some #GtkSelectionData</doc>
          <type name="SelectionData" c:type="GtkSelectionData*"/>
        </parameter>
        <parameter name="tree_model" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="232">a #GtkTreeModel</doc>
          <type name="TreeModel" c:type="GtkTreeModel*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktreednd.c"
               line="233">a row in @tree_model</doc>
          <type name="TreePath" c:type="GtkTreePath*"/>
        </parameter>
      </parameters>
    </function>
    <function name="true" c:identifier="gtk_true">
      <source-position filename="gtkmain.h" line="152"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="type_class"
              c:identifier="gtk_type_class"
              deprecated="1"
              deprecated-version="2.14">
      <doc xml:space="preserve"
           filename="gtktypeutils.c"
           line="63">Returns a pointer pointing to the class of @type or %NULL if there
was any trouble identifying @type.  Initializes the class if
necessary.</doc>
      <doc-deprecated xml:space="preserve">Use g_type_class_peek() or g_type_class_ref() instead.</doc-deprecated>
      <source-position filename="gtktypeutils.h" line="239"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="gtktypeutils.c"
             line="71">pointer to the class.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gtktypeutils.c"
               line="65">a #GtkType.</doc>
          <type name="Type" c:type="GtkType"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_enum_find_value"
              c:identifier="gtk_type_enum_find_value"
              introspectable="0">
      <source-position filename="gtktypeutils.h" line="255"/>
      <return-value>
        <type name="EnumValue" c:type="GtkEnumValue*"/>
      </return-value>
      <parameters>
        <parameter name="enum_type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
        <parameter name="value_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_enum_get_values"
              c:identifier="gtk_type_enum_get_values"
              introspectable="0">
      <source-position filename="gtktypeutils.h" line="253"/>
      <return-value>
        <type name="EnumValue" c:type="GtkEnumValue*"/>
      </return-value>
      <parameters>
        <parameter name="enum_type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_flags_find_value"
              c:identifier="gtk_type_flags_find_value"
              introspectable="0">
      <source-position filename="gtktypeutils.h" line="257"/>
      <return-value>
        <type name="FlagValue" c:type="GtkFlagValue*"/>
      </return-value>
      <parameters>
        <parameter name="flags_type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
        <parameter name="value_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="type_flags_get_values"
              c:identifier="gtk_type_flags_get_values"
              introspectable="0">
      <source-position filename="gtktypeutils.h" line="254"/>
      <return-value>
        <type name="FlagValue" c:type="GtkFlagValue*"/>
      </return-value>
      <parameters>
        <parameter name="flags_type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="type_from_name"
                    c:identifier="gtk_type_from_name"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="244"/>
      <parameters>
        <parameter name="name">
        </parameter>
      </parameters>
    </function-macro>
    <function name="type_init" c:identifier="gtk_type_init">
      <source-position filename="gtktypeutils.h" line="236"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="debug_flags" transfer-ownership="none">
          <type name="GObject.TypeDebugFlags" c:type="GTypeDebugFlags"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="type_is_a"
                    c:identifier="gtk_type_is_a"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="246"/>
      <parameters>
        <parameter name="type">
        </parameter>
        <parameter name="is_a_type">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="type_name"
                    c:identifier="gtk_type_name"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="243"/>
      <parameters>
        <parameter name="type">
        </parameter>
      </parameters>
    </function-macro>
    <function name="type_new" c:identifier="gtk_type_new">
      <source-position filename="gtktypeutils.h" line="240"/>
      <return-value transfer-ownership="none" nullable="1">
        <type name="gpointer" c:type="gpointer"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="type_parent"
                    c:identifier="gtk_type_parent"
                    introspectable="0">
      <source-position filename="gtktypeutils.h" line="245"/>
      <parameters>
        <parameter name="type">
        </parameter>
      </parameters>
    </function-macro>
    <function name="type_unique" c:identifier="gtk_type_unique">
      <source-position filename="gtktypeutils.h" line="237"/>
      <return-value transfer-ownership="none">
        <type name="Type" c:type="GtkType"/>
      </return-value>
      <parameters>
        <parameter name="parent_type" transfer-ownership="none">
          <type name="Type" c:type="GtkType"/>
        </parameter>
        <parameter name="gtkinfo" transfer-ownership="none">
          <type name="TypeInfo" c:type="const GtkTypeInfo*"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="widget_pop_visual"
                    c:identifier="gtk_widget_pop_visual"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1085">This function is deprecated; it does nothing.</doc>
      <source-position filename="gtkwidget.h" line="1090"/>
    </function-macro>
    <function-macro name="widget_push_visual"
                    c:identifier="gtk_widget_push_visual"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1077">This function is deprecated; it does nothing.</doc>
      <source-position filename="gtkwidget.h" line="1083"/>
      <parameters>
        <parameter name="visual">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1079">a visual</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="widget_restore_default_style"
                    c:identifier="gtk_widget_restore_default_style"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1176">Equivalent to &lt;literal&gt;gtk_widget_set_style (widget, NULL)&lt;/literal&gt;.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_set_style() with a %NULL @style argument instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="1184"/>
      <parameters>
        <parameter name="widget">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1178">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="widget_set_default_visual"
                    c:identifier="gtk_widget_set_default_visual"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1092">This function is deprecated; it does nothing.</doc>
      <source-position filename="gtkwidget.h" line="1098"/>
      <parameters>
        <parameter name="visual">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1094">a visual</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="widget_set_rc_style"
                    c:identifier="gtk_widget_set_rc_style"
                    introspectable="0"
                    deprecated="1"
                    deprecated-version="2.0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1166">Equivalent to &lt;literal&gt;gtk_widget_set_style (widget, NULL)&lt;/literal&gt;.</doc>
      <doc-deprecated xml:space="preserve">Use gtk_widget_set_style() with a %NULL @style argument instead.</doc-deprecated>
      <source-position filename="gtkwidget.h" line="1174"/>
      <parameters>
        <parameter name="widget">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1168">a #GtkWidget.</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="widget_set_visual"
                    c:identifier="gtk_widget_set_visual"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="gtkwidget.h"
           line="1068">This function is deprecated; it does nothing.</doc>
      <source-position filename="gtkwidget.h" line="1075"/>
      <parameters>
        <parameter name="widget">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1070">a #GtkWidget</doc>
        </parameter>
        <parameter name="visual">
          <doc xml:space="preserve"
               filename="gtkwidget.h"
               line="1071">a visual</doc>
        </parameter>
      </parameters>
    </function-macro>
  </namespace>
</repository>
