<?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="GtkBitset">
<refmeta>
<refentrytitle role="top_of_page" id="GtkBitset.top_of_page">GtkBitset</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkBitset</refname>
<refpurpose>Sets of integers</refpurpose>
</refnamediv>

<refsect1 id="GtkBitset.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="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-bitset-ref">gtk_bitset_ref</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-bitset-unref">gtk_bitset_unref</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-bitset-new-empty">gtk_bitset_new_empty</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-bitset-new-range">gtk_bitset_new_range</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-bitset-copy">gtk_bitset_copy</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-bitset-contains">gtk_bitset_contains</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-bitset-is-empty">gtk_bitset_is_empty</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-bitset-equals">gtk_bitset_equals</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-get-minimum">gtk_bitset_get_minimum</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-get-maximum">gtk_bitset_get_maximum</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-get-size">gtk_bitset_get_size</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-get-size-in-range">gtk_bitset_get_size_in_range</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-get-nth">gtk_bitset_get_nth</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-bitset-remove-all">gtk_bitset_remove_all</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-bitset-add">gtk_bitset_add</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-bitset-remove">gtk_bitset_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-bitset-add-range">gtk_bitset_add_range</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-bitset-remove-range">gtk_bitset_remove_range</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-bitset-add-range-closed">gtk_bitset_add_range_closed</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-bitset-remove-range-closed">gtk_bitset_remove_range_closed</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-bitset-add-rectangle">gtk_bitset_add_rectangle</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-bitset-remove-rectangle">gtk_bitset_remove_rectangle</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-bitset-union">gtk_bitset_union</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-bitset-intersect">gtk_bitset_intersect</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-bitset-subtract">gtk_bitset_subtract</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-bitset-difference">gtk_bitset_difference</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-bitset-shift-left">gtk_bitset_shift_left</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-bitset-shift-right">gtk_bitset_shift_right</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-bitset-splice">gtk_bitset_splice</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-bitset-iter-init-first">gtk_bitset_iter_init_first</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-bitset-iter-init-last">gtk_bitset_iter_init_last</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-bitset-iter-init-at">gtk_bitset_iter_init_at</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-bitset-iter-next">gtk_bitset_iter_next</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-bitset-iter-previous">gtk_bitset_iter_previous</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-bitset-iter-get-value">gtk_bitset_iter_get_value</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-bitset-iter-is-valid">gtk_bitset_iter_is_valid</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkBitset.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="GtkBitset-struct">GtkBitset</link></entry></row>



<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="GtkBitsetIter">GtkBitsetIter</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkBitset.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GBoxed">GBoxed</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GtkBitset
</screen>
</refsect1>

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

<refsect1 id="GtkBitset.description" role="desc">
<title role="desc.title">Description</title>
<para><link linkend="GtkBitset"><type>GtkBitset</type></link> is a data structure for representing a set of unsigned integers.
Another name for this data structure is "bitmap".</para>
<para>The current implementation is based on <ulink url="https://roaringbitmap.org/">roaring bitmaps</ulink>.</para>
<para>A bitset allows adding a set of integers and provides support for set operations
like unions, intersections and checks for equality or if a value is contained
in the set. <link linkend="GtkBitset"><type>GtkBitset</type></link> also contains various functions to query metadata about
the bitset, such as the minimum or maximum values or its size.</para>
<para>The fastest way to iterate values in a bitset is <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link>.</para>
<para>The main use case for <link linkend="GtkBitset"><type>GtkBitset</type></link> is implementing complex selections for
<link linkend="GtkSelectionModel"><type>GtkSelectionModel</type></link>.</para>

</refsect1>
<refsect1 id="GtkBitset.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-bitset-ref" role="function">
<title>gtk_bitset_ref&#160;()</title>
<indexterm zone="gtk-bitset-ref"><primary>gtk_bitset_ref</primary></indexterm>
<programlisting language="C"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
gtk_bitset_ref (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Acquires a reference on the given <link linkend="GtkBitset"><type>GtkBitset</type></link>.</para>
<refsect3 id="gtk-bitset-ref.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-ref.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="GtkBitset"><type>GtkBitset</type></link> with an additional reference. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-unref" role="function">
<title>gtk_bitset_unref&#160;()</title>
<indexterm zone="gtk-bitset-unref"><primary>gtk_bitset_unref</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_unref (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Releases a reference on the given <link linkend="GtkBitset"><type>GtkBitset</type></link>.</para>
<para>If the reference was the last, the resources associated to the <parameter>self</parameter>
 are
freed.</para>
<refsect3 id="gtk-bitset-unref.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></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-bitset-new-empty" role="function">
<title>gtk_bitset_new_empty&#160;()</title>
<indexterm zone="gtk-bitset-new-empty"><primary>gtk_bitset_new_empty</primary></indexterm>
<programlisting language="C"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
gtk_bitset_new_empty (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new empty bitset.</para>
<refsect3 id="gtk-bitset-new-empty.returns" role="returns">
<title>Returns</title>
<para> A new empty bitset</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-new-range" role="function">
<title>gtk_bitset_new_range&#160;()</title>
<indexterm zone="gtk-bitset-new-range"><primary>gtk_bitset_new_range</primary></indexterm>
<programlisting language="C"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
gtk_bitset_new_range (<parameter><link linkend="guint"><type>guint</type></link> start</parameter>,
                      <parameter><link linkend="guint"><type>guint</type></link> n_items</parameter>);</programlisting>
<para>Creates a bitset with the given range set.</para>
<refsect3 id="gtk-bitset-new-range.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>start</para></entry>
<entry role="parameter_description"><para>first value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_items</para></entry>
<entry role="parameter_description"><para>number of consecutive values to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-new-range.returns" role="returns">
<title>Returns</title>
<para> A new bitset</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-copy" role="function">
<title>gtk_bitset_copy&#160;()</title>
<indexterm zone="gtk-bitset-copy"><primary>gtk_bitset_copy</primary></indexterm>
<programlisting language="C"><link linkend="GtkBitset"><returnvalue>GtkBitset</returnvalue></link>&#160;*
gtk_bitset_copy (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Creates a copy of <parameter>self</parameter>
.</para>
<refsect3 id="gtk-bitset-copy.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-copy.returns" role="returns">
<title>Returns</title>
<para>A new bitset that contains the same
values as <parameter>self</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-contains" role="function">
<title>gtk_bitset_contains&#160;()</title>
<indexterm zone="gtk-bitset-contains"><primary>gtk_bitset_contains</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_contains (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                     <parameter><link linkend="guint"><type>guint</type></link> value</parameter>);</programlisting>
<para>Checks if the given <parameter>value</parameter>
 has been added to <parameter>self</parameter>
</para>
<refsect3 id="gtk-bitset-contains.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>the value to check</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-contains.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>self</parameter>
contains <parameter>value</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-is-empty" role="function">
<title>gtk_bitset_is_empty&#160;()</title>
<indexterm zone="gtk-bitset-is-empty"><primary>gtk_bitset_is_empty</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_is_empty (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Check if no value is contained in bitset.</para>
<refsect3 id="gtk-bitset-is-empty.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-is-empty.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>self</parameter>
is empty</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-equals" role="function">
<title>gtk_bitset_equals&#160;()</title>
<indexterm zone="gtk-bitset-equals"><primary>gtk_bitset_equals</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_equals (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                   <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *other</parameter>);</programlisting>
<para>Returns <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>self</parameter>
 and <parameter>other</parameter>
 contain the same values.</para>
<refsect3 id="gtk-bitset-equals.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>other</para></entry>
<entry role="parameter_description"><para>another <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-equals.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>self</parameter>
and <parameter>other</parameter>
contain the same values</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-get-minimum" role="function">
<title>gtk_bitset_get_minimum&#160;()</title>
<indexterm zone="gtk-bitset-get-minimum"><primary>gtk_bitset_get_minimum</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gtk_bitset_get_minimum (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Returns the smallest value in <parameter>self</parameter>
. If <parameter>self</parameter>
 is empty,
G_MAXUINT is returned.</para>
<refsect3 id="gtk-bitset-get-minimum.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-get-minimum.returns" role="returns">
<title>Returns</title>
<para> The smallest value in <parameter>self</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-get-maximum" role="function">
<title>gtk_bitset_get_maximum&#160;()</title>
<indexterm zone="gtk-bitset-get-maximum"><primary>gtk_bitset_get_maximum</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gtk_bitset_get_maximum (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Returns the largest value in <parameter>self</parameter>
. If <parameter>self</parameter>
 is empty,
0 is returned.</para>
<refsect3 id="gtk-bitset-get-maximum.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-get-maximum.returns" role="returns">
<title>Returns</title>
<para> The largest value in <parameter>self</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-get-size" role="function">
<title>gtk_bitset_get_size&#160;()</title>
<indexterm zone="gtk-bitset-get-size"><primary>gtk_bitset_get_size</primary></indexterm>
<programlisting language="C"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
gtk_bitset_get_size (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Gets the number of values that were added to the set.
For example, if the set is empty, 0 is returned.</para>
<para>Note that this function returns a <link linkend="guint64"><type>guint64</type></link>, because when all values are
set, the return value is <link linkend="G-MAXUINT:CAPS"><type>G_MAXUINT</type></link> + 1. Unless you are sure this cannot
happen (it can't with <link linkend="GListModel"><type>GListModel</type></link>), be sure to use a 64bit type.</para>
<refsect3 id="gtk-bitset-get-size.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-get-size.returns" role="returns">
<title>Returns</title>
<para> The number of values in the set.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-get-size-in-range" role="function">
<title>gtk_bitset_get_size_in_range&#160;()</title>
<indexterm zone="gtk-bitset-get-size-in-range"><primary>gtk_bitset_get_size_in_range</primary></indexterm>
<programlisting language="C"><link linkend="guint64"><returnvalue>guint64</returnvalue></link>
gtk_bitset_get_size_in_range (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                              <parameter><link linkend="guint"><type>guint</type></link> first</parameter>,
                              <parameter><link linkend="guint"><type>guint</type></link> last</parameter>);</programlisting>
<para>Gets the number of values that are part of the set from <parameter>first</parameter>
 to <parameter>last</parameter>

(inclusive).</para>
<para>Note that this function returns a <link linkend="guint64"><type>guint64</type></link>, because when all values are
set, the return value is <link linkend="G-MAXUINT:CAPS"><type>G_MAXUINT</type></link> + 1. Unless you are sure this cannot
happen (it can't with <link linkend="GListModel"><type>GListModel</type></link>), be sure to use a 64bit type.</para>
<refsect3 id="gtk-bitset-get-size-in-range.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>first</para></entry>
<entry role="parameter_description"><para>the first element to include</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>last</para></entry>
<entry role="parameter_description"><para>the last element to include</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-get-size-in-range.returns" role="returns">
<title>Returns</title>
<para> The number of values in the set from <parameter>first</parameter>
to <parameter>last</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-get-nth" role="function">
<title>gtk_bitset_get_nth&#160;()</title>
<indexterm zone="gtk-bitset-get-nth"><primary>gtk_bitset_get_nth</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gtk_bitset_get_nth (<parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                    <parameter><link linkend="guint"><type>guint</type></link> nth</parameter>);</programlisting>
<para>Returns the value of the <parameter>nth</parameter>
 item in self.</para>
<para>If <parameter>nth</parameter>
 is &gt;= the size of <parameter>self</parameter>
, 0 is returned.</para>
<refsect3 id="gtk-bitset-get-nth.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>nth</para></entry>
<entry role="parameter_description"><para>index of the item to get</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-get-nth.returns" role="returns">
<title>Returns</title>
<para> the value of the <parameter>nth</parameter>
item in <parameter>self</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-remove-all" role="function">
<title>gtk_bitset_remove_all&#160;()</title>
<indexterm zone="gtk-bitset-remove-all"><primary>gtk_bitset_remove_all</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_remove_all (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>);</programlisting>
<para>Removes all values from the bitset so that it is empty again.</para>
<refsect3 id="gtk-bitset-remove-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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-add" role="function">
<title>gtk_bitset_add&#160;()</title>
<indexterm zone="gtk-bitset-add"><primary>gtk_bitset_add</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_add (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                <parameter><link linkend="guint"><type>guint</type></link> value</parameter>);</programlisting>
<para>Adds <parameter>value</parameter>
 to <parameter>self</parameter>
 if it wasn't part of it before.</para>
<refsect3 id="gtk-bitset-add.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-add.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>value</parameter>
was not part of <parameter>self</parameter>
and <parameter>self</parameter>
was changed.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-remove" role="function">
<title>gtk_bitset_remove&#160;()</title>
<indexterm zone="gtk-bitset-remove"><primary>gtk_bitset_remove</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_remove (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                   <parameter><link linkend="guint"><type>guint</type></link> value</parameter>);</programlisting>
<para>Removes <parameter>value</parameter>
 from <parameter>self</parameter>
 if it was part of it before.</para>
<refsect3 id="gtk-bitset-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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-remove.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>value</parameter>
was part of <parameter>self</parameter>
and <parameter>self</parameter>
was changed.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-add-range" role="function">
<title>gtk_bitset_add_range&#160;()</title>
<indexterm zone="gtk-bitset-add-range"><primary>gtk_bitset_add_range</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_add_range (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                      <parameter><link linkend="guint"><type>guint</type></link> start</parameter>,
                      <parameter><link linkend="guint"><type>guint</type></link> n_items</parameter>);</programlisting>
<para>Adds all values from <parameter>start</parameter>
 (inclusive) to <parameter>start</parameter>
 + <parameter>n_items</parameter>

(exclusive) in <parameter>self</parameter>
.</para>
<refsect3 id="gtk-bitset-add-range.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start</para></entry>
<entry role="parameter_description"><para>first value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_items</para></entry>
<entry role="parameter_description"><para>number of consecutive values to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-remove-range" role="function">
<title>gtk_bitset_remove_range&#160;()</title>
<indexterm zone="gtk-bitset-remove-range"><primary>gtk_bitset_remove_range</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_remove_range (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                         <parameter><link linkend="guint"><type>guint</type></link> start</parameter>,
                         <parameter><link linkend="guint"><type>guint</type></link> n_items</parameter>);</programlisting>
<para>Removes all values from <parameter>start</parameter>
 (inclusive) to <parameter>start</parameter>
 + <parameter>n_items</parameter>
 (exclusive)
in <parameter>self</parameter>
.</para>
<refsect3 id="gtk-bitset-remove-range.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start</para></entry>
<entry role="parameter_description"><para>first value to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_items</para></entry>
<entry role="parameter_description"><para>number of consecutive values to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-add-range-closed" role="function">
<title>gtk_bitset_add_range_closed&#160;()</title>
<indexterm zone="gtk-bitset-add-range-closed"><primary>gtk_bitset_add_range_closed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_add_range_closed (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> first</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> last</parameter>);</programlisting>
<para>Adds the closed range [<parameter>first</parameter>
, <parameter>last</parameter>
], so <parameter>first</parameter>
, <parameter>last</parameter>
 and all
values in between. <parameter>first</parameter>
 must be smaller than <parameter>last</parameter>
.</para>
<refsect3 id="gtk-bitset-add-range-closed.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>first</para></entry>
<entry role="parameter_description"><para>first value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>last</para></entry>
<entry role="parameter_description"><para>last value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-remove-range-closed" role="function">
<title>gtk_bitset_remove_range_closed&#160;()</title>
<indexterm zone="gtk-bitset-remove-range-closed"><primary>gtk_bitset_remove_range_closed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_remove_range_closed (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> first</parameter>,
                                <parameter><link linkend="guint"><type>guint</type></link> last</parameter>);</programlisting>
<para>Removes the closed range [<parameter>first</parameter>
, <parameter>last</parameter>
], so <parameter>first</parameter>
, <parameter>last</parameter>
 and all
values in between. <parameter>first</parameter>
 must be smaller than <parameter>last</parameter>
.</para>
<refsect3 id="gtk-bitset-remove-range-closed.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>first</para></entry>
<entry role="parameter_description"><para>first value to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>last</para></entry>
<entry role="parameter_description"><para>last value to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-add-rectangle" role="function">
<title>gtk_bitset_add_rectangle&#160;()</title>
<indexterm zone="gtk-bitset-add-rectangle"><primary>gtk_bitset_add_rectangle</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_add_rectangle (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                          <parameter><link linkend="guint"><type>guint</type></link> start</parameter>,
                          <parameter><link linkend="guint"><type>guint</type></link> width</parameter>,
                          <parameter><link linkend="guint"><type>guint</type></link> height</parameter>,
                          <parameter><link linkend="guint"><type>guint</type></link> stride</parameter>);</programlisting>
<para>Interprets the values as a 2-dimensional boolean grid with the given <parameter>stride</parameter>

and inside that grid, adds a rectangle with the given <parameter>width</parameter>
 and <parameter>height</parameter>
.</para>
<refsect3 id="gtk-bitset-add-rectangle.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start</para></entry>
<entry role="parameter_description"><para>first value to add</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>width of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>height of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>stride</para></entry>
<entry role="parameter_description"><para>row stride of the grid</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-remove-rectangle" role="function">
<title>gtk_bitset_remove_rectangle&#160;()</title>
<indexterm zone="gtk-bitset-remove-rectangle"><primary>gtk_bitset_remove_rectangle</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_remove_rectangle (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> start</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> width</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> height</parameter>,
                             <parameter><link linkend="guint"><type>guint</type></link> stride</parameter>);</programlisting>
<para>Interprets the values as a 2-dimensional boolean grid with the given <parameter>stride</parameter>

and inside that grid, removes a rectangle with the given <parameter>width</parameter>
 and <parameter>height</parameter>
.</para>
<refsect3 id="gtk-bitset-remove-rectangle.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start</para></entry>
<entry role="parameter_description"><para>first value to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>width of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>height of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>stride</para></entry>
<entry role="parameter_description"><para>row stride of the grid</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-union" role="function">
<title>gtk_bitset_union&#160;()</title>
<indexterm zone="gtk-bitset-union"><primary>gtk_bitset_union</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_union (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                  <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *other</parameter>);</programlisting>
<para>Sets <parameter>self</parameter>
 to be the union of <parameter>self</parameter>
 and <parameter>other</parameter>
, that is add all values
from <parameter>other</parameter>
 into <parameter>self</parameter>
 that weren't part of it.</para>
<para>It is allowed for <parameter>self</parameter>
 and <parameter>other</parameter>
 to be the same bitset. Nothing will
happen in that case.</para>
<refsect3 id="gtk-bitset-union.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>other</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkBitset"><type>GtkBitset</type></link> to union with</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-intersect" role="function">
<title>gtk_bitset_intersect&#160;()</title>
<indexterm zone="gtk-bitset-intersect"><primary>gtk_bitset_intersect</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_intersect (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                      <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *other</parameter>);</programlisting>
<para>Sets <parameter>self</parameter>
 to be the intersection of <parameter>self</parameter>
 and <parameter>other</parameter>
, that is remove
all values from <parameter>self</parameter>
 that are not part of <parameter>other</parameter>
.</para>
<para>It is allowed for <parameter>self</parameter>
 and <parameter>other</parameter>
 to be the same bitset. Nothing will
happen in that case.</para>
<refsect3 id="gtk-bitset-intersect.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>other</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkBitset"><type>GtkBitset</type></link> to intersect with</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-subtract" role="function">
<title>gtk_bitset_subtract&#160;()</title>
<indexterm zone="gtk-bitset-subtract"><primary>gtk_bitset_subtract</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_subtract (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                     <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *other</parameter>);</programlisting>
<para>Sets <parameter>self</parameter>
 to be the subtraction of <parameter>other</parameter>
 from <parameter>self</parameter>
, that is remove
all values from <parameter>self</parameter>
 that are part of <parameter>other</parameter>
.</para>
<para>It is allowed for <parameter>self</parameter>
 and <parameter>other</parameter>
 to be the same bitset. The bitset
will be emptied in that case.</para>
<refsect3 id="gtk-bitset-subtract.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>other</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkBitset"><type>GtkBitset</type></link> to subtract</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-difference" role="function">
<title>gtk_bitset_difference&#160;()</title>
<indexterm zone="gtk-bitset-difference"><primary>gtk_bitset_difference</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_difference (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                       <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *other</parameter>);</programlisting>
<para>Sets <parameter>self</parameter>
 to be the symmetric difference of <parameter>self</parameter>
 and <parameter>other</parameter>
, that
is set <parameter>self</parameter>
 to contain all values that were either contained in <parameter>self</parameter>

or in <parameter>other</parameter>
, but not in both.
This operation is also called an XOR.</para>
<para>It is allowed for <parameter>self</parameter>
 and <parameter>other</parameter>
 to be the same bitset. The bitset
will be emptied in that case.</para>
<refsect3 id="gtk-bitset-difference.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>other</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkBitset"><type>GtkBitset</type></link> to compute the difference from</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-shift-left" role="function">
<title>gtk_bitset_shift_left&#160;()</title>
<indexterm zone="gtk-bitset-shift-left"><primary>gtk_bitset_shift_left</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_shift_left (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                       <parameter><link linkend="guint"><type>guint</type></link> amount</parameter>);</programlisting>
<para>Shifts all values in <parameter>self</parameter>
 to the left by <parameter>amount</parameter>
. Values
smaller than <parameter>amount</parameter>
 are discarded.</para>
<refsect3 id="gtk-bitset-shift-left.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>self</para></entry>
<entry role="parameter_description"><para>a $GtkBitset</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>amount</para></entry>
<entry role="parameter_description"><para>amount to shift all values to the left</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-shift-right" role="function">
<title>gtk_bitset_shift_right&#160;()</title>
<indexterm zone="gtk-bitset-shift-right"><primary>gtk_bitset_shift_right</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_shift_right (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                        <parameter><link linkend="guint"><type>guint</type></link> amount</parameter>);</programlisting>
<para>Shifts all values in <parameter>self</parameter>
 to the right by <parameter>amount</parameter>
. Values
that end up too large to be held in a <link linkend="guint"><type>guint</type></link> are discarded.</para>
<refsect3 id="gtk-bitset-shift-right.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>self</para></entry>
<entry role="parameter_description"><para>a $GtkBitset</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>amount</para></entry>
<entry role="parameter_description"><para>amount to shift all values to the right</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-splice" role="function">
<title>gtk_bitset_splice&#160;()</title>
<indexterm zone="gtk-bitset-splice"><primary>gtk_bitset_splice</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_bitset_splice (<parameter><link linkend="GtkBitset"><type>GtkBitset</type></link> *self</parameter>,
                   <parameter><link linkend="guint"><type>guint</type></link> position</parameter>,
                   <parameter><link linkend="guint"><type>guint</type></link> removed</parameter>,
                   <parameter><link linkend="guint"><type>guint</type></link> added</parameter>);</programlisting>
<para>This is a support function for <link linkend="GListModel"><type>GListModel</type></link> handling, by mirroring
the <link linkend="GlistModel-items-changed"><type>“items-changed”</type></link> signal.</para>
<para>First, it "cuts" the values from <parameter>position</parameter>
 to <parameter>removed</parameter>
 from
the bitset. That is, it removes all those values and shifts
all larger values to the left by <parameter>removed</parameter>
 places.</para>
<para>Then, it "pastes" new room into the bitset by shifting all values
larger than <parameter>position</parameter>
 by <parameter>added</parameter>
 spaces to the right. This frees
up space that can then be filled.</para>
<refsect3 id="gtk-bitset-splice.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>self</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>position</para></entry>
<entry role="parameter_description"><para>position at which to slice</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>removed</para></entry>
<entry role="parameter_description"><para>number of values to remove</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>added</para></entry>
<entry role="parameter_description"><para>number of values to add</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-init-first" role="function">
<title>gtk_bitset_iter_init_first&#160;()</title>
<indexterm zone="gtk-bitset-iter-init-first"><primary>gtk_bitset_iter_init_first</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_init_first (<parameter><link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>,
                            <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *set</parameter>,
                            <parameter><link linkend="guint"><type>guint</type></link> *value</parameter>);</programlisting>
<para>Initializes an iterator for <parameter>set</parameter>
 and points it to the first
value in <parameter>set</parameter>
. If <parameter>set</parameter>
 is empty, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> is returned and <parameter>value</parameter>

is set to <link linkend="G-MAXUINT:CAPS"><literal>G_MAXUINT</literal></link>.</para>
<refsect3 id="gtk-bitset-iter-init-first.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>iter</para></entry>
<entry role="parameter_description"><para>a pointer to an uninitialized <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>set</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>Set to the first value in <parameter>set</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-init-first.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>set</parameter>
isn't empty.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-init-last" role="function">
<title>gtk_bitset_iter_init_last&#160;()</title>
<indexterm zone="gtk-bitset-iter-init-last"><primary>gtk_bitset_iter_init_last</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_init_last (<parameter><link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>,
                           <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *set</parameter>,
                           <parameter><link linkend="guint"><type>guint</type></link> *value</parameter>);</programlisting>
<para>Initializes an iterator for <parameter>set</parameter>
 and points it to the last
value in <parameter>set</parameter>
. If <parameter>set</parameter>
 is empty, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> is returned.</para>
<refsect3 id="gtk-bitset-iter-init-last.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>iter</para></entry>
<entry role="parameter_description"><para>a pointer to an uninitialized <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>set</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>Set to the last value in <parameter>set</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-init-last.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>set</parameter>
isn't empty.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-init-at" role="function">
<title>gtk_bitset_iter_init_at&#160;()</title>
<indexterm zone="gtk-bitset-iter-init-at"><primary>gtk_bitset_iter_init_at</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_init_at (<parameter><link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>,
                         <parameter>const <link linkend="GtkBitset"><type>GtkBitset</type></link> *set</parameter>,
                         <parameter><link linkend="guint"><type>guint</type></link> target</parameter>,
                         <parameter><link linkend="guint"><type>guint</type></link> *value</parameter>);</programlisting>
<para>Initializes <parameter>iter</parameter>
 to point to <parameter>target</parameter>
. If <parameter>target</parameter>
 is not found, finds
the next value after it. If no value &gt;= <parameter>target</parameter>
 exists in <parameter>set</parameter>
, this
function returns <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.</para>
<refsect3 id="gtk-bitset-iter-init-at.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>iter</para></entry>
<entry role="parameter_description"><para>a pointer to an uninitialized <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>set</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitset"><type>GtkBitset</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>target</para></entry>
<entry role="parameter_description"><para>target value to start iterating at</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>Set to the found value in <parameter>set</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-init-at.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if a value was found.</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-next" role="function">
<title>gtk_bitset_iter_next&#160;()</title>
<indexterm zone="gtk-bitset-iter-next"><primary>gtk_bitset_iter_next</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_next (<parameter><link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>,
                      <parameter><link linkend="guint"><type>guint</type></link> *value</parameter>);</programlisting>
<para>Moves <parameter>iter</parameter>
 to the next value in the set. If it was already
pointing to the last value in the set, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> is returned and
<parameter>iter</parameter>
 is invalidated.</para>
<refsect3 id="gtk-bitset-iter-next.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>iter</para></entry>
<entry role="parameter_description"><para>a pointer to a valid <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>Set to the next value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-next.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if a next value existed</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-previous" role="function">
<title>gtk_bitset_iter_previous&#160;()</title>
<indexterm zone="gtk-bitset-iter-previous"><primary>gtk_bitset_iter_previous</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_previous (<parameter><link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>,
                          <parameter><link linkend="guint"><type>guint</type></link> *value</parameter>);</programlisting>
<para>Moves <parameter>iter</parameter>
 to the previous value in the set. If it was already
pointing to the first value in the set, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> is returned and
<parameter>iter</parameter>
 is invalidated.</para>
<refsect3 id="gtk-bitset-iter-previous.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>iter</para></entry>
<entry role="parameter_description"><para>a pointer to a valid <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>value</para></entry>
<entry role="parameter_description"><para>Set to the previous value. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-previous.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if a previous value existed</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-get-value" role="function">
<title>gtk_bitset_iter_get_value&#160;()</title>
<indexterm zone="gtk-bitset-iter-get-value"><primary>gtk_bitset_iter_get_value</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
gtk_bitset_iter_get_value (<parameter>const <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>);</programlisting>
<para>Gets the current value that <parameter>iter</parameter>
 points to.</para>
<para>If <parameter>iter</parameter>
 is not valid and <link linkend="gtk-bitset-iter-is-valid"><function>gtk_bitset_iter_is_valid()</function></link> returns
<link linkend="FALSE:CAPS"><literal>FALSE</literal></link>, this function returns 0.</para>
<refsect3 id="gtk-bitset-iter-get-value.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>iter</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-get-value.returns" role="returns">
<title>Returns</title>
<para> The current value pointer to by <parameter>iter</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="gtk-bitset-iter-is-valid" role="function">
<title>gtk_bitset_iter_is_valid&#160;()</title>
<indexterm zone="gtk-bitset-iter-is-valid"><primary>gtk_bitset_iter_is_valid</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_bitset_iter_is_valid (<parameter>const <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link> *iter</parameter>);</programlisting>
<para>Checks if <parameter>iter</parameter>
 points to a valid value.</para>
<refsect3 id="gtk-bitset-iter-is-valid.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>iter</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkBitsetIter"><type>GtkBitsetIter</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-bitset-iter-is-valid.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>iter</parameter>
points to a valid value</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkBitset.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkBitset-struct" role="struct">
<title>GtkBitset</title>
<indexterm zone="GtkBitset-struct"><primary>GtkBitset</primary></indexterm>
<programlisting language="C">typedef struct _GtkBitset GtkBitset;</programlisting>
<para>The <literal>GtkBitset</literal> structure contains only private data.</para>
</refsect2>
<refsect2 id="GtkBitsetIter" role="struct">
<title>struct GtkBitsetIter</title>
<indexterm zone="GtkBitsetIter"><primary>GtkBitsetIter</primary></indexterm>
<programlisting language="C">struct GtkBitsetIter {
};
</programlisting>
<para>An opaque, stack-allocated struct for iterating
over the elements of a <link linkend="GtkBitset"><type>GtkBitset</type></link>. Before a GtkBitsetIter
can be used, it needs to be initialized with
<link linkend="gtk-bitset-iter-init-first"><function>gtk_bitset_iter_init_first()</function></link>, <link linkend="gtk-bitset-iter-init-last"><function>gtk_bitset_iter_init_last()</function></link>
or <link linkend="gtk-bitset-iter-init-at"><function>gtk_bitset_iter_init_at()</function></link>.</para>
</refsect2>

</refsect1>
<refsect1 id="GtkBitset.see-also">
<title>See Also</title>
<para><link linkend="GtkSelectionModel"><type>GtkSelectionModel</type></link></para>

</refsect1>

</refentry>
