<?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="GtkScrolledWindow">
<refmeta>
<refentrytitle role="top_of_page" id="GtkScrolledWindow.top_of_page">GtkScrolledWindow</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkScrolledWindow</refname>
<refpurpose>Adds scrollbars to its child widget</refpurpose>
</refnamediv>

<refsect1 id="GtkScrolledWindow.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="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-new">gtk_scrolled_window_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-child">gtk_scrolled_window_get_child</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-scrolled-window-set-child">gtk_scrolled_window_set_child</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-hadjustment">gtk_scrolled_window_get_hadjustment</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-scrolled-window-set-hadjustment">gtk_scrolled_window_set_hadjustment</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-vadjustment">gtk_scrolled_window_get_vadjustment</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-scrolled-window-set-vadjustment">gtk_scrolled_window_set_vadjustment</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-hscrollbar">gtk_scrolled_window_get_hscrollbar</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-vscrollbar">gtk_scrolled_window_get_vscrollbar</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-scrolled-window-get-policy">gtk_scrolled_window_get_policy</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-scrolled-window-set-policy">gtk_scrolled_window_set_policy</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GtkCornerType"><returnvalue>GtkCornerType</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-placement">gtk_scrolled_window_get_placement</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-scrolled-window-set-placement">gtk_scrolled_window_set_placement</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-scrolled-window-unset-placement">gtk_scrolled_window_unset_placement</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-scrolled-window-get-has-frame">gtk_scrolled_window_get_has_frame</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-scrolled-window-set-has-frame">gtk_scrolled_window_set_has_frame</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-scrolled-window-get-kinetic-scrolling">gtk_scrolled_window_get_kinetic_scrolling</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-scrolled-window-set-kinetic-scrolling">gtk_scrolled_window_set_kinetic_scrolling</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-scrolled-window-get-capture-button-press">gtk_scrolled_window_get_capture_button_press</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-scrolled-window-set-capture-button-press">gtk_scrolled_window_set_capture_button_press</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-scrolled-window-get-overlay-scrolling">gtk_scrolled_window_get_overlay_scrolling</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-scrolled-window-set-overlay-scrolling">gtk_scrolled_window_set_overlay_scrolling</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-min-content-width">gtk_scrolled_window_get_min_content_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-scrolled-window-set-min-content-width">gtk_scrolled_window_set_min_content_width</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-min-content-height">gtk_scrolled_window_get_min_content_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-scrolled-window-set-min-content-height">gtk_scrolled_window_set_min_content_height</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-max-content-width">gtk_scrolled_window_get_max_content_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-scrolled-window-set-max-content-width">gtk_scrolled_window_set_max_content_width</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-scrolled-window-get-max-content-height">gtk_scrolled_window_get_max_content_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-scrolled-window-set-max-content-height">gtk_scrolled_window_set_max_content_height</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-scrolled-window-get-propagate-natural-width">gtk_scrolled_window_get_propagate_natural_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-scrolled-window-set-propagate-natural-width">gtk_scrolled_window_set_propagate_natural_width</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-scrolled-window-get-propagate-natural-height">gtk_scrolled_window_get_propagate_natural_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-scrolled-window-set-propagate-natural-height">gtk_scrolled_window_set_propagate_natural_height</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkScrolledWindow.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="GtkWidget"><type>GtkWidget</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkScrolledWindow--child">child</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkScrolledWindow--hadjustment">hadjustment</link></entry><entry role="property_flags">Read / Write / Construct</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--has-frame">has-frame</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--hscrollbar-policy">hscrollbar-policy</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--kinetic-scrolling">kinetic-scrolling</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--max-content-height">max-content-height</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--max-content-width">max-content-width</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--min-content-height">min-content-height</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gint"><type>gint</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--min-content-width">min-content-width</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--overlay-scrolling">overlay-scrolling</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--propagate-natural-height">propagate-natural-height</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="gboolean"><type>gboolean</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--propagate-natural-width">propagate-natural-width</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>&#160;*</entry><entry role="property_name"><link linkend="GtkScrolledWindow--vadjustment">vadjustment</link></entry><entry role="property_flags">Read / Write / Construct</entry></row>
<row><entry role="property_type"><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--vscrollbar-policy">vscrollbar-policy</link></entry><entry role="property_flags">Read / Write</entry></row>
<row><entry role="property_type"><link linkend="GtkCornerType"><type>GtkCornerType</type></link></entry><entry role="property_name"><link linkend="GtkScrolledWindow--window-placement">window-placement</link></entry><entry role="property_flags">Read / Write</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkScrolledWindow.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkScrolledWindow-edge-overshot">edge-overshot</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkScrolledWindow-edge-reached">edge-reached</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkScrolledWindow-move-focus-out">move-focus-out</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>
<row><entry role="signal_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkScrolledWindow-scroll-child">scroll-child</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-ACTION:CAPS">Action</link></entry></row>

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

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

</refsect1>

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

<refsect1 id="GtkScrolledWindow.description" role="desc">
<title role="desc.title">Description</title>
<para>GtkScrolledWindow is a container that accepts a single child widget, makes
that child scrollable using either internally added scrollbars or externally
associated adjustments, and optionally draws a frame around the child.</para>
<para>Widgets with native scrolling support, i.e. those whose classes implement the
<link linkend="GtkScrollable"><type>GtkScrollable</type></link> interface, are added directly. For other types of widget, the
class <link linkend="GtkViewport"><type>GtkViewport</type></link> acts as an adaptor, giving scrollability to other widgets.
GtkScrolledWindow’s implementation of <link linkend="gtk-container-add"><function>gtk_container_add()</function></link> intelligently
accounts for whether or not the added child is a <link linkend="GtkScrollable"><type>GtkScrollable</type></link>. If it isn’t,
<link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> wraps the child in a <link linkend="GtkViewport"><type>GtkViewport</type></link> and adds that for you.
Therefore, you can just add any child widget and not worry about the details.</para>
<para>If <link linkend="gtk-container-add"><function>gtk_container_add()</function></link> has added a <link linkend="GtkViewport"><type>GtkViewport</type></link> for you, you can remove
both your added child widget from the <link linkend="GtkViewport"><type>GtkViewport</type></link>, and the <link linkend="GtkViewport"><type>GtkViewport</type></link>
from the GtkScrolledWindow, like this:</para>
<informalexample><programlisting role="example"><![CDATA[
GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
GtkWidget *child_widget = gtk_button_new ();

// GtkButton is not a GtkScrollable, so GtkScrolledWindow will automatically
// add a GtkViewport.
gtk_box_append (GTK_BOX (scrolled_window),
                   child_widget);

// Either of these will result in child_widget being unparented:
gtk_box_remove (GTK_BOX (scrolled_window),
                      child_widget);
// or
gtk_box_remove (GTK_BOX (scrolled_window),
                      gtk_bin_get_child (GTK_BIN (scrolled_window)));
]]></programlisting></informalexample>
<para></para>
<para>Unless <link linkend="GtkScrolledWindow--hscrollbar-policy"><type>“hscrollbar-policy”</type></link> and <link linkend="GtkScrolledWindow--vscrollbar-policy"><type>“vscrollbar-policy”</type></link>
are GTK_POLICY_NEVER or GTK_POLICY_EXTERNAL,
GtkScrolledWindow adds internal <link linkend="GtkScrollbar"><type>GtkScrollbar</type></link> widgets around its child. The
scroll position of the child, and if applicable the scrollbars, is controlled
by the <link linkend="GtkScrolledWindow--hadjustment"><type>“hadjustment”</type></link> and <link linkend="GtkScrolledWindow--vadjustment"><type>“vadjustment”</type></link>
that are associated with the GtkScrolledWindow. See the docs on <link linkend="GtkScrollbar"><type>GtkScrollbar</type></link>
for the details, but note that the “step_increment” and “page_increment”
fields are only effective if the policy causes scrollbars to be present.</para>
<para>If a GtkScrolledWindow doesn’t behave quite as you would like, or
doesn’t have exactly the right layout, it’s very possible to set up
your own scrolling with <link linkend="GtkScrollbar"><type>GtkScrollbar</type></link> and for example a <link linkend="GtkGrid"><type>GtkGrid</type></link>.</para>
<refsect2><title>Touch support</title><para>GtkScrolledWindow has built-in support for touch devices. When a
touchscreen is used, swiping will move the scrolled window, and will
expose 'kinetic' behavior. This can be turned off with the
<link linkend="GtkScrolledWindow--kinetic-scrolling"><type>“kinetic-scrolling”</type></link> property if it is undesired.</para>
<para>GtkScrolledWindow also displays visual 'overshoot' indication when
the content is pulled beyond the end, and this situation can be
captured with the <link linkend="GtkScrolledWindow-edge-overshot"><type>“edge-overshot”</type></link> signal.</para>
<para>If no mouse device is present, the scrollbars will overlayed as
narrow, auto-hiding indicators over the content. If traditional
scrollbars are desired although no mouse is present, this behaviour
can be turned off with the <link linkend="GtkScrolledWindow--overlay-scrolling"><type>“overlay-scrolling”</type></link>
property.</para>
</refsect2>
<refsect2><title>CSS nodes</title><para>GtkScrolledWindow has a main CSS node with name scrolledwindow.
It gets a .frame style class added when <link linkend="GtkScrolledWindow--has-frame"><type>“has-frame”</type></link>
is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>.</para>
<para>It uses subnodes with names overshoot and undershoot to
draw the overflow and underflow indications. These nodes get
the .left, .right, .top or .bottom style class added depending
on where the indication is drawn.</para>
<para>GtkScrolledWindow also sets the positional style classes (.left,
.right, .top, .bottom) and style classes related to overlay
scrolling (.overlay-indicator, .dragging, .hovering) on its scrollbars.</para>
<para>If both scrollbars are visible, the area where they meet is drawn
with a subnode named junction.</para>
</refsect2>

</refsect1>
<refsect1 id="GtkScrolledWindow.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-scrolled-window-new" role="function">
<title>gtk_scrolled_window_new&#160;()</title>
<indexterm zone="gtk-scrolled-window-new"><primary>gtk_scrolled_window_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_scrolled_window_new (<parameter><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> *hadjustment</parameter>,
                         <parameter><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> *vadjustment</parameter>);</programlisting>
<para>Creates a new scrolled window.</para>
<para>The two arguments are the scrolled window’s adjustments; these will be
shared with the scrollbars and the child widget to keep the bars in sync
with the child. Usually you want to pass <link linkend="NULL:CAPS"><literal>NULL</literal></link> for the adjustments, which
will cause the scrolled window to create them for you.</para>
<refsect3 id="gtk-scrolled-window-new.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>hadjustment</para></entry>
<entry role="parameter_description"><para>horizontal adjustment. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>vadjustment</para></entry>
<entry role="parameter_description"><para>vertical adjustment. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-new.returns" role="returns">
<title>Returns</title>
<para> a new scrolled window</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-child" role="function">
<title>gtk_scrolled_window_get_child&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-child"><primary>gtk_scrolled_window_get_child</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_scrolled_window_get_child (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Gets the child widget of <parameter>scrolled_window</parameter>
.</para>
<refsect3 id="gtk-scrolled-window-get-child.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-child.returns" role="returns">
<title>Returns</title>
<para>the child widget of <parameter>scrolled_window</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-child" role="function">
<title>gtk_scrolled_window_set_child&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-child"><primary>gtk_scrolled_window_set_child</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_child (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                               <parameter><link linkend="GtkWidget"><type>GtkWidget</type></link> *child</parameter>);</programlisting>
<para>Sets the child widget of <parameter>scrolled_window</parameter>
.</para>
<refsect3 id="gtk-scrolled-window-set-child.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>child</para></entry>
<entry role="parameter_description"><para>the child widget. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-hadjustment" role="function">
<title>gtk_scrolled_window_get_hadjustment&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-hadjustment"><primary>gtk_scrolled_window_get_hadjustment</primary></indexterm>
<programlisting language="C"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
gtk_scrolled_window_get_hadjustment (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the horizontal scrollbar’s adjustment, used to connect the
horizontal scrollbar to the child widget’s horizontal scroll
functionality.</para>
<refsect3 id="gtk-scrolled-window-get-hadjustment.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-hadjustment.returns" role="returns">
<title>Returns</title>
<para>the horizontal <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-hadjustment" role="function">
<title>gtk_scrolled_window_set_hadjustment&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-hadjustment"><primary>gtk_scrolled_window_set_hadjustment</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_hadjustment (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                     <parameter><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> *hadjustment</parameter>);</programlisting>
<para>Sets the <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> for the horizontal scrollbar.</para>
<refsect3 id="gtk-scrolled-window-set-hadjustment.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hadjustment</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> to use, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to create a new one. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-vadjustment" role="function">
<title>gtk_scrolled_window_get_vadjustment&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-vadjustment"><primary>gtk_scrolled_window_get_vadjustment</primary></indexterm>
<programlisting language="C"><link linkend="GtkAdjustment"><returnvalue>GtkAdjustment</returnvalue></link>&#160;*
gtk_scrolled_window_get_vadjustment (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the vertical scrollbar’s adjustment, used to connect the
vertical scrollbar to the child widget’s vertical scroll functionality.</para>
<refsect3 id="gtk-scrolled-window-get-vadjustment.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-vadjustment.returns" role="returns">
<title>Returns</title>
<para>the vertical <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-vadjustment" role="function">
<title>gtk_scrolled_window_set_vadjustment&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-vadjustment"><primary>gtk_scrolled_window_set_vadjustment</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_vadjustment (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                     <parameter><link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> *vadjustment</parameter>);</programlisting>
<para>Sets the <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> for the vertical scrollbar.</para>
<refsect3 id="gtk-scrolled-window-set-vadjustment.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>vadjustment</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link> to use, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to create a new one. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-hscrollbar" role="function">
<title>gtk_scrolled_window_get_hscrollbar&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-hscrollbar"><primary>gtk_scrolled_window_get_hscrollbar</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_scrolled_window_get_hscrollbar (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the horizontal scrollbar of <parameter>scrolled_window</parameter>
.</para>
<refsect3 id="gtk-scrolled-window-get-hscrollbar.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-hscrollbar.returns" role="returns">
<title>Returns</title>
<para>the horizontal scrollbar of the scrolled window. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-vscrollbar" role="function">
<title>gtk_scrolled_window_get_vscrollbar&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-vscrollbar"><primary>gtk_scrolled_window_get_vscrollbar</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_scrolled_window_get_vscrollbar (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the vertical scrollbar of <parameter>scrolled_window</parameter>
.</para>
<refsect3 id="gtk-scrolled-window-get-vscrollbar.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-vscrollbar.returns" role="returns">
<title>Returns</title>
<para>the vertical scrollbar of the scrolled window. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-policy" role="function">
<title>gtk_scrolled_window_get_policy&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-policy"><primary>gtk_scrolled_window_get_policy</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_get_policy (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link> *hscrollbar_policy</parameter>,
                                <parameter><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link> *vscrollbar_policy</parameter>);</programlisting>
<para>Retrieves the current policy values for the horizontal and vertical
scrollbars. See <link linkend="gtk-scrolled-window-set-policy"><function>gtk_scrolled_window_set_policy()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-get-policy.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hscrollbar_policy</para></entry>
<entry role="parameter_description"><para>location to store the policy
for the horizontal scrollbar, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>vscrollbar_policy</para></entry>
<entry role="parameter_description"><para>location to store the policy
for the vertical scrollbar, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-policy" role="function">
<title>gtk_scrolled_window_set_policy&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-policy"><primary>gtk_scrolled_window_set_policy</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_policy (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link> hscrollbar_policy</parameter>,
                                <parameter><link linkend="GtkPolicyType"><type>GtkPolicyType</type></link> vscrollbar_policy</parameter>);</programlisting>
<para>Sets the scrollbar policy for the horizontal and vertical scrollbars.</para>
<para>The policy determines when the scrollbar should appear; it is a value
from the <link linkend="GtkPolicyType"><type>GtkPolicyType</type></link> enumeration. If <link linkend="GTK-POLICY-ALWAYS:CAPS"><literal>GTK_POLICY_ALWAYS</literal></link>, the
scrollbar is always present; if <link linkend="GTK-POLICY-NEVER:CAPS"><literal>GTK_POLICY_NEVER</literal></link>, the scrollbar is
never present; if <link linkend="GTK-POLICY-AUTOMATIC:CAPS"><literal>GTK_POLICY_AUTOMATIC</literal></link>, the scrollbar is present only
if needed (that is, if the slider part of the bar would be smaller
than the trough — the display is larger than the page size).</para>
<refsect3 id="gtk-scrolled-window-set-policy.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>hscrollbar_policy</para></entry>
<entry role="parameter_description"><para>policy for horizontal bar</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>vscrollbar_policy</para></entry>
<entry role="parameter_description"><para>policy for vertical bar</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-placement" role="function">
<title>gtk_scrolled_window_get_placement&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-placement"><primary>gtk_scrolled_window_get_placement</primary></indexterm>
<programlisting language="C"><link linkend="GtkCornerType"><returnvalue>GtkCornerType</returnvalue></link>
gtk_scrolled_window_get_placement (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Gets the placement of the contents with respect to the scrollbars
for the scrolled window. See <link linkend="gtk-scrolled-window-set-placement"><function>gtk_scrolled_window_set_placement()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-get-placement.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-placement.returns" role="returns">
<title>Returns</title>
<para> the current placement value.</para>
<para>See also <link linkend="gtk-scrolled-window-set-placement"><function>gtk_scrolled_window_set_placement()</function></link> and
<link linkend="gtk-scrolled-window-unset-placement"><function>gtk_scrolled_window_unset_placement()</function></link>.</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-placement" role="function">
<title>gtk_scrolled_window_set_placement&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-placement"><primary>gtk_scrolled_window_set_placement</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_placement (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                   <parameter><link linkend="GtkCornerType"><type>GtkCornerType</type></link> window_placement</parameter>);</programlisting>
<para>Sets the placement of the contents with respect to the scrollbars
for the scrolled window.</para>
<para>The default is <link linkend="GTK-CORNER-TOP-LEFT:CAPS"><literal>GTK_CORNER_TOP_LEFT</literal></link>, meaning the child is
in the top left, with the scrollbars underneath and to the right.
Other values in <link linkend="GtkCornerType"><type>GtkCornerType</type></link> are <link linkend="GTK-CORNER-TOP-RIGHT:CAPS"><literal>GTK_CORNER_TOP_RIGHT</literal></link>,
<link linkend="GTK-CORNER-BOTTOM-LEFT:CAPS"><literal>GTK_CORNER_BOTTOM_LEFT</literal></link>, and <link linkend="GTK-CORNER-BOTTOM-RIGHT:CAPS"><literal>GTK_CORNER_BOTTOM_RIGHT</literal></link>.</para>
<para>See also <link linkend="gtk-scrolled-window-get-placement"><function>gtk_scrolled_window_get_placement()</function></link> and
<link linkend="gtk-scrolled-window-unset-placement"><function>gtk_scrolled_window_unset_placement()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-set-placement.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>window_placement</para></entry>
<entry role="parameter_description"><para>position of the child window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-unset-placement" role="function">
<title>gtk_scrolled_window_unset_placement&#160;()</title>
<indexterm zone="gtk-scrolled-window-unset-placement"><primary>gtk_scrolled_window_unset_placement</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_unset_placement (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Unsets the placement of the contents with respect to the scrollbars
for the scrolled window. If no window placement is set for a scrolled
window, it defaults to <link linkend="GTK-CORNER-TOP-LEFT:CAPS"><literal>GTK_CORNER_TOP_LEFT</literal></link>.</para>
<para>See also <link linkend="gtk-scrolled-window-set-placement"><function>gtk_scrolled_window_set_placement()</function></link> and
<link linkend="gtk-scrolled-window-get-placement"><function>gtk_scrolled_window_get_placement()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-unset-placement.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-has-frame" role="function">
<title>gtk_scrolled_window_get_has_frame&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-has-frame"><primary>gtk_scrolled_window_get_has_frame</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_has_frame (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Gets whether the scrolled window draws a frame.
See  <link linkend="gtk-scrolled-window-set-has-frame"><function>gtk_scrolled_window_set_has_frame()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-get-has-frame.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-has-frame.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the <parameter>scrolled_window</parameter>
has a frame</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-has-frame" role="function">
<title>gtk_scrolled_window_set_has_frame&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-has-frame"><primary>gtk_scrolled_window_set_has_frame</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_has_frame (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                   <parameter><link linkend="gboolean"><type>gboolean</type></link> has_frame</parameter>);</programlisting>
<para>Changes the frame drawn around the contents of <parameter>scrolled_window</parameter>
.</para>
<refsect3 id="gtk-scrolled-window-set-has-frame.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>has_frame</para></entry>
<entry role="parameter_description"><para>whether to draw a frame around scrolled window contents</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-kinetic-scrolling" role="function">
<title>gtk_scrolled_window_get_kinetic_scrolling&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-kinetic-scrolling"><primary>gtk_scrolled_window_get_kinetic_scrolling</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_kinetic_scrolling
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the specified kinetic scrolling behavior.</para>
<refsect3 id="gtk-scrolled-window-get-kinetic-scrolling.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-kinetic-scrolling.returns" role="returns">
<title>Returns</title>
<para> the scrolling behavior flags.</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-kinetic-scrolling" role="function">
<title>gtk_scrolled_window_set_kinetic_scrolling&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-kinetic-scrolling"><primary>gtk_scrolled_window_set_kinetic_scrolling</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_kinetic_scrolling
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> kinetic_scrolling</parameter>);</programlisting>
<para>Turns kinetic scrolling on or off.
Kinetic scrolling only applies to devices with source
<link linkend="GDK-SOURCE-TOUCHSCREEN:CAPS"><literal>GDK_SOURCE_TOUCHSCREEN</literal></link>.</para>
<refsect3 id="gtk-scrolled-window-set-kinetic-scrolling.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>kinetic_scrolling</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to enable kinetic scrolling</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-capture-button-press" role="function">
<title>gtk_scrolled_window_get_capture_button_press&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-capture-button-press"><primary>gtk_scrolled_window_get_capture_button_press</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_capture_button_press
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Return whether button presses are captured during kinetic
scrolling. See <link linkend="gtk-scrolled-window-set-capture-button-press"><function>gtk_scrolled_window_set_capture_button_press()</function></link>.</para>
<refsect3 id="gtk-scrolled-window-get-capture-button-press.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-capture-button-press.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if button presses are captured during kinetic scrolling</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-capture-button-press" role="function">
<title>gtk_scrolled_window_set_capture_button_press&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-capture-button-press"><primary>gtk_scrolled_window_set_capture_button_press</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_capture_button_press
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> capture_button_press</parameter>);</programlisting>
<para>Changes the behaviour of <parameter>scrolled_window</parameter>
 with regard to the initial
event that possibly starts kinetic scrolling. When <parameter>capture_button_press</parameter>

is set to <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, the event is captured by the scrolled window, and
then later replayed if it is meant to go to the child widget.</para>
<para>This should be enabled if any child widgets perform non-reversible
actions on button press events. If they don't, and additionally handle
<link linkend="GtkWidget-grab-broken-event"><type>“grab-broken-event”</type></link>, it might be better to set <parameter>capture_button_press</parameter>

to <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>.</para>
<para>This setting only has an effect if kinetic scrolling is enabled.</para>
<refsect3 id="gtk-scrolled-window-set-capture-button-press.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>capture_button_press</para></entry>
<entry role="parameter_description"><para><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to capture button presses</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-overlay-scrolling" role="function">
<title>gtk_scrolled_window_get_overlay_scrolling&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-overlay-scrolling"><primary>gtk_scrolled_window_get_overlay_scrolling</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_overlay_scrolling
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns whether overlay scrolling is enabled for this scrolled window.</para>
<refsect3 id="gtk-scrolled-window-get-overlay-scrolling.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-overlay-scrolling.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if overlay scrolling is enabled</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-overlay-scrolling" role="function">
<title>gtk_scrolled_window_set_overlay_scrolling&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-overlay-scrolling"><primary>gtk_scrolled_window_set_overlay_scrolling</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_overlay_scrolling
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> overlay_scrolling</parameter>);</programlisting>
<para>Enables or disables overlay scrolling for this scrolled window.</para>
<refsect3 id="gtk-scrolled-window-set-overlay-scrolling.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>overlay_scrolling</para></entry>
<entry role="parameter_description"><para>whether to enable overlay scrolling</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-min-content-width" role="function">
<title>gtk_scrolled_window_get_min_content_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-min-content-width"><primary>gtk_scrolled_window_get_min_content_width</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
gtk_scrolled_window_get_min_content_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Gets the minimum content width of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<refsect3 id="gtk-scrolled-window-get-min-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-min-content-width.returns" role="returns">
<title>Returns</title>
<para> the minimum content width</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-min-content-width" role="function">
<title>gtk_scrolled_window_set_min_content_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-min-content-width"><primary>gtk_scrolled_window_set_min_content_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_min_content_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> width</parameter>);</programlisting>
<para>Sets the minimum width that <parameter>scrolled_window</parameter>
 should keep visible.
Note that this can and (usually will) be smaller than the minimum
size of the content.</para>
<para>It is a programming error to set the minimum content width to a
value greater than <link linkend="GtkScrolledWindow--max-content-width"><type>“max-content-width”</type></link>.</para>
<refsect3 id="gtk-scrolled-window-set-min-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</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 minimal content width</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-min-content-height" role="function">
<title>gtk_scrolled_window_get_min_content_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-min-content-height"><primary>gtk_scrolled_window_get_min_content_height</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
gtk_scrolled_window_get_min_content_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Gets the minimal content height of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<refsect3 id="gtk-scrolled-window-get-min-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-min-content-height.returns" role="returns">
<title>Returns</title>
<para> the minimal content height</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-min-content-height" role="function">
<title>gtk_scrolled_window_set_min_content_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-min-content-height"><primary>gtk_scrolled_window_set_min_content_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_min_content_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> height</parameter>);</programlisting>
<para>Sets the minimum height that <parameter>scrolled_window</parameter>
 should keep visible.
Note that this can and (usually will) be smaller than the minimum
size of the content.</para>
<para>It is a programming error to set the minimum content height to a
value greater than <link linkend="GtkScrolledWindow--max-content-height"><type>“max-content-height”</type></link>.</para>
<refsect3 id="gtk-scrolled-window-set-min-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>the minimal content height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-max-content-width" role="function">
<title>gtk_scrolled_window_get_max_content_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-max-content-width"><primary>gtk_scrolled_window_get_max_content_width</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
gtk_scrolled_window_get_max_content_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the maximum content width set.</para>
<refsect3 id="gtk-scrolled-window-get-max-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-max-content-width.returns" role="returns">
<title>Returns</title>
<para> the maximum content width, or -1</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-max-content-width" role="function">
<title>gtk_scrolled_window_set_max_content_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-max-content-width"><primary>gtk_scrolled_window_set_max_content_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_max_content_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> width</parameter>);</programlisting>
<para>Sets the maximum width that <parameter>scrolled_window</parameter>
 should keep visible. The
<parameter>scrolled_window</parameter>
 will grow up to this width before it starts scrolling
the content.</para>
<para>It is a programming error to set the maximum content width to a value
smaller than <link linkend="GtkScrolledWindow--min-content-width"><type>“min-content-width”</type></link>.</para>
<refsect3 id="gtk-scrolled-window-set-max-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</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 maximum content width</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-max-content-height" role="function">
<title>gtk_scrolled_window_get_max_content_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-max-content-height"><primary>gtk_scrolled_window_get_max_content_height</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
gtk_scrolled_window_get_max_content_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Returns the maximum content height set.</para>
<refsect3 id="gtk-scrolled-window-get-max-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-max-content-height.returns" role="returns">
<title>Returns</title>
<para> the maximum content height, or -1</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-max-content-height" role="function">
<title>gtk_scrolled_window_set_max_content_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-max-content-height"><primary>gtk_scrolled_window_set_max_content_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_max_content_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gint"><type>gint</type></link> height</parameter>);</programlisting>
<para>Sets the maximum height that <parameter>scrolled_window</parameter>
 should keep visible. The
<parameter>scrolled_window</parameter>
 will grow up to this height before it starts scrolling
the content.</para>
<para>It is a programming error to set the maximum content height to a value
smaller than <link linkend="GtkScrolledWindow--min-content-height"><type>“min-content-height”</type></link>.</para>
<refsect3 id="gtk-scrolled-window-set-max-content-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>the maximum content height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-propagate-natural-width" role="function">
<title>gtk_scrolled_window_get_propagate_natural_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-propagate-natural-width"><primary>gtk_scrolled_window_get_propagate_natural_width</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_propagate_natural_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Reports whether the natural width of the child will be calculated and propagated
through the scrolled window’s requested natural width.</para>
<refsect3 id="gtk-scrolled-window-get-propagate-natural-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-propagate-natural-width.returns" role="returns">
<title>Returns</title>
<para> whether natural width propagation is enabled.</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-propagate-natural-width" role="function">
<title>gtk_scrolled_window_set_propagate_natural_width&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-propagate-natural-width"><primary>gtk_scrolled_window_set_propagate_natural_width</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_propagate_natural_width
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> propagate</parameter>);</programlisting>
<para>Sets whether the natural width of the child should be calculated and propagated
through the scrolled window’s requested natural width.</para>
<refsect3 id="gtk-scrolled-window-set-propagate-natural-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>propagate</para></entry>
<entry role="parameter_description"><para>whether to propagate natural width</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-get-propagate-natural-height" role="function">
<title>gtk_scrolled_window_get_propagate_natural_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-get-propagate-natural-height"><primary>gtk_scrolled_window_get_propagate_natural_height</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
gtk_scrolled_window_get_propagate_natural_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>);</programlisting>
<para>Reports whether the natural height of the child will be calculated and propagated
through the scrolled window’s requested natural height.</para>
<refsect3 id="gtk-scrolled-window-get-propagate-natural-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-scrolled-window-get-propagate-natural-height.returns" role="returns">
<title>Returns</title>
<para> whether natural height propagation is enabled.</para>
</refsect3></refsect2>
<refsect2 id="gtk-scrolled-window-set-propagate-natural-height" role="function">
<title>gtk_scrolled_window_set_propagate_natural_height&#160;()</title>
<indexterm zone="gtk-scrolled-window-set-propagate-natural-height"><primary>gtk_scrolled_window_set_propagate_natural_height</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_scrolled_window_set_propagate_natural_height
                               (<parameter><link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window</parameter>,
                                <parameter><link linkend="gboolean"><type>gboolean</type></link> propagate</parameter>);</programlisting>
<para>Sets whether the natural height of the child should be calculated and propagated
through the scrolled window’s requested natural height.</para>
<refsect3 id="gtk-scrolled-window-set-propagate-natural-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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>propagate</para></entry>
<entry role="parameter_description"><para>whether to propagate natural height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkScrolledWindow.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkScrolledWindow-struct" role="struct">
<title>GtkScrolledWindow</title>
<indexterm zone="GtkScrolledWindow-struct"><primary>GtkScrolledWindow</primary></indexterm>
<programlisting language="C">typedef struct _GtkScrolledWindow GtkScrolledWindow;</programlisting>
</refsect2>
<refsect2 id="GtkPolicyType" role="enum">
<title>enum GtkPolicyType</title>
<indexterm zone="GtkPolicyType"><primary>GtkPolicyType</primary></indexterm>
<para>Determines how the size should be computed to achieve the one of the
visibility mode for the scrollbars.</para>
<refsect3 id="GtkPolicyType.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GTK-POLICY-ALWAYS:CAPS">GTK_POLICY_ALWAYS</para></entry>
<entry role="enum_member_description"><para>The scrollbar is always visible. The view size is
independent of the content.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-POLICY-AUTOMATIC:CAPS">GTK_POLICY_AUTOMATIC</para></entry>
<entry role="enum_member_description"><para>The scrollbar will appear and disappear as necessary.
For example, when all of a <link linkend="GtkTreeView"><type>GtkTreeView</type></link> can not be seen.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-POLICY-NEVER:CAPS">GTK_POLICY_NEVER</para></entry>
<entry role="enum_member_description"><para>The scrollbar should never appear. In this mode the
content determines the size.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-POLICY-EXTERNAL:CAPS">GTK_POLICY_EXTERNAL</para></entry>
<entry role="enum_member_description"><para>Don't show a scrollbar, but don't force the
size to follow the content. This can be used e.g. to make multiple
scrolled windows share a scrollbar.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="GtkCornerType" role="enum">
<title>enum GtkCornerType</title>
<indexterm zone="GtkCornerType"><primary>GtkCornerType</primary></indexterm>
<para>Specifies which corner a child widget should be placed in when packed into
a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link>. This is effectively the opposite of where the scroll
bars are placed.</para>
<refsect3 id="GtkCornerType.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="GTK-CORNER-TOP-LEFT:CAPS">GTK_CORNER_TOP_LEFT</para></entry>
<entry role="enum_member_description"><para>Place the scrollbars on the right and bottom of the
widget (default behaviour).</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-CORNER-BOTTOM-LEFT:CAPS">GTK_CORNER_BOTTOM_LEFT</para></entry>
<entry role="enum_member_description"><para>Place the scrollbars on the top and right of the
widget.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-CORNER-TOP-RIGHT:CAPS">GTK_CORNER_TOP_RIGHT</para></entry>
<entry role="enum_member_description"><para>Place the scrollbars on the left and bottom of the
widget.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="GTK-CORNER-BOTTOM-RIGHT:CAPS">GTK_CORNER_BOTTOM_RIGHT</para></entry>
<entry role="enum_member_description"><para>Place the scrollbars on the top and left of the
widget.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkScrolledWindow.property-details" role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2 id="GtkScrolledWindow--child" role="property"><title>The <literal>“child”</literal> property</title>
<indexterm zone="GtkScrolledWindow--child"><primary>GtkScrolledWindow:child</primary></indexterm>
<programlisting>  “child”                    <link linkend="GtkWidget"><type>GtkWidget</type></link>&#160;*</programlisting>
<para>The child widget.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--hadjustment" role="property"><title>The <literal>“hadjustment”</literal> property</title>
<indexterm zone="GtkScrolledWindow--hadjustment"><primary>GtkScrolledWindow:hadjustment</primary></indexterm>
<programlisting>  “hadjustment”              <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>&#160;*</programlisting>
<para>The GtkAdjustment for the horizontal position.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write / Construct</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--has-frame" role="property"><title>The <literal>“has-frame”</literal> property</title>
<indexterm zone="GtkScrolledWindow--has-frame"><primary>GtkScrolledWindow:has-frame</primary></indexterm>
<programlisting>  “has-frame”                <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether to draw a frame around the contents.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--hscrollbar-policy" role="property"><title>The <literal>“hscrollbar-policy”</literal> property</title>
<indexterm zone="GtkScrolledWindow--hscrollbar-policy"><primary>GtkScrolledWindow:hscrollbar-policy</primary></indexterm>
<programlisting>  “hscrollbar-policy”        <link linkend="GtkPolicyType"><type>GtkPolicyType</type></link></programlisting>
<para>When the horizontal scrollbar is displayed.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: GTK_POLICY_AUTOMATIC</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--kinetic-scrolling" role="property"><title>The <literal>“kinetic-scrolling”</literal> property</title>
<indexterm zone="GtkScrolledWindow--kinetic-scrolling"><primary>GtkScrolledWindow:kinetic-scrolling</primary></indexterm>
<programlisting>  “kinetic-scrolling”        <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether kinetic scrolling is enabled or not. Kinetic scrolling
only applies to devices with source <link linkend="GDK-SOURCE-TOUCHSCREEN:CAPS"><literal>GDK_SOURCE_TOUCHSCREEN</literal></link>.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: TRUE</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--max-content-height" role="property"><title>The <literal>“max-content-height”</literal> property</title>
<indexterm zone="GtkScrolledWindow--max-content-height"><primary>GtkScrolledWindow:max-content-height</primary></indexterm>
<programlisting>  “max-content-height”       <link linkend="gint"><type>gint</type></link></programlisting>
<para>The maximum content height of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--max-content-width" role="property"><title>The <literal>“max-content-width”</literal> property</title>
<indexterm zone="GtkScrolledWindow--max-content-width"><primary>GtkScrolledWindow:max-content-width</primary></indexterm>
<programlisting>  “max-content-width”        <link linkend="gint"><type>gint</type></link></programlisting>
<para>The maximum content width of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--min-content-height" role="property"><title>The <literal>“min-content-height”</literal> property</title>
<indexterm zone="GtkScrolledWindow--min-content-height"><primary>GtkScrolledWindow:min-content-height</primary></indexterm>
<programlisting>  “min-content-height”       <link linkend="gint"><type>gint</type></link></programlisting>
<para>The minimum content height of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--min-content-width" role="property"><title>The <literal>“min-content-width”</literal> property</title>
<indexterm zone="GtkScrolledWindow--min-content-width"><primary>GtkScrolledWindow:min-content-width</primary></indexterm>
<programlisting>  “min-content-width”        <link linkend="gint"><type>gint</type></link></programlisting>
<para>The minimum content width of <parameter>scrolled_window</parameter>
, or -1 if not set.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Allowed values: &gt;= -1</para>
<para>Default value: -1</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--overlay-scrolling" role="property"><title>The <literal>“overlay-scrolling”</literal> property</title>
<indexterm zone="GtkScrolledWindow--overlay-scrolling"><primary>GtkScrolledWindow:overlay-scrolling</primary></indexterm>
<programlisting>  “overlay-scrolling”        <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether overlay scrolling is enabled or not. If it is, the
scrollbars are only added as traditional widgets when a mouse
is present. Otherwise, they are overlayed on top of the content,
as narrow indicators.</para>
<para>Note that overlay scrolling can also be globally disabled, with
the <link linkend="GtkSettings--gtk-overlay-scrolling"><type>“gtk-overlay-scrolling”</type></link> setting.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: TRUE</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--propagate-natural-height" role="property"><title>The <literal>“propagate-natural-height”</literal> property</title>
<indexterm zone="GtkScrolledWindow--propagate-natural-height"><primary>GtkScrolledWindow:propagate-natural-height</primary></indexterm>
<programlisting>  “propagate-natural-height” <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the natural height of the child should be calculated and propagated
through the scrolled window’s requested natural height.</para>
<para>This is useful in cases where an attempt should be made to allocate exactly
enough space for the natural size of the child.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--propagate-natural-width" role="property"><title>The <literal>“propagate-natural-width”</literal> property</title>
<indexterm zone="GtkScrolledWindow--propagate-natural-width"><primary>GtkScrolledWindow:propagate-natural-width</primary></indexterm>
<programlisting>  “propagate-natural-width”  <link linkend="gboolean"><type>gboolean</type></link></programlisting>
<para>Whether the natural width of the child should be calculated and propagated
through the scrolled window’s requested natural width.</para>
<para>This is useful in cases where an attempt should be made to allocate exactly
enough space for the natural size of the child.</para>
<para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: FALSE</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--vadjustment" role="property"><title>The <literal>“vadjustment”</literal> property</title>
<indexterm zone="GtkScrolledWindow--vadjustment"><primary>GtkScrolledWindow:vadjustment</primary></indexterm>
<programlisting>  “vadjustment”              <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link>&#160;*</programlisting>
<para>The GtkAdjustment for the vertical position.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write / Construct</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--vscrollbar-policy" role="property"><title>The <literal>“vscrollbar-policy”</literal> property</title>
<indexterm zone="GtkScrolledWindow--vscrollbar-policy"><primary>GtkScrolledWindow:vscrollbar-policy</primary></indexterm>
<programlisting>  “vscrollbar-policy”        <link linkend="GtkPolicyType"><type>GtkPolicyType</type></link></programlisting>
<para>When the vertical scrollbar is displayed.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: GTK_POLICY_AUTOMATIC</para>
</refsect2>
<refsect2 id="GtkScrolledWindow--window-placement" role="property"><title>The <literal>“window-placement”</literal> property</title>
<indexterm zone="GtkScrolledWindow--window-placement"><primary>GtkScrolledWindow:window-placement</primary></indexterm>
<programlisting>  “window-placement”         <link linkend="GtkCornerType"><type>GtkCornerType</type></link></programlisting>
<para>Where the contents are located with respect to the scrollbars.</para><para>Owner: GtkScrolledWindow</para>
<para>Flags: Read / Write</para>
<para>Default value: GTK_CORNER_TOP_LEFT</para>
</refsect2>

</refsect1>
<refsect1 id="GtkScrolledWindow.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GtkScrolledWindow-edge-overshot" role="signal"><title>The <literal>“edge-overshot”</literal> signal</title>
<indexterm zone="GtkScrolledWindow-edge-overshot"><primary>GtkScrolledWindow::edge-overshot</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window,
               <link linkend="GtkPositionType"><type>GtkPositionType</type></link>    pos,
               <link linkend="gpointer"><type>gpointer</type></link>           user_data)</programlisting>
<para>The ::edge-overshot signal is emitted whenever user initiated scrolling
makes the scrolled window firmly surpass (i.e. with some edge resistance)
the lower or upper limits defined by the adjustment in that orientation.</para>
<para>A similar behavior without edge resistance is provided by the
<link linkend="GtkScrolledWindow-edge-reached"><type>“edge-reached”</type></link> signal.</para>
<para>Note: The <parameter>pos</parameter>
 argument is LTR/RTL aware, so callers should be aware too
if intending to provide behavior on horizontal edges.</para>
<refsect3 id="GtkScrolledWindow-edge-overshot.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>pos</para></entry>
<entry role="parameter_description"><para>edge side that was hit</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2><refsect2 id="GtkScrolledWindow-edge-reached" role="signal"><title>The <literal>“edge-reached”</literal> signal</title>
<indexterm zone="GtkScrolledWindow-edge-reached"><primary>GtkScrolledWindow::edge-reached</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window,
               <link linkend="GtkPositionType"><type>GtkPositionType</type></link>    pos,
               <link linkend="gpointer"><type>gpointer</type></link>           user_data)</programlisting>
<para>The ::edge-reached signal is emitted whenever user-initiated scrolling
makes the scrolled window exactly reach the lower or upper limits
defined by the adjustment in that orientation.</para>
<para>A similar behavior with edge resistance is provided by the
<link linkend="GtkScrolledWindow-edge-overshot"><type>“edge-overshot”</type></link> signal.</para>
<para>Note: The <parameter>pos</parameter>
 argument is LTR/RTL aware, so callers should be aware too
if intending to provide behavior on horizontal edges.</para>
<refsect3 id="GtkScrolledWindow-edge-reached.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>pos</para></entry>
<entry role="parameter_description"><para>edge side that was reached</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2><refsect2 id="GtkScrolledWindow-move-focus-out" role="signal"><title>The <literal>“move-focus-out”</literal> signal</title>
<indexterm zone="GtkScrolledWindow-move-focus-out"><primary>GtkScrolledWindow::move-focus-out</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window,
               <link linkend="GtkDirectionType"><type>GtkDirectionType</type></link>   direction_type,
               <link linkend="gpointer"><type>gpointer</type></link>           user_data)</programlisting>
<para>The ::move-focus-out signal is a
<link linkend="GtkBindingSignal">keybinding signal</link> which gets
emitted when focus is moved away from the scrolled window by a
keybinding. The <link linkend="GtkWidget-move-focus"><type>“move-focus”</type></link> signal is emitted with
<parameter>direction_type</parameter>
 on this scrolled window’s toplevel parent in the
container hierarchy. The default bindings for this signal are
<literal>Ctrl + Tab</literal> to move forward and <literal>Ctrl + Shift + Tab</literal> to move backward.</para>
<refsect3 id="GtkScrolledWindow-move-focus-out.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>direction_type</para></entry>
<entry role="parameter_description"><para>either <link linkend="GTK-DIR-TAB-FORWARD:CAPS"><literal>GTK_DIR_TAB_FORWARD</literal></link> or
<link linkend="GTK-DIR-TAB-BACKWARD:CAPS"><literal>GTK_DIR_TAB_BACKWARD</literal></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2><refsect2 id="GtkScrolledWindow-scroll-child" role="signal"><title>The <literal>“scroll-child”</literal> signal</title>
<indexterm zone="GtkScrolledWindow-scroll-child"><primary>GtkScrolledWindow::scroll-child</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
user_function (<link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link> *scrolled_window,
               <link linkend="GtkScrollType"><type>GtkScrollType</type></link>      scroll,
               <link linkend="gboolean"><type>gboolean</type></link>           horizontal,
               <link linkend="gpointer"><type>gpointer</type></link>           user_data)</programlisting>
<para>The ::scroll-child signal is a
<link linkend="GtkBindingSignal">keybinding signal</link>
which gets emitted when a keybinding that scrolls is pressed.
The horizontal or vertical adjustment is updated which triggers a
signal that the scrolled window’s child may listen to and scroll itself.</para>
<refsect3 id="GtkScrolledWindow-scroll-child.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>scrolled_window</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrolledWindow"><type>GtkScrolledWindow</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>scroll</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkScrollType"><type>GtkScrollType</type></link> describing how much to scroll</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>horizontal</para></entry>
<entry role="parameter_description"><para>whether the keybinding scrolls the child
horizontally or not</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-ACTION:CAPS">Action</link></para>
</refsect2>
</refsect1>
<refsect1 id="GtkScrolledWindow.see-also">
<title>See Also</title>
<para><link linkend="GtkScrollable"><type>GtkScrollable</type></link>, <link linkend="GtkViewport"><type>GtkViewport</type></link>, <link linkend="GtkAdjustment"><type>GtkAdjustment</type></link></para>

</refsect1>

</refentry>
