<?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="GtkCellAreaContext">
<refmeta>
<refentrytitle role="top_of_page" id="GtkCellAreaContext.top_of_page">GtkCellAreaContext</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkCellAreaContext</refname>
<refpurpose>Stores geometrical information for a series of rows in a GtkCellArea</refpurpose>
</refnamediv>

<refsect1 id="GtkCellAreaContext.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="GtkCellArea"><returnvalue>GtkCellArea</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-cell-area-context-get-area">gtk_cell_area_context_get_area</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-cell-area-context-allocate">gtk_cell_area_context_allocate</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-cell-area-context-reset">gtk_cell_area_context_reset</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-cell-area-context-get-preferred-width">gtk_cell_area_context_get_preferred_width</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-cell-area-context-get-preferred-height">gtk_cell_area_context_get_preferred_height</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-cell-area-context-get-preferred-height-for-width">gtk_cell_area_context_get_preferred_height_for_width</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-cell-area-context-get-preferred-width-for-height">gtk_cell_area_context_get_preferred_width_for_height</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-cell-area-context-get-allocation">gtk_cell_area_context_get_allocation</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-cell-area-context-push-preferred-width">gtk_cell_area_context_push_preferred_width</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-cell-area-context-push-preferred-height">gtk_cell_area_context_push_preferred_height</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkCellAreaContext.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="GtkCellArea"><type>GtkCellArea</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkCellAreaContext--area">area</link></entry><entry role="property_flags">Read / Write / Construct&#160;Only</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkCellAreaContext--minimum-height">minimum-height</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkCellAreaContext--minimum-width">minimum-width</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkCellAreaContext--natural-height">natural-height</link></entry><entry role="property_flags">Read</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkCellAreaContext--natural-width">natural-width</link></entry><entry role="property_flags">Read</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkCellAreaContext.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">struct</entry><entry role="function_name"><link linkend="GtkCellAreaContextClass">GtkCellAreaContextClass</link></entry></row>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GtkCellAreaContext-struct">GtkCellAreaContext</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkCellAreaContext.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> GtkCellAreaContext
</screen>
</refsect1>

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

<refsect1 id="GtkCellAreaContext.description" role="desc">
<title role="desc.title">Description</title>
<para>The <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> object is created by a given <link linkend="GtkCellArea"><type>GtkCellArea</type></link>
implementation via its <link linkend="GtkCellAreaClass.create-context"><function>GtkCellAreaClass.create_context()</function></link> virtual
method and is used to store cell sizes and alignments for a series of
<link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows that are requested and rendered in the same context.</para>
<para><link linkend="GtkCellLayout"><type>GtkCellLayout</type></link> widgets can create any number of contexts in which to
request and render groups of data rows. However, it’s important that the
same context which was used to request sizes for a given <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link>
row also be used for the same row when calling other <link linkend="GtkCellArea"><type>GtkCellArea</type></link> APIs
such as <link linkend="gtk-cell-area-render"><function>gtk_cell_area_render()</function></link> and <link linkend="gtk-cell-area-event"><function>gtk_cell_area_event()</function></link>.</para>

</refsect1>
<refsect1 id="GtkCellAreaContext.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-cell-area-context-get-area" role="function">
<title>gtk_cell_area_context_get_area&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-area"><primary>gtk_cell_area_context_get_area</primary></indexterm>
<programlisting language="C"><link linkend="GtkCellArea"><returnvalue>GtkCellArea</returnvalue></link>&#160;*
gtk_cell_area_context_get_area (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>);</programlisting>
<para>Fetches the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> this <parameter>context</parameter>
 was created by.</para>
<para>This is generally unneeded by layouting widgets; however,
it is important for the context implementation itself to
fetch information about the area it is being used for.</para>
<para>For instance at <link linkend="GtkCellAreaContextClass.allocate"><function>GtkCellAreaContextClass.allocate()</function></link> time
it’s important to know details about any cell spacing
that the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> is configured with in order to
compute a proper allocation.</para>
<refsect3 id="gtk-cell-area-context-get-area.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-cell-area-context-get-area.returns" role="returns">
<title>Returns</title>
<para>the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> this context was created by. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-allocate" role="function">
<title>gtk_cell_area_context_allocate&#160;()</title>
<indexterm zone="gtk-cell-area-context-allocate"><primary>gtk_cell_area_context_allocate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_allocate (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> width</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> height</parameter>);</programlisting>
<para>Allocates a width and/or a height for all rows which are to be
rendered with <parameter>context</parameter>
.</para>
<para>Usually allocation is performed only horizontally or sometimes
vertically since a group of rows are usually rendered side by
side vertically or horizontally and share either the same width
or the same height. Sometimes they are allocated in both horizontal
and vertical orientations producing a homogeneous effect of the
rows. This is generally the case for <link linkend="GtkTreeView"><type>GtkTreeView</type></link> when
<link linkend="GtkTreeView--fixed-height-mode"><type>“fixed-height-mode”</type></link> is enabled.</para>
<refsect3 id="gtk-cell-area-context-allocate.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>the allocated width for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows rendered
with <parameter>context</parameter>
, or -1.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>the allocated height for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows rendered
with <parameter>context</parameter>
, or -1.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-reset" role="function">
<title>gtk_cell_area_context_reset&#160;()</title>
<indexterm zone="gtk-cell-area-context-reset"><primary>gtk_cell_area_context_reset</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_reset (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>);</programlisting>
<para>Resets any previously cached request and allocation
data.</para>
<para>When underlying <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> data changes its
important to reset the context if the content
size is allowed to shrink. If the content size
is only allowed to grow (this is usually an option
for views rendering large data stores as a measure
of optimization), then only the row that changed
or was inserted needs to be (re)requested with
<link linkend="gtk-cell-area-get-preferred-width"><function>gtk_cell_area_get_preferred_width()</function></link>.</para>
<para>When the new overall size of the context requires
that the allocated size changes (or whenever this
allocation changes at all), the variable row
sizes need to be re-requested for every row.</para>
<para>For instance, if the rows are displayed all with
the same width from top to bottom then a change
in the allocated width necessitates a recalculation
of all the displayed row heights using
<link linkend="gtk-cell-area-get-preferred-height-for-width"><function>gtk_cell_area_get_preferred_height_for_width()</function></link>.</para>
<refsect3 id="gtk-cell-area-context-reset.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-get-preferred-width" role="function">
<title>gtk_cell_area_context_get_preferred_width&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-preferred-width"><primary>gtk_cell_area_context_get_preferred_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_get_preferred_width
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *minimum_width</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *natural_width</parameter>);</programlisting>
<para>Gets the accumulative preferred width for all rows which have been
requested with this context.</para>
<para>After <link linkend="gtk-cell-area-context-reset"><function>gtk_cell_area_context_reset()</function></link> is called and/or before ever
requesting the size of a <link linkend="GtkCellArea"><type>GtkCellArea</type></link>, the returned values are 0.</para>
<refsect3 id="gtk-cell-area-context-get-preferred-width.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_width</para></entry>
<entry role="parameter_description"><para>location to store the minimum width,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>natural_width</para></entry>
<entry role="parameter_description"><para>location to store the natural width,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-get-preferred-height" role="function">
<title>gtk_cell_area_context_get_preferred_height&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-preferred-height"><primary>gtk_cell_area_context_get_preferred_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_get_preferred_height
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *minimum_height</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *natural_height</parameter>);</programlisting>
<para>Gets the accumulative preferred height for all rows which have been
requested with this context.</para>
<para>After <link linkend="gtk-cell-area-context-reset"><function>gtk_cell_area_context_reset()</function></link> is called and/or before ever
requesting the size of a <link linkend="GtkCellArea"><type>GtkCellArea</type></link>, the returned values are 0.</para>
<refsect3 id="gtk-cell-area-context-get-preferred-height.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_height</para></entry>
<entry role="parameter_description"><para>location to store the minimum height,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>natural_height</para></entry>
<entry role="parameter_description"><para>location to store the natural height,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-get-preferred-height-for-width" role="function">
<title>gtk_cell_area_context_get_preferred_height_for_width&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-preferred-height-for-width"><primary>gtk_cell_area_context_get_preferred_height_for_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_get_preferred_height_for_width
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> width</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *minimum_height</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *natural_height</parameter>);</programlisting>
<para>Gets the accumulative preferred height for <parameter>width</parameter>
 for all rows
which have been requested for the same said <parameter>width</parameter>
 with this context.</para>
<para>After <link linkend="gtk-cell-area-context-reset"><function>gtk_cell_area_context_reset()</function></link> is called and/or before ever
requesting the size of a <link linkend="GtkCellArea"><type>GtkCellArea</type></link>, the returned values are -1.</para>
<refsect3 id="gtk-cell-area-context-get-preferred-height-for-width.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>a proposed width for allocation</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_height</para></entry>
<entry role="parameter_description"><para>location to store the minimum height,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>natural_height</para></entry>
<entry role="parameter_description"><para>location to store the natural height,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-get-preferred-width-for-height" role="function">
<title>gtk_cell_area_context_get_preferred_width_for_height&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-preferred-width-for-height"><primary>gtk_cell_area_context_get_preferred_width_for_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_get_preferred_width_for_height
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> height</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *minimum_width</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> *natural_width</parameter>);</programlisting>
<para>Gets the accumulative preferred width for <parameter>height</parameter>
 for all rows which
have been requested for the same said <parameter>height</parameter>
 with this context.</para>
<para>After <link linkend="gtk-cell-area-context-reset"><function>gtk_cell_area_context_reset()</function></link> is called and/or before ever
requesting the size of a <link linkend="GtkCellArea"><type>GtkCellArea</type></link>, the returned values are -1.</para>
<refsect3 id="gtk-cell-area-context-get-preferred-width-for-height.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>a proposed height for allocation</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_width</para></entry>
<entry role="parameter_description"><para>location to store the minimum width,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>natural_width</para></entry>
<entry role="parameter_description"><para>location to store the natural width,
or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-get-allocation" role="function">
<title>gtk_cell_area_context_get_allocation&#160;()</title>
<indexterm zone="gtk-cell-area-context-get-allocation"><primary>gtk_cell_area_context_get_allocation</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_get_allocation (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                      <parameter><link linkend="gint"><type>gint</type></link> *width</parameter>,
                                      <parameter><link linkend="gint"><type>gint</type></link> *height</parameter>);</programlisting>
<para>Fetches the current allocation size for <parameter>context</parameter>
.</para>
<para>If the context was not allocated in width or height, or if the
context was recently reset with <link linkend="gtk-cell-area-context-reset"><function>gtk_cell_area_context_reset()</function></link>,
the returned value will be -1.</para>
<refsect3 id="gtk-cell-area-context-get-allocation.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>location to store the allocated width, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>location to store the allocated height, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-push-preferred-width" role="function">
<title>gtk_cell_area_context_push_preferred_width&#160;()</title>
<indexterm zone="gtk-cell-area-context-push-preferred-width"><primary>gtk_cell_area_context_push_preferred_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_push_preferred_width
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> minimum_width</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> natural_width</parameter>);</programlisting>
<para>Causes the minimum and/or natural width to grow if the new
proposed sizes exceed the current minimum and natural width.</para>
<para>This is used by <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> implementations during
the request process over a series of <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows to
progressively push the requested width over a series of
<link linkend="gtk-cell-area-get-preferred-width"><function>gtk_cell_area_get_preferred_width()</function></link> requests.</para>
<refsect3 id="gtk-cell-area-context-push-preferred-width.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_width</para></entry>
<entry role="parameter_description"><para>the proposed new minimum width for <parameter>context</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>natural_width</para></entry>
<entry role="parameter_description"><para>the proposed new natural width for <parameter>context</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-cell-area-context-push-preferred-height" role="function">
<title>gtk_cell_area_context_push_preferred_height&#160;()</title>
<indexterm zone="gtk-cell-area-context-push-preferred-height"><primary>gtk_cell_area_context_push_preferred_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_cell_area_context_push_preferred_height
                               (<parameter><link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> *context</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> minimum_height</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> natural_height</parameter>);</programlisting>
<para>Causes the minimum and/or natural height to grow if the new
proposed sizes exceed the current minimum and natural height.</para>
<para>This is used by <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link> implementations during
the request process over a series of <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows to
progressively push the requested height over a series of
<link linkend="gtk-cell-area-get-preferred-height"><function>gtk_cell_area_get_preferred_height()</function></link> requests.</para>
<refsect3 id="gtk-cell-area-context-push-preferred-height.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>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkCellAreaContext"><type>GtkCellAreaContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>minimum_height</para></entry>
<entry role="parameter_description"><para>the proposed new minimum height for <parameter>context</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>natural_height</para></entry>
<entry role="parameter_description"><para>the proposed new natural height for <parameter>context</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkCellAreaContext.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkCellAreaContextClass" role="struct">
<title>struct GtkCellAreaContextClass</title>
<indexterm zone="GtkCellAreaContextClass"><primary>GtkCellAreaContextClass</primary></indexterm>
<programlisting language="C">struct GtkCellAreaContextClass {
  void    (* allocate)                       (GtkCellAreaContext *context,
                                              gint                width,
                                              gint                height);
  void    (* reset)                          (GtkCellAreaContext *context);
  void    (* get_preferred_height_for_width) (GtkCellAreaContext *context,
                                              gint                width,
                                              gint               *minimum_height,
                                              gint               *natural_height);
  void    (* get_preferred_width_for_height) (GtkCellAreaContext *context,
                                              gint                height,
                                              gint               *minimum_width,
                                              gint               *natural_width);
};
</programlisting>
<refsect3 id="GtkCellAreaContextClass.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="GtkCellAreaContextClass.allocate">allocate</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>This tells the context that an allocation width or height
(or both) have been decided for a group of rows. The context should
store any allocations for internally aligned cells at this point so
that they dont need to be recalculated at <link linkend="gtk-cell-area-render"><function>gtk_cell_area_render()</function></link> time.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="GtkCellAreaContextClass.reset">reset</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Clear any previously stored information about requested and
allocated sizes for the context.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="GtkCellAreaContextClass.get-preferred-height-for-width">get_preferred_height_for_width</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Returns the aligned height for the given
width that context must store while collecting sizes for it’s rows.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="GtkCellAreaContextClass.get-preferred-width-for-height">get_preferred_width_for_height</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>Returns the aligned width for the given
height that context must store while collecting sizes for it’s rows.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="GtkCellAreaContext-struct" role="struct">
<title>GtkCellAreaContext</title>
<indexterm zone="GtkCellAreaContext-struct"><primary>GtkCellAreaContext</primary></indexterm>
<programlisting language="C">typedef struct _GtkCellAreaContext GtkCellAreaContext;</programlisting>
</refsect2>

</refsect1>
<refsect1 id="GtkCellAreaContext.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GtkCellAreaContext--area" role="property"><title>The <literal>“area”</literal> property</title>
<indexterm zone="GtkCellAreaContext--area"><primary>GtkCellAreaContext:area</primary></indexterm>
<programlisting>  “area”                     <link linkend="GtkCellArea"><type>GtkCellArea</type></link>&#160;*</programlisting>
<para>The <link linkend="GtkCellArea"><type>GtkCellArea</type></link> this context was created by</para>
<para>Owner: GtkCellAreaContext</para>
<para>Flags: Read / Write / Construct&#160;Only</para>
</refsect2>
<refsect2 id="GtkCellAreaContext--minimum-height" role="property"><title>The <literal>“minimum-height”</literal> property</title>
<indexterm zone="GtkCellAreaContext--minimum-height"><primary>GtkCellAreaContext:minimum-height</primary></indexterm>
<programlisting>  “minimum-height”           <link linkend="gint"><type>gint</type></link></programlisting>
<para>The minimum height for the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> in this context
for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows that this context was requested
for using <link linkend="gtk-cell-area-get-preferred-height"><function>gtk_cell_area_get_preferred_height()</function></link>.</para>
<para>Owner: GtkCellAreaContext</para>
<para>Flags: Read</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkCellAreaContext--minimum-width" role="property"><title>The <literal>“minimum-width”</literal> property</title>
<indexterm zone="GtkCellAreaContext--minimum-width"><primary>GtkCellAreaContext:minimum-width</primary></indexterm>
<programlisting>  “minimum-width”            <link linkend="gint"><type>gint</type></link></programlisting>
<para>The minimum width for the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> in this context
for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows that this context was requested
for using <link linkend="gtk-cell-area-get-preferred-width"><function>gtk_cell_area_get_preferred_width()</function></link>.</para>
<para>Owner: GtkCellAreaContext</para>
<para>Flags: Read</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkCellAreaContext--natural-height" role="property"><title>The <literal>“natural-height”</literal> property</title>
<indexterm zone="GtkCellAreaContext--natural-height"><primary>GtkCellAreaContext:natural-height</primary></indexterm>
<programlisting>  “natural-height”           <link linkend="gint"><type>gint</type></link></programlisting>
<para>The natural height for the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> in this context
for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows that this context was requested
for using <link linkend="gtk-cell-area-get-preferred-height"><function>gtk_cell_area_get_preferred_height()</function></link>.</para>
<para>Owner: GtkCellAreaContext</para>
<para>Flags: Read</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkCellAreaContext--natural-width" role="property"><title>The <literal>“natural-width”</literal> property</title>
<indexterm zone="GtkCellAreaContext--natural-width"><primary>GtkCellAreaContext:natural-width</primary></indexterm>
<programlisting>  “natural-width”            <link linkend="gint"><type>gint</type></link></programlisting>
<para>The natural width for the <link linkend="GtkCellArea"><type>GtkCellArea</type></link> in this context
for all <link linkend="GtkTreeModel"><type>GtkTreeModel</type></link> rows that this context was requested
for using <link linkend="gtk-cell-area-get-preferred-width"><function>gtk_cell_area_get_preferred_width()</function></link>.</para>
<para>Owner: GtkCellAreaContext</para>
<para>Flags: Read</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>

</refsect1>

</refentry>
