<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
<!ENTITY pi "&#960;">
<!ENTITY solidus "&#8260;">
]>
<refentry id="GtkListBox">
<refmeta>
<refentrytitle role="top_of_page" id="GtkListBox.top_of_page">GtkListBox</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkListBox</refname>
<refpurpose>A list container</refpurpose>
</refnamediv>

<refsect1 id="GtkListBox.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GtkListBoxFilterFunc">*GtkListBoxFilterFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GtkListBoxSortFunc">*GtkListBoxSortFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GtkListBoxUpdateHeaderFunc">*GtkListBoxUpdateHeaderFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-new">gtk_list_box_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-prepend">gtk_list_box_prepend</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-insert">gtk_list_box_insert</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-remove">gtk_list_box_remove</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-select-row">gtk_list_box_select_row</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-unselect-row">gtk_list_box_unselect_row</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-select-all">gtk_list_box_select_all</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-unselect-all">gtk_list_box_unselect_all</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-get-selected-row">gtk_list_box_get_selected_row</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GtkListBoxForeachFunc">*GtkListBoxForeachFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-selected-foreach">gtk_list_box_selected_foreach</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GList"><returnvalue>GList</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-get-selected-rows">gtk_list_box_get_selected_rows</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-show-separators">gtk_list_box_set_show_separators</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-get-show-separators">gtk_list_box_get_show_separators</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-selection-mode">gtk_list_box_set_selection_mode</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkSelectionMode"><returnvalue>GtkSelectionMode</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-get-selection-mode">gtk_list_box_get_selection_mode</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-activate-on-single-click">gtk_list_box_set_activate_on_single_click</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-get-activate-on-single-click">gtk_list_box_get_activate_on_single_click</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-get-adjustment">gtk_list_box_get_adjustment</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-adjustment">gtk_list_box_set_adjustment</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-placeholder">gtk_list_box_set_placeholder</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-get-row-at-index">gtk_list_box_get_row_at_index</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-get-row-at-y">gtk_list_box_get_row_at_y</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-invalidate-filter">gtk_list_box_invalidate_filter</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-invalidate-headers">gtk_list_box_invalidate_headers</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-invalidate-sort">gtk_list_box_invalidate_sort</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-filter-func">gtk_list_box_set_filter_func</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-header-func">gtk_list_box_set_header_func</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-set-sort-func">gtk_list_box_set_sort_func</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-drag-highlight-row">gtk_list_box_drag_highlight_row</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-drag-unhighlight-row">gtk_list_box_drag_unhighlight_row</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="GtkListBoxCreateWidgetFunc">*GtkListBoxCreateWidgetFunc</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-bind-model">gtk_list_box_bind_model</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-row-new">gtk_list_box_row_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-changed">gtk_list_box_row_changed</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-is-selected">gtk_list_box_row_is_selected</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-list-box-row-get-header">gtk_list_box_row_get_header</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-set-header">gtk_list_box_row_set_header</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-get-index">gtk_list_box_row_get_index</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-set-activatable">gtk_list_box_row_set_activatable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-get-activatable">gtk_list_box_row_get_activatable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-set-selectable">gtk_list_box_row_set_selectable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-list-box-row-get-selectable">gtk_list_box_row_get_selectable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkListBox.properties" role="properties">
<title role="properties.title">Properties</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="properties_type" colwidth="150px"/>
<colspec colname="properties_name" colwidth="300px"/>
<colspec colname="properties_flags" colwidth="200px"/>
<tbody>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkListBox--accept-unpaired-release">accept-unpaired-release</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkListBox--activate-on-single-click">activate-on-single-click</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link></entry><entry role="property_name"><link linkend="GtkListBox--selection-mode">selection-mode</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkListBox--show-separators">show-separators</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkListBoxRow--activatable">activatable</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkWidget"><type>GtkWidget</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkListBoxRow--child">child</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkListBoxRow--selectable">selectable</link></entry><entry role="property_flags">Read / Write</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkListBox.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-activate-cursor-row">activate-cursor-row</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-move-cursor">move-cursor</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-row-activated">row-activated</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-row-selected">row-selected</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-select-all">select-all</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-selected-rows-changed">selected-rows-changed</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-FIRST:CAPS">Run First</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-toggle-cursor-row">toggle-cursor-row</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBox-unselect-all">unselect-all</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkListBoxRow-activate">activate</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="GtkListBoxRow"/><refsect1 id="GtkListBox.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GtkListBox-struct">GtkListBox</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GtkListBoxRow-struct">GtkListBoxRow</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GtkListBoxRowClass">GtkListBoxRowClass</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkListBox.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GInitiallyUnowned">GInitiallyUnowned</link>
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GtkWidget">GtkWidget</link>
            <phrase role="lineart">&#9500;&#9472;&#9472;</phrase> GtkListBox
            <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GtkListBoxRow
</screen>
</refsect1>
<refsect1 id="GtkListBox.implemented-interfaces" role="impl_interfaces">
<title role="impl_interfaces.title">Implemented Interfaces</title>
<para>
GtkListBox implements
 <link linkend="AtkImplementorIface">AtkImplementorIface</link>,  <link linkend="GtkBuildable">GtkBuildable</link> and  <link linkend="GtkConstraintTarget">GtkConstraintTarget</link>.</para>
<para>
GtkListBoxRow implements
 <link linkend="AtkImplementorIface">AtkImplementorIface</link>,  <link linkend="GtkBuildable">GtkBuildable</link>,  <link linkend="GtkConstraintTarget">GtkConstraintTarget</link> and  <link linkend="GtkActionable">GtkActionable</link>.</para>

</refsect1>

<refsect1 id="GtkListBox.includes"><title>Includes</title><synopsis>#include &lt;gtk/gtk.h&gt;
</synopsis></refsect1>

<refsect1 id="GtkListBox.description" role="desc">
<title role="desc.title">Description</title>
<para>A GtkListBox is a vertical container that contains GtkListBoxRow
children. These rows can by dynamically sorted and filtered, and
headers can be added dynamically depending on the row content.
It also allows keyboard and mouse navigation and selection like
a typical list.</para>
<para>Using GtkListBox is often an alternative to <link linkend="GtkTreeView"><type>GtkTreeView</type></link>, especially
when the list contents has a more complicated layout than what is allowed
by a <link linkend="GtkCellRenderer"><type>GtkCellRenderer</type></link>, or when the contents is interactive (i.e. has a
button in it).</para>
<para>Although a <link linkend="GtkListBox"><type>GtkListBox</type></link> must have only <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> children you can
add any kind of widget to it via <link linkend="gtk-container-add"><function>gtk_container_add()</function></link>, and a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link>
widget will automatically be inserted between the list and the widget.</para>
<para><link linkend="GtkListBoxRows"><type>GtkListBoxRows</type></link> can be marked as activatable or selectable. If a row
is activatable, <link linkend="GtkListBox-row-activated"><type>“row-activated”</type></link> will be emitted for it when
the user tries to activate it. If it is selectable, the row will be marked
as selected when the user tries to select it.</para>
<para>The GtkListBox widget was added in GTK+ 3.10.</para>
<refsect2><title>GtkListBox as GtkBuildable</title><para>The GtkListBox implementation of the <link linkend="GtkBuildable"><type>GtkBuildable</type></link> interface supports
setting a child as the placeholder by specifying “placeholder” as the “type”
attribute of a &lt;child> element. See <link linkend="gtk-list-box-set-placeholder"><function>gtk_list_box_set_placeholder()</function></link> for info.</para>
</refsect2>
<refsect2><title>CSS nodes</title><informalexample><programlisting role="example"><![CDATA[
list[.separators]
╰── row[.activatable]
]]></programlisting></informalexample>
<para></para>
<para>GtkListBox uses a single CSS node named list. It may carry the .separators style
class, when the <link linkend="GtkListBox--show-separators"><type>“show-separators”</type></link> property is set. Each GtkListBoxRow uses
a single CSS node named row. The row nodes get the .activatable
style class added when appropriate.</para>
</refsect2>

</refsect1>
<refsect1 id="GtkListBox.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="GtkListBoxFilterFunc" role="function">
<title>GtkListBoxFilterFunc&#160;()</title>
<indexterm zone="GtkListBoxFilterFunc"><primary>GtkListBoxFilterFunc</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GtkListBoxFilterFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                         <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>Will be called whenever the row changes or is added and lets you control
if the row should be visible or not.</para>
<refsect3 id="GtkListBoxFilterFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>the row that may be filtered</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="GtkListBoxFilterFunc.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the row should be visible, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise</para>
</refsect3></refsect2>
<refsect2 id="GtkListBoxSortFunc" role="function">
<title>GtkListBoxSortFunc&#160;()</title>
<indexterm zone="GtkListBoxSortFunc"><primary>GtkListBoxSortFunc</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GtkListBoxSortFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row1</parameter>,
                       <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row2</parameter>,
                       <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>Compare two rows to determine which should be first.</para>
<refsect3 id="GtkListBoxSortFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row1</para></entry>
<entry role="parameter_description"><para>the first row</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row2</para></entry>
<entry role="parameter_description"><para>the second row</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="GtkListBoxSortFunc.returns" role="returns">
<title>Returns</title>
<para> &lt; 0 if <parameter>row1</parameter>
should be before <parameter>row2</parameter>
, 0 if they are
equal and &gt; 0 otherwise</para>
</refsect3></refsect2>
<refsect2 id="GtkListBoxUpdateHeaderFunc" role="function">
<title>GtkListBoxUpdateHeaderFunc&#160;()</title>
<indexterm zone="GtkListBoxUpdateHeaderFunc"><primary>GtkListBoxUpdateHeaderFunc</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GtkListBoxUpdateHeaderFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                               <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *before</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>Whenever <parameter>row</parameter>
 changes or which row is before <parameter>row</parameter>
 changes this
is called, which lets you update the header on <parameter>row</parameter>
. You may
remove or set a new one via <link linkend="gtk-list-box-row-set-header"><function>gtk_list_box_row_set_header()</function></link> or
just change the state of the current header widget.</para>
<refsect3 id="GtkListBoxUpdateHeaderFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>the row to update</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>before</para></entry>
<entry role="parameter_description"><para>the row before <parameter>row</parameter>
, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if it is first. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-new" role="function">
<title>gtk_list_box_new&#160;()</title>
<indexterm zone="gtk-list-box-new"><primary>gtk_list_box_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_list_box_new (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new <link linkend="GtkListBox"><type>GtkListBox</type></link> container.</para>
<refsect3 id="gtk-list-box-new.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GtkListBox"><type>GtkListBox</type></link></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-prepend" role="function">
<title>gtk_list_box_prepend&#160;()</title>
<indexterm zone="gtk-list-box-prepend"><primary>gtk_list_box_prepend</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_prepend (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                      <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *child</parameter>);</programlisting>
<para>Prepend a widget to the list. If a sort function is set, the widget will
actually be inserted at the calculated position and this function has the
same effect of <link linkend="gtk-container-add"><function>gtk_container_add()</function></link>.</para>
<refsect3 id="gtk-list-box-prepend.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>child</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkWidget"><type>GtkWidget</type></link> to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-insert" role="function">
<title>gtk_list_box_insert&#160;()</title>
<indexterm zone="gtk-list-box-insert"><primary>gtk_list_box_insert</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_insert (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                     <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *child</parameter>,
                     <parameter><link linkend="gint"><type>gint</type></link> position</parameter>);</programlisting>
<para>Insert the <parameter>child</parameter>
 into the <parameter>box</parameter>
 at <parameter>position</parameter>
. If a sort function is
set, the widget will actually be inserted at the calculated position and
this function has the same effect of <link linkend="gtk-container-add"><function>gtk_container_add()</function></link>.</para>
<para>If <parameter>position</parameter>
 is -1, or larger than the total number of items in the
<parameter>box</parameter>
, then the <parameter>child</parameter>
 will be appended to the end.</para>
<refsect3 id="gtk-list-box-insert.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>child</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkWidget"><type>GtkWidget</type></link> to add</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>position</para></entry>
<entry role="parameter_description"><para>the position to insert <parameter>child</parameter>
in</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-remove" role="function">
<title>gtk_list_box_remove&#160;()</title>
<indexterm zone="gtk-list-box-remove"><primary>gtk_list_box_remove</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_remove (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                     <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *child</parameter>);</programlisting>
<para>Removes a child from <parameter>box</parameter>
.</para>
<refsect3 id="gtk-list-box-remove.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>child</para></entry>
<entry role="parameter_description"><para>the child to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-select-row" role="function">
<title>gtk_list_box_select_row&#160;()</title>
<indexterm zone="gtk-list-box-select-row"><primary>gtk_list_box_select_row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_select_row (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                         <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Make <parameter>row</parameter>
 the currently selected row.</para>
<refsect3 id="gtk-list-box-select-row.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>The row to select or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-unselect-row" role="function">
<title>gtk_list_box_unselect_row&#160;()</title>
<indexterm zone="gtk-list-box-unselect-row"><primary>gtk_list_box_unselect_row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_unselect_row (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                           <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Unselects a single row of <parameter>box</parameter>
, if the selection mode allows it.</para>
<refsect3 id="gtk-list-box-unselect-row.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>the row to unselected</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-select-all" role="function">
<title>gtk_list_box_select_all&#160;()</title>
<indexterm zone="gtk-list-box-select-all"><primary>gtk_list_box_select_all</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_select_all (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Select all children of <parameter>box</parameter>
, if the selection mode allows it.</para>
<refsect3 id="gtk-list-box-select-all.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-unselect-all" role="function">
<title>gtk_list_box_unselect_all&#160;()</title>
<indexterm zone="gtk-list-box-unselect-all"><primary>gtk_list_box_unselect_all</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_unselect_all (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Unselect all children of <parameter>box</parameter>
, if the selection mode allows it.</para>
<refsect3 id="gtk-list-box-unselect-all.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-selected-row" role="function">
<title>gtk_list_box_get_selected_row&#160;()</title>
<indexterm zone="gtk-list-box-get-selected-row"><primary>gtk_list_box_get_selected_row</primary></indexterm>
<programlisting language="C"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
gtk_list_box_get_selected_row (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Gets the selected row.</para>
<para>Note that the box may allow multiple selection, in which
case you should use <link linkend="gtk-list-box-selected-foreach"><function>gtk_list_box_selected_foreach()</function></link> to
find all selected rows.</para>
<refsect3 id="gtk-list-box-get-selected-row.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-selected-row.returns" role="returns">
<title>Returns</title>
<para>the selected row. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="GtkListBoxForeachFunc" role="function">
<title>GtkListBoxForeachFunc&#160;()</title>
<indexterm zone="GtkListBoxForeachFunc"><primary>GtkListBoxForeachFunc</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*GtkListBoxForeachFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                          <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                          <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>A function used by <link linkend="gtk-list-box-selected-foreach"><function>gtk_list_box_selected_foreach()</function></link>.
It will be called on every selected child of the <parameter>box</parameter>
.</para>
<refsect3 id="GtkListBoxForeachFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-selected-foreach" role="function">
<title>gtk_list_box_selected_foreach&#160;()</title>
<indexterm zone="gtk-list-box-selected-foreach"><primary>gtk_list_box_selected_foreach</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_selected_foreach (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                               <parameter><link linkend="GtkListBoxForeachFunc"><type>GtkListBoxForeachFunc</type></link> func</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> data</parameter>);</programlisting>
<para>Calls a function for each selected child.</para>
<para>Note that the selection cannot be modified from within this function.</para>
<refsect3 id="gtk-list-box-selected-foreach.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>func</para></entry>
<entry role="parameter_description"><para>the function to call for each selected child. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>scope call</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>data</para></entry>
<entry role="parameter_description"><para>user data to pass to the function</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-selected-rows" role="function">
<title>gtk_list_box_get_selected_rows&#160;()</title>
<indexterm zone="gtk-list-box-get-selected-rows"><primary>gtk_list_box_get_selected_rows</primary></indexterm>
<programlisting language="C"><link linkend="GList"><returnvalue>GList</returnvalue></link>&#160;*
gtk_list_box_get_selected_rows (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Creates a list of all selected children.</para>
<refsect3 id="gtk-list-box-get-selected-rows.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-selected-rows.returns" role="returns">
<title>Returns</title>
<para>A <link linkend="GList"><type>GList</type></link> containing the <link linkend="GtkWidget"><type>GtkWidget</type></link> for each selected child.
Free with <link linkend="g-list-free"><function>g_list_free()</function></link> when done. </para>
<para><emphasis role="annotation">[<acronym>element-type</acronym> GtkListBoxRow][<acronym>transfer container</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-show-separators" role="function">
<title>gtk_list_box_set_show_separators&#160;()</title>
<indexterm zone="gtk-list-box-set-show-separators"><primary>gtk_list_box_set_show_separators</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_show_separators (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                                  <parameter><link linkend="gboolean"><type>gboolean</type></link> show_separators</parameter>);</programlisting>
<para>Sets whether the list box should show separators
between rows.</para>
<refsect3 id="gtk-list-box-set-show-separators.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>show_separators</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to show separators</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-show-separators" role="function">
<title>gtk_list_box_get_show_separators&#160;()</title>
<indexterm zone="gtk-list-box-get-show-separators"><primary>gtk_list_box_get_show_separators</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_list_box_get_show_separators (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Returns whether the list box should show separators
between rows.</para>
<refsect3 id="gtk-list-box-get-show-separators.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-show-separators.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the list box shows separators</para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-selection-mode" role="function">
<title>gtk_list_box_set_selection_mode&#160;()</title>
<indexterm zone="gtk-list-box-set-selection-mode"><primary>gtk_list_box_set_selection_mode</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_selection_mode (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                                 <parameter><link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link> mode</parameter>);</programlisting>
<para>Sets how selection works in the listbox.
See <link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link> for details.</para>
<refsect3 id="gtk-list-box-set-selection-mode.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>mode</para></entry>
<entry role="parameter_description"><para>The <link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-selection-mode" role="function">
<title>gtk_list_box_get_selection_mode&#160;()</title>
<indexterm zone="gtk-list-box-get-selection-mode"><primary>gtk_list_box_get_selection_mode</primary></indexterm>
<programlisting language="C"><link linkend="GtkSelectionMode"><returnvalue>GtkSelectionMode</returnvalue></link>
gtk_list_box_get_selection_mode (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Gets the selection mode of the listbox.</para>
<refsect3 id="gtk-list-box-get-selection-mode.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-selection-mode.returns" role="returns">
<title>Returns</title>
<para> a <link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-activate-on-single-click" role="function">
<title>gtk_list_box_set_activate_on_single_click&#160;()</title>
<indexterm zone="gtk-list-box-set-activate-on-single-click"><primary>gtk_list_box_set_activate_on_single_click</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_activate_on_single_click
                               (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> single</parameter>);</programlisting>
<para>If <parameter>single</parameter>
 is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, rows will be activated when you click on them,
otherwise you need to double-click.</para>
<refsect3 id="gtk-list-box-set-activate-on-single-click.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>single</para></entry>
<entry role="parameter_description"><para>a boolean</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-activate-on-single-click" role="function">
<title>gtk_list_box_get_activate_on_single_click&#160;()</title>
<indexterm zone="gtk-list-box-get-activate-on-single-click"><primary>gtk_list_box_get_activate_on_single_click</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_list_box_get_activate_on_single_click
                               (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Returns whether rows activate on single clicks.</para>
<refsect3 id="gtk-list-box-get-activate-on-single-click.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-activate-on-single-click.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if rows are activated on single click, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise</para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-adjustment" role="function">
<title>gtk_list_box_get_adjustment&#160;()</title>
<indexterm zone="gtk-list-box-get-adjustment"><primary>gtk_list_box_get_adjustment</primary></indexterm>
<programlisting language="C"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
gtk_list_box_get_adjustment (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Gets the adjustment (if any) that the widget uses to
for vertical scrolling.</para>
<refsect3 id="gtk-list-box-get-adjustment.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-adjustment.returns" role="returns">
<title>Returns</title>
<para>the adjustment. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-adjustment" role="function">
<title>gtk_list_box_set_adjustment&#160;()</title>
<indexterm zone="gtk-list-box-set-adjustment"><primary>gtk_list_box_set_adjustment</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_adjustment (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                             <parameter><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> *adjustment</parameter>);</programlisting>
<para>Sets the adjustment (if any) that the widget uses to
for vertical scrolling. For instance, this is used
to get the page size for PageUp/Down key handling.</para>
<para>In the normal case when the <parameter>box</parameter>
 is packed inside
a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> the adjustment from that will
be picked up automatically, so there is no need
to manually do that.</para>
<refsect3 id="gtk-list-box-set-adjustment.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>adjustment</para></entry>
<entry role="parameter_description"><para>the adjustment, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-placeholder" role="function">
<title>gtk_list_box_set_placeholder&#160;()</title>
<indexterm zone="gtk-list-box-set-placeholder"><primary>gtk_list_box_set_placeholder</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_placeholder (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                              <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *placeholder</parameter>);</programlisting>
<para>Sets the placeholder widget that is shown in the list when
it doesn't display any visible children.</para>
<refsect3 id="gtk-list-box-set-placeholder.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>placeholder</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkWidget"><type>GtkWidget</type></link> or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-row-at-index" role="function">
<title>gtk_list_box_get_row_at_index&#160;()</title>
<indexterm zone="gtk-list-box-get-row-at-index"><primary>gtk_list_box_get_row_at_index</primary></indexterm>
<programlisting language="C"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
gtk_list_box_get_row_at_index (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                               <parameter><link linkend="gint"><type>gint</type></link> index_</parameter>);</programlisting>
<para>Gets the n-th child in the list (not counting headers).
If <parameter>_index</parameter>
 is negative or larger than the number of items in the
list, <link linkend="NULL:CAPS"><literal>NULL</literal></link> is returned.</para>
<refsect3 id="gtk-list-box-get-row-at-index.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>index_</para></entry>
<entry role="parameter_description"><para>the index of the row</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-row-at-index.returns" role="returns">
<title>Returns</title>
<para>the child <link linkend="GtkWidget"><type>GtkWidget</type></link> or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-get-row-at-y" role="function">
<title>gtk_list_box_get_row_at_y&#160;()</title>
<indexterm zone="gtk-list-box-get-row-at-y"><primary>gtk_list_box_get_row_at_y</primary></indexterm>
<programlisting language="C"><link linkend="GtkListBoxRow"><returnvalue>GtkListBoxRow</returnvalue></link>&#160;*
gtk_list_box_get_row_at_y (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> y</parameter>);</programlisting>
<para>Gets the row at the <parameter>y</parameter>
 position.</para>
<refsect3 id="gtk-list-box-get-row-at-y.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>position</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-get-row-at-y.returns" role="returns">
<title>Returns</title>
<para>the row or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
in case no row exists for the given y coordinate. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-invalidate-filter" role="function">
<title>gtk_list_box_invalidate_filter&#160;()</title>
<indexterm zone="gtk-list-box-invalidate-filter"><primary>gtk_list_box_invalidate_filter</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_invalidate_filter (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Update the filtering for all rows. Call this when result
of the filter function on the <parameter>box</parameter>
 is changed due
to an external factor. For instance, this would be used
if the filter function just looked for a specific search
string and the entry with the search string has changed.</para>
<refsect3 id="gtk-list-box-invalidate-filter.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-invalidate-headers" role="function">
<title>gtk_list_box_invalidate_headers&#160;()</title>
<indexterm zone="gtk-list-box-invalidate-headers"><primary>gtk_list_box_invalidate_headers</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_invalidate_headers (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Update the separators for all rows. Call this when result
of the header function on the <parameter>box</parameter>
 is changed due
to an external factor.</para>
<refsect3 id="gtk-list-box-invalidate-headers.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-invalidate-sort" role="function">
<title>gtk_list_box_invalidate_sort&#160;()</title>
<indexterm zone="gtk-list-box-invalidate-sort"><primary>gtk_list_box_invalidate_sort</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_invalidate_sort (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>Update the sorting for all rows. Call this when result
of the sort function on the <parameter>box</parameter>
 is changed due
to an external factor.</para>
<refsect3 id="gtk-list-box-invalidate-sort.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-filter-func" role="function">
<title>gtk_list_box_set_filter_func&#160;()</title>
<indexterm zone="gtk-list-box-set-filter-func"><primary>gtk_list_box_set_filter_func</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_filter_func (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                              <parameter><link linkend="GtkListBoxFilterFunc"><type>GtkListBoxFilterFunc</type></link> filter_func</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                              <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> destroy</parameter>);</programlisting>
<para>By setting a filter function on the <parameter>box</parameter>
 one can decide dynamically which
of the rows to show. For instance, to implement a search function on a list that
filters the original list to only show the matching rows.</para>
<para>The <parameter>filter_func</parameter>
 will be called for each row after the call, and it will
continue to be called each time a row changes (via <link linkend="gtk-list-box-row-changed"><function>gtk_list_box_row_changed()</function></link>) or
when <link linkend="gtk-list-box-invalidate-filter"><function>gtk_list_box_invalidate_filter()</function></link> is called.</para>
<para>Note that using a filter function is incompatible with using a model
(see <link linkend="gtk-list-box-bind-model"><function>gtk_list_box_bind_model()</function></link>).</para>
<refsect3 id="gtk-list-box-set-filter-func.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>filter_func</para></entry>
<entry role="parameter_description"><para>callback that lets you filter which rows to show. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data passed to <parameter>filter_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>destroy</para></entry>
<entry role="parameter_description"><para>destroy notifier for <parameter>user_data</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-header-func" role="function">
<title>gtk_list_box_set_header_func&#160;()</title>
<indexterm zone="gtk-list-box-set-header-func"><primary>gtk_list_box_set_header_func</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_header_func (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                              <parameter><link linkend="GtkListBoxUpdateHeaderFunc"><type>GtkListBoxUpdateHeaderFunc</type></link> update_header</parameter>,
                              <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                              <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> destroy</parameter>);</programlisting>
<para>By setting a header function on the <parameter>box</parameter>
 one can dynamically add headers
in front of rows, depending on the contents of the row and its position in the list.
For instance, one could use it to add headers in front of the first item of a
new kind, in a list sorted by the kind.</para>
<para>The <parameter>update_header</parameter>
 can look at the current header widget using <link linkend="gtk-list-box-row-get-header"><function>gtk_list_box_row_get_header()</function></link>
and either update the state of the widget as needed, or set a new one using
<link linkend="gtk-list-box-row-set-header"><function>gtk_list_box_row_set_header()</function></link>. If no header is needed, set the header to <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para>
<para>Note that you may get many calls <parameter>update_header</parameter>
 to this for a particular row when e.g.
changing things that don’t affect the header. In this case it is important for performance
to not blindly replace an existing header with an identical one.</para>
<para>The <parameter>update_header</parameter>
 function will be called for each row after the call, and it will
continue to be called each time a row changes (via <link linkend="gtk-list-box-row-changed"><function>gtk_list_box_row_changed()</function></link>) and when
the row before changes (either by <link linkend="gtk-list-box-row-changed"><function>gtk_list_box_row_changed()</function></link> on the previous row, or when
the previous row becomes a different row). It is also called for all rows when
<link linkend="gtk-list-box-invalidate-headers"><function>gtk_list_box_invalidate_headers()</function></link> is called.</para>
<refsect3 id="gtk-list-box-set-header-func.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>update_header</para></entry>
<entry role="parameter_description"><para>callback that lets you add row headers. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data passed to <parameter>update_header</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>destroy</para></entry>
<entry role="parameter_description"><para>destroy notifier for <parameter>user_data</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-set-sort-func" role="function">
<title>gtk_list_box_set_sort_func&#160;()</title>
<indexterm zone="gtk-list-box-set-sort-func"><primary>gtk_list_box_set_sort_func</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_set_sort_func (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                            <parameter><link linkend="GtkListBoxSortFunc"><type>GtkListBoxSortFunc</type></link> sort_func</parameter>,
                            <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                            <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> destroy</parameter>);</programlisting>
<para>By setting a sort function on the <parameter>box</parameter>
 one can dynamically reorder the rows
of the list, based on the contents of the rows.</para>
<para>The <parameter>sort_func</parameter>
 will be called for each row after the call, and will continue to
be called each time a row changes (via <link linkend="gtk-list-box-row-changed"><function>gtk_list_box_row_changed()</function></link>) and when
<link linkend="gtk-list-box-invalidate-sort"><function>gtk_list_box_invalidate_sort()</function></link> is called.</para>
<para>Note that using a sort function is incompatible with using a model
(see <link linkend="gtk-list-box-bind-model"><function>gtk_list_box_bind_model()</function></link>).</para>
<refsect3 id="gtk-list-box-set-sort-func.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>sort_func</para></entry>
<entry role="parameter_description"><para>the sort function. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data passed to <parameter>sort_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>destroy</para></entry>
<entry role="parameter_description"><para>destroy notifier for <parameter>user_data</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-drag-highlight-row" role="function">
<title>gtk_list_box_drag_highlight_row&#160;()</title>
<indexterm zone="gtk-list-box-drag-highlight-row"><primary>gtk_list_box_drag_highlight_row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_drag_highlight_row (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                                 <parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>This is a helper function for implementing DnD onto a <link linkend="GtkListBox"><type>GtkListBox</type></link>.
The passed in <parameter>row</parameter>
 will be highlighted via <link linkend="gtk-drag-highlight"><function>gtk_drag_highlight()</function></link>,
and any previously highlighted row will be unhighlighted.</para>
<para>The row will also be unhighlighted when the widget gets
a drag leave event.</para>
<refsect3 id="gtk-list-box-drag-highlight-row.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-drag-unhighlight-row" role="function">
<title>gtk_list_box_drag_unhighlight_row&#160;()</title>
<indexterm zone="gtk-list-box-drag-unhighlight-row"><primary>gtk_list_box_drag_unhighlight_row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_drag_unhighlight_row (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>);</programlisting>
<para>If a row has previously been highlighted via <link linkend="gtk-list-box-drag-highlight-row"><function>gtk_list_box_drag_highlight_row()</function></link>
it will have the highlight removed.</para>
<refsect3 id="gtk-list-box-drag-unhighlight-row.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GtkListBoxCreateWidgetFunc" role="function">
<title>GtkListBoxCreateWidgetFunc&#160;()</title>
<indexterm zone="GtkListBoxCreateWidgetFunc"><primary>GtkListBoxCreateWidgetFunc</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
<phrase role="c_punctuation">(</phrase>*GtkListBoxCreateWidgetFunc<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="gpointer"><type>gpointer</type></link> item</parameter>,
                               <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>);</programlisting>
<para>Called for list boxes that are bound to a <link linkend="GListModel"><type>GListModel</type></link> with
<link linkend="gtk-list-box-bind-model"><function>gtk_list_box_bind_model()</function></link> for each item that gets added to the model.</para>
<refsect3 id="GtkListBoxCreateWidgetFunc.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>item</para></entry>
<entry role="parameter_description"><para>the item from the model for which to create a widget for. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>type</acronym> GObject]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="GtkListBoxCreateWidgetFunc.returns" role="returns">
<title>Returns</title>
<para>a <link linkend="GtkWidget"><type>GtkWidget</type></link> that represents <parameter>item</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-bind-model" role="function">
<title>gtk_list_box_bind_model&#160;()</title>
<indexterm zone="gtk-list-box-bind-model"><primary>gtk_list_box_bind_model</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_bind_model (<parameter><link linkend="GtkListBox"><type>GtkListBox</type></link> *box</parameter>,
                         <parameter><link linkend="GListModel"><type>GListModel</type></link> *model</parameter>,
                         <parameter><link linkend="GtkListBoxCreateWidgetFunc"><type>GtkListBoxCreateWidgetFunc</type></link> create_widget_func</parameter>,
                         <parameter><link linkend="gpointer"><type>gpointer</type></link> user_data</parameter>,
                         <parameter><link linkend="GDestroyNotify"><type>GDestroyNotify</type></link> user_data_free_func</parameter>);</programlisting>
<para>Binds <parameter>model</parameter>
 to <parameter>box</parameter>
.</para>
<para>If <parameter>box</parameter>
 was already bound to a model, that previous binding is
destroyed.</para>
<para>The contents of <parameter>box</parameter>
 are cleared and then filled with widgets that
represent items from <parameter>model</parameter>
. <parameter>box</parameter>
 is updated whenever <parameter>model</parameter>
 changes.
If <parameter>model</parameter>
 is <link linkend="NULL:CAPS"><literal>NULL</literal></link>, <parameter>box</parameter>
 is left empty.</para>
<para>It is undefined to add or remove widgets directly (for example, with
<link linkend="gtk-list-box-insert"><function>gtk_list_box_insert()</function></link> or <link linkend="gtk-container-add"><function>gtk_container_add()</function></link>) while <parameter>box</parameter>
 is bound to a
model.</para>
<para>Note that using a model is incompatible with the filtering and sorting
functionality in GtkListBox. When using a model, filtering and sorting
should be implemented by the model.</para>
<refsect3 id="gtk-list-box-bind-model.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>model</para></entry>
<entry role="parameter_description"><para>the <link linkend="GListModel"><type>GListModel</type></link> to be bound to <parameter>box</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>create_widget_func</para></entry>
<entry role="parameter_description"><para>a function that creates widgets for items
or <link linkend="NULL:CAPS"><literal>NULL</literal></link> in case you also passed <link linkend="NULL:CAPS"><literal>NULL</literal></link> as <parameter>model</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data</para></entry>
<entry role="parameter_description"><para>user data passed to <parameter>create_widget_func</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>closure</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>user_data_free_func</para></entry>
<entry role="parameter_description"><para>function for freeing <parameter>user_data</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-new" role="function">
<title>gtk_list_box_row_new&#160;()</title>
<indexterm zone="gtk-list-box-row-new"><primary>gtk_list_box_row_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_list_box_row_new (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link>, to be used as a child of a <link linkend="GtkListBox"><type>GtkListBox</type></link>.</para>
<refsect3 id="gtk-list-box-row-new.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-changed" role="function">
<title>gtk_list_box_row_changed&#160;()</title>
<indexterm zone="gtk-list-box-row-changed"><primary>gtk_list_box_row_changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_row_changed (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Marks <parameter>row</parameter>
 as changed, causing any state that depends on this
to be updated. This affects sorting, filtering and headers.</para>
<para>Note that calls to this method must be in sync with the data
used for the row functions. For instance, if the list is
mirroring some external data set, and *two* rows changed in the
external data set then when you call <link linkend="gtk-list-box-row-changed"><function>gtk_list_box_row_changed()</function></link>
on the first row the sort function must only read the new data
for the first of the two changed rows, otherwise the resorting
of the rows will be wrong.</para>
<para>This generally means that if you don’t fully control the data
model you have to duplicate the data that affects the listbox
row functions into the row widgets themselves. Another alternative
is to call <link linkend="gtk-list-box-invalidate-sort"><function>gtk_list_box_invalidate_sort()</function></link> on any model change,
but that is more expensive.</para>
<refsect3 id="gtk-list-box-row-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-is-selected" role="function">
<title>gtk_list_box_row_is_selected&#160;()</title>
<indexterm zone="gtk-list-box-row-is-selected"><primary>gtk_list_box_row_is_selected</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_list_box_row_is_selected (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Returns whether the child is currently selected in its
<link linkend="GtkListBox"><type>GtkListBox</type></link> container.</para>
<refsect3 id="gtk-list-box-row-is-selected.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-row-is-selected.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>row</parameter>
is selected</para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-get-header" role="function">
<title>gtk_list_box_row_get_header&#160;()</title>
<indexterm zone="gtk-list-box-row-get-header"><primary>gtk_list_box_row_get_header</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_list_box_row_get_header (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Returns the current header of the <parameter>row</parameter>
. This can be used
in a <link linkend="GtkListBoxUpdateHeaderFunc"><type>GtkListBoxUpdateHeaderFunc</type></link> to see if there is a header
set already, and if so to update the state of it.</para>
<refsect3 id="gtk-list-box-row-get-header.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-row-get-header.returns" role="returns">
<title>Returns</title>
<para>the current header, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if none. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>][<acronym>nullable</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-set-header" role="function">
<title>gtk_list_box_row_set_header&#160;()</title>
<indexterm zone="gtk-list-box-row-set-header"><primary>gtk_list_box_row_set_header</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_row_set_header (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                             <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *header</parameter>);</programlisting>
<para>Sets the current header of the <parameter>row</parameter>
. This is only allowed to be called
from a <link linkend="GtkListBoxUpdateHeaderFunc"><type>GtkListBoxUpdateHeaderFunc</type></link>. It will replace any existing
header in the row, and be shown in front of the row in the listbox.</para>
<refsect3 id="gtk-list-box-row-set-header.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>header</para></entry>
<entry role="parameter_description"><para>the header, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-get-index" role="function">
<title>gtk_list_box_row_get_index&#160;()</title>
<indexterm zone="gtk-list-box-row-get-index"><primary>gtk_list_box_row_get_index</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
gtk_list_box_row_get_index (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Gets the current index of the <parameter>row</parameter>
 in its <link linkend="GtkListBox"><type>GtkListBox</type></link> container.</para>
<refsect3 id="gtk-list-box-row-get-index.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-row-get-index.returns" role="returns">
<title>Returns</title>
<para> the index of the <parameter>row</parameter>
, or -1 if the <parameter>row</parameter>
is not in a listbox</para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-set-activatable" role="function">
<title>gtk_list_box_row_set_activatable&#160;()</title>
<indexterm zone="gtk-list-box-row-set-activatable"><primary>gtk_list_box_row_set_activatable</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_row_set_activatable (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                                  <parameter><link linkend="gboolean"><type>gboolean</type></link> activatable</parameter>);</programlisting>
<para>Set the <link linkend="GtkListBoxRow--activatable"><type>“activatable”</type></link> property for this row.</para>
<refsect3 id="gtk-list-box-row-set-activatable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>activatable</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to mark the row as activatable</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-get-activatable" role="function">
<title>gtk_list_box_row_get_activatable&#160;()</title>
<indexterm zone="gtk-list-box-row-get-activatable"><primary>gtk_list_box_row_get_activatable</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_list_box_row_get_activatable (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Gets the value of the <link linkend="GtkListBoxRow--activatable"><type>“activatable”</type></link> property
for this row.</para>
<refsect3 id="gtk-list-box-row-get-activatable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-row-get-activatable.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the row is activatable</para>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-set-selectable" role="function">
<title>gtk_list_box_row_set_selectable&#160;()</title>
<indexterm zone="gtk-list-box-row-set-selectable"><primary>gtk_list_box_row_set_selectable</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_list_box_row_set_selectable (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>,
                                 <parameter><link linkend="gboolean"><type>gboolean</type></link> selectable</parameter>);</programlisting>
<para>Set the <link linkend="GtkListBoxRow--selectable"><type>“selectable”</type></link> property for this row.</para>
<refsect3 id="gtk-list-box-row-set-selectable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>selectable</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to mark the row as selectable</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-list-box-row-get-selectable" role="function">
<title>gtk_list_box_row_get_selectable&#160;()</title>
<indexterm zone="gtk-list-box-row-get-selectable"><primary>gtk_list_box_row_get_selectable</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_list_box_row_get_selectable (<parameter><link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row</parameter>);</programlisting>
<para>Gets the value of the <link linkend="GtkListBoxRow--selectable"><type>“selectable”</type></link> property
for this row.</para>
<refsect3 id="gtk-list-box-row-get-selectable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-list-box-row-get-selectable.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the row is selectable</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkListBox.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkListBox-struct" role="struct">
<title>GtkListBox</title>
<indexterm zone="GtkListBox-struct"><primary>GtkListBox</primary></indexterm>
<programlisting language="C">typedef struct _GtkListBox GtkListBox;</programlisting>
</refsect2>
<refsect2 id="GtkListBoxRow-struct" role="struct">
<title>struct GtkListBoxRow</title>
<indexterm zone="GtkListBoxRow-struct"><primary>GtkListBoxRow</primary></indexterm>
<programlisting language="C">struct GtkListBoxRow;</programlisting>
</refsect2>
<refsect2 id="GtkListBoxRowClass" role="struct">
<title>struct GtkListBoxRowClass</title>
<indexterm zone="GtkListBoxRowClass"><primary>GtkListBoxRowClass</primary></indexterm>
<programlisting language="C">struct GtkListBoxRowClass {
  GtkWidgetClass parent_class;

  void (* activate) (GtkListBoxRow *row);
};
</programlisting>
<refsect3 id="GtkListBoxRowClass.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><structfield id="GtkListBoxRowClass.activate">activate</structfield>&#160;()</para></entry>
<entry role="struct_member_description"></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>

</refsect1>
<refsect1 id="GtkListBox.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GtkListBox--accept-unpaired-release" role="property"><title>The <literal>“accept-unpaired-release”</literal> property</title>
<indexterm zone="GtkListBox--accept-unpaired-release"><primary>GtkListBox:accept-unpaired-release</primary></indexterm>
<programlisting>  “accept-unpaired-release”  <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Accept unpaired release.</para><para>Owner: GtkListBox</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkListBox--activate-on-single-click" role="property"><title>The <literal>“activate-on-single-click”</literal> property</title>
<indexterm zone="GtkListBox--activate-on-single-click"><primary>GtkListBox:activate-on-single-click</primary></indexterm>
<programlisting>  “activate-on-single-click” <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Activate row on a single click.</para><para>Owner: GtkListBox</para>
<para>Flags: Read / Write</para>
<para>Default value: TRUE</para>
</refsect2>
<refsect2 id="GtkListBox--selection-mode" role="property"><title>The <literal>“selection-mode”</literal> property</title>
<indexterm zone="GtkListBox--selection-mode"><primary>GtkListBox:selection-mode</primary></indexterm>
<programlisting>  “selection-mode”           <link linkend="GtkSelectionMode"><type>GtkSelectionMode</type></link></programlisting>
<para>The selection mode.</para><para>Owner: GtkListBox</para>
<para>Flags: Read / Write</para>
<para>Default value: GTK_SELECTION_SINGLE</para>
</refsect2>
<refsect2 id="GtkListBox--show-separators" role="property"><title>The <literal>“show-separators”</literal> property</title>
<indexterm zone="GtkListBox--show-separators"><primary>GtkListBox:show-separators</primary></indexterm>
<programlisting>  “show-separators”          <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Show separators between rows.</para><para>Owner: GtkListBox</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkListBoxRow--activatable" role="property"><title>The <literal>“activatable”</literal> property</title>
<indexterm zone="GtkListBoxRow--activatable"><primary>GtkListBoxRow:activatable</primary></indexterm>
<programlisting>  “activatable”              <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>The property determines whether the <link linkend="GtkListBox-row-activated"><type>“row-activated”</type></link>
signal will be emitted for this row.</para>
<para>Owner: GtkListBoxRow</para>
<para>Flags: Read / Write</para>
<para>Default value: TRUE</para>
</refsect2>
<refsect2 id="GtkListBoxRow--child" role="property"><title>The <literal>“child”</literal> property</title>
<indexterm zone="GtkListBoxRow--child"><primary>GtkListBoxRow:child</primary></indexterm>
<programlisting>  “child”                    <link linkend="GtkWidget"><type>GtkWidget</type></link>&#160;*</programlisting>
<para>The child widget.</para><para>Owner: GtkListBoxRow</para>
<para>Flags: Read / Write</para>
</refsect2>
<refsect2 id="GtkListBoxRow--selectable" role="property"><title>The <literal>“selectable”</literal> property</title>
<indexterm zone="GtkListBoxRow--selectable"><primary>GtkListBoxRow:selectable</primary></indexterm>
<programlisting>  “selectable”               <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>The property determines whether this row can be selected.</para>
<para>Owner: GtkListBoxRow</para>
<para>Flags: Read / Write</para>
<para>Default value: TRUE</para>
</refsect2>

</refsect1>
<refsect1 id="GtkListBox.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GtkListBox-activate-cursor-row" role="signal"><title>The <literal>“activate-cursor-row”</literal> signal</title>
<indexterm zone="GtkListBox-activate-cursor-row"><primary>GtkListBox::activate-cursor-row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link> *listbox,
               <link linkend="gpointer"><type>gpointer</type></link>    user_data)</programlisting>
<para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkListBox-move-cursor" role="signal"><title>The <literal>“move-cursor”</literal> signal</title>
<indexterm zone="GtkListBox-move-cursor"><primary>GtkListBox::move-cursor</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link>     *listbox,
               <link linkend="GtkMovementStep"><type>GtkMovementStep</type></link> arg1,
               <link linkend="gint"><type>gint</type></link>            arg2,
               <link linkend="gboolean"><type>gboolean</type></link>        arg3,
               <link linkend="gboolean"><type>gboolean</type></link>        arg4,
               <link linkend="gpointer"><type>gpointer</type></link>        user_data)</programlisting>
<para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkListBox-row-activated" role="signal"><title>The <literal>“row-activated”</literal> signal</title>
<indexterm zone="GtkListBox-row-activated"><primary>GtkListBox::row-activated</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link>    *box,
               <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row,
               <link linkend="gpointer"><type>gpointer</type></link>       user_data)</programlisting>
<para>The ::row-activated signal is emitted when a row has been activated by the user.</para>
<refsect3 id="GtkListBox-row-activated.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>the activated row</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2><refsect2 id="GtkListBox-row-selected" role="signal"><title>The <literal>“row-selected”</literal> signal</title>
<indexterm zone="GtkListBox-row-selected"><primary>GtkListBox::row-selected</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link>    *box,
               <link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *row,
               <link linkend="gpointer"><type>gpointer</type></link>       user_data)</programlisting>
<para>The ::row-selected signal is emitted when a new row is selected, or
(with a <link linkend="NULL:CAPS"><literal>NULL</literal></link> <parameter>row</parameter>
) when the selection is cleared.</para>
<para>When the <parameter>box</parameter>
 is using <link linkend="GTK-SELECTION-MULTIPLE:CAPS"><type>GTK_SELECTION_MULTIPLE</type></link>, this signal will not
give you the full picture of selection changes, and you should use
the <link linkend="GtkListBox-selected-rows-changed"><type>“selected-rows-changed”</type></link> signal instead.</para>
<refsect3 id="GtkListBox-row-selected.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkListBox"><type>GtkListBox</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>row</para></entry>
<entry role="parameter_description"><para>the selected row. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2><refsect2 id="GtkListBox-select-all" role="signal"><title>The <literal>“select-all”</literal> signal</title>
<indexterm zone="GtkListBox-select-all"><primary>GtkListBox::select-all</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link> *box,
               <link linkend="gpointer"><type>gpointer</type></link>    user_data)</programlisting>
<para>The ::select-all signal is a <link linkend="GtkBindingSignal">keybinding signal</link>
which gets emitted to select all children of the box, if the selection
mode permits it.</para>
<para>The default bindings for this signal is Ctrl-a.</para>
<refsect3 id="GtkListBox-select-all.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkListBox"><type>GtkListBox</type></link> on which the signal is emitted</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkListBox-selected-rows-changed" role="signal"><title>The <literal>“selected-rows-changed”</literal> signal</title>
<indexterm zone="GtkListBox-selected-rows-changed"><primary>GtkListBox::selected-rows-changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link> *box,
               <link linkend="gpointer"><type>gpointer</type></link>    user_data)</programlisting>
<para>The ::selected-rows-changed signal is emitted when the
set of selected rows changes.</para>
<refsect3 id="GtkListBox-selected-rows-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkListBox"><type>GtkListBox</type></link> on wich the signal is emitted</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-FIRST:CAPS">Run First</link></para>
</refsect2><refsect2 id="GtkListBox-toggle-cursor-row" role="signal"><title>The <literal>“toggle-cursor-row”</literal> signal</title>
<indexterm zone="GtkListBox-toggle-cursor-row"><primary>GtkListBox::toggle-cursor-row</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link> *listbox,
               <link linkend="gpointer"><type>gpointer</type></link>    user_data)</programlisting>
<para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkListBox-unselect-all" role="signal"><title>The <literal>“unselect-all”</literal> signal</title>
<indexterm zone="GtkListBox-unselect-all"><primary>GtkListBox::unselect-all</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBox"><type>GtkListBox</type></link> *box,
               <link linkend="gpointer"><type>gpointer</type></link>    user_data)</programlisting>
<para>The ::unselect-all signal is a <link linkend="GtkBindingSignal">keybinding signal</link>
which gets emitted to unselect all children of the box, if the selection
mode permits it.</para>
<para>The default bindings for this signal is Ctrl-Shift-a.</para>
<refsect3 id="GtkListBox-unselect-all.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>box</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkListBox"><type>GtkListBox</type></link> on which the signal is emitted</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkListBoxRow-activate" role="signal"><title>The <literal>“activate”</literal> signal</title>
<indexterm zone="GtkListBoxRow-activate"><primary>GtkListBoxRow::activate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkListBoxRow"><type>GtkListBoxRow</type></link> *listboxrow,
               <link linkend="gpointer"><type>gpointer</type></link>       user_data)</programlisting>
<para>This is a keybinding signal, which will cause this row to be activated.</para>
<para>If you want to be notified when the user activates a row (by key or not),
use the <link linkend="GtkListBox-row-activated"><type>“row-activated”</type></link> signal on the row’s parent <link linkend="GtkListBox"><type>GtkListBox</type></link>.</para>
<refsect3 id="GtkListBoxRow-activate.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2>
</refsect1>
<refsect1 id="GtkListBox.see-also">
<title>See Also</title>
<para><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para>

</refsect1>

</refentry>
