<refentry id="GtkScrolledWindow">
<refmeta>
<refentrytitle>GtkScrolledWindow</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>GtkScrolledWindow</refname><refpurpose>
Adds scrollbars to its child widget.</refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>
<synopsis>

#include &lt;gtk/gtk.h&gt;


struct      <link linkend="GtkScrolledWindow-struct">GtkScrolledWindow</link>;
<link linkend="GtkWidget">GtkWidget</link>*  <link linkend="gtk-scrolled-window-new">gtk_scrolled_window_new</link>         (<link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *vadjustment);
<link linkend="GtkAdjustment">GtkAdjustment</link>* <link linkend="gtk-scrolled-window-get-hadjustment">gtk_scrolled_window_get_hadjustment</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);
<link linkend="GtkAdjustment">GtkAdjustment</link>* <link linkend="gtk-scrolled-window-get-vadjustment">gtk_scrolled_window_get_vadjustment</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);
void        <link linkend="gtk-scrolled-window-set-policy">gtk_scrolled_window_set_policy</link>  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> hscrollbar_policy,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> vscrollbar_policy);
void        <link linkend="gtk-scrolled-window-add-with-viewport">gtk_scrolled_window_add_with_viewport</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkWidget">GtkWidget</link> *child);
void        <link linkend="gtk-scrolled-window-set-placement">gtk_scrolled_window_set_placement</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkCornerType">GtkCornerType</link> window_placement);
void        <link linkend="gtk-scrolled-window-set-shadow-type">gtk_scrolled_window_set_shadow_type</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkShadowType">GtkShadowType</link> type);
void        <link linkend="gtk-scrolled-window-set-hadjustment">gtk_scrolled_window_set_hadjustment</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment);
void        <link linkend="gtk-scrolled-window-set-vadjustment">gtk_scrolled_window_set_vadjustment</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment);
<link linkend="GtkCornerType">GtkCornerType</link> <link linkend="gtk-scrolled-window-get-placement">gtk_scrolled_window_get_placement</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);
void        <link linkend="gtk-scrolled-window-get-policy">gtk_scrolled_window_get_policy</link>  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> *hscrollbar_policy,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> *vscrollbar_policy);
<link linkend="GtkShadowType">GtkShadowType</link> <link linkend="gtk-scrolled-window-get-shadow-type">gtk_scrolled_window_get_shadow_type</link>
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);


</synopsis>
</refsynopsisdiv>

<refsect1>
<title>Object Hierarchy</title>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----<link linkend="GtkObject">GtkObject</link>
         +----<link linkend="GtkWidget">GtkWidget</link>
               +----<link linkend="GtkContainer">GtkContainer</link>
                     +----<link linkend="GtkBin">GtkBin</link>
                           +----GtkScrolledWindow
</synopsis>

</refsect1>

<refsect1>
<title>Properties</title>
<synopsis>

  &quot;<link linkend="GtkScrolledWindow--hadjustment">hadjustment</link>&quot;          <link linkend="GtkAdjustment">GtkAdjustment</link>        : Read / Write / Construct
  &quot;<link linkend="GtkScrolledWindow--vadjustment">vadjustment</link>&quot;          <link linkend="GtkAdjustment">GtkAdjustment</link>        : Read / Write / Construct
  &quot;<link linkend="GtkScrolledWindow--hscrollbar-policy">hscrollbar-policy</link>&quot;    <link linkend="GtkPolicyType">GtkPolicyType</link>        : Read / Write
  &quot;<link linkend="GtkScrolledWindow--vscrollbar-policy">vscrollbar-policy</link>&quot;    <link linkend="GtkPolicyType">GtkPolicyType</link>        : Read / Write
  &quot;<link linkend="GtkScrolledWindow--window-placement">window-placement</link>&quot;     <link linkend="GtkCornerType">GtkCornerType</link>        : Read / Write
  &quot;<link linkend="GtkScrolledWindow--shadow-type">shadow-type</link>&quot;          <link linkend="GtkShadowType">GtkShadowType</link>        : Read / Write
</synopsis>
</refsect1>

<refsect1>
<title>Signal Prototypes</title>
<synopsis>

&quot;<link linkend="GtkScrolledWindow-move-focus-out">move-focus-out</link>&quot;
            void        user_function      (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolledwindow,
                                            <link linkend="GtkDirectionType">GtkDirectionType</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data);
&quot;<link linkend="GtkScrolledWindow-scroll-child">scroll-child</link>&quot;
            void        user_function      (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolledwindow,
                                            <link linkend="GtkScrollType">GtkScrollType</link> arg1,
                                            <link linkend="gboolean">gboolean</link> arg2,
                                            <link linkend="gpointer">gpointer</link> user_data);
</synopsis>
</refsect1>


<refsect1>
<title>Description</title>
<para>
<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> is a <link linkend="GtkBin">GtkBin</link> subclass: it's a container 
the accepts a single child widget. <link linkend="GtkScrolledWindow">GtkScrolledWindow</link> adds scrollbars
to the child widget and optionally draws a beveled frame around the 
child widget.
</para>

<para>
The scrolled window can work in two ways. Some widgets have native
scrolling support; these widgets have "slots" for <link linkend="GtkAdjustment">GtkAdjustment</link>
objects. 
<footnote><para>The scrolled window installs <link linkend="GtkAdjustment">GtkAdjustment</link> objects in
the child window's slots using the set_scroll_adjustments_signal,
found in <link linkend="GtkWidgetClass">GtkWidgetClass</link>. (Conceptually, these widgets implement a
"Scrollable" interface; because GTK+ 1.2 lacked interface support in
the object system, this interface is hackily implemented as a signal
in <link linkend="GtkWidgetClass">GtkWidgetClass</link>. The GTK+ 2.0 object system would allow a clean
implementation, but it wasn't worth breaking the
API.)</para></footnote>
Widgets with native scroll support include <link linkend="GtkTreeView">GtkTreeView</link>, <link linkend="GtkTextView">GtkTextView</link>, 
and <link linkend="GtkLayout">GtkLayout</link>.
</para>

<para>
For widgets that lack native scrolling support, the <link linkend="GtkViewport">GtkViewport</link>
widget acts as an adaptor class, implementing scrollability for child
widgets that lack their own scrolling capabilities. Use <link linkend="GtkViewport">GtkViewport</link>
to scroll child widgets such as <link linkend="GtkTable">GtkTable</link>, <link linkend="GtkBox">GtkBox</link>, and so on.
</para>

<para>
If a widget has native scrolling abilities, it can be added to the
<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> with <link linkend="gtk-container-add">gtk_container_add</link>(). If a widget does not, you
must first add the widget to a <link linkend="GtkViewport">GtkViewport</link>, then add the <link linkend="GtkViewport">GtkViewport</link>
to the scrolled window. The convenience function
<link linkend="gtk-scrolled-window-add-with-viewport">gtk_scrolled_window_add_with_viewport</link>() does exactly this, so you can
ignore the presence of the viewport.
</para>

<para>
The position of the scrollbars is controlled by the scroll
adjustments. See <link linkend="GtkAdjustment">GtkAdjustment</link> for the fields in an adjustment - for
<link linkend="GtkScrollbar">GtkScrollbar</link>, used by <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>, the "value" field
represents the position of the scrollbar, which must be between the
"lower" field and "upper - page_size." The "page_size" field
represents the size of the visible scrollable area. The
"step_increment" and "page_increment" fields are used when the user
asks to step down (using the small stepper arrows) or page down (using
for example the PageDown key).
</para>

<para>
If a <link linkend="GtkScrolledWindow">GtkScrolledWindow</link> 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">GtkScrollbar</link> and for example a <link linkend="GtkTable">GtkTable</link>.
</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="GtkScrolledWindow-struct">struct GtkScrolledWindow</title>
<programlisting>struct GtkScrolledWindow;</programlisting>
<para>
There are no public fields in the <link linkend="GtkScrolledWindow">GtkScrolledWindow</link> struct; it should 
only be accessed using the functions below.
</para></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-new">gtk_scrolled_window_new ()</title>
<programlisting><link linkend="GtkWidget">GtkWidget</link>*  gtk_scrolled_window_new         (<link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *vadjustment);</programlisting>
<para>
Creates a new scrolled window. 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 <literal>NULL</literal> for the adjustments, which will cause the scrolled window
to create them for you.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>hadjustment</parameter>&nbsp;:</entry>
<entry>Horizontal adjustment.
</entry></row>
<row><entry align="right"><parameter>vadjustment</parameter>&nbsp;:</entry>
<entry>Vertical adjustment.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>New scrolled window.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-get-hadjustment">gtk_scrolled_window_get_hadjustment ()</title>
<programlisting><link linkend="GtkAdjustment">GtkAdjustment</link>* gtk_scrolled_window_get_hadjustment
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);</programlisting>
<para>
Returns the horizontal scrollbar's adjustment, used to connect the
horizontal scrollbar to the child widget's horizontal scroll
functionality.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>The horizontal <link linkend="GtkAdjustment">GtkAdjustment</link>.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-get-vadjustment">gtk_scrolled_window_get_vadjustment ()</title>
<programlisting><link linkend="GtkAdjustment">GtkAdjustment</link>* gtk_scrolled_window_get_vadjustment
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);</programlisting>
<para>
Returns the vertical scrollbar's adjustment, used to connect the
vertical scrollbar to the child widget's vertical scroll
functionality.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>The vertical <link linkend="GtkAdjustment">GtkAdjustment</link>.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-set-policy">gtk_scrolled_window_set_policy ()</title>
<programlisting>void        gtk_scrolled_window_set_policy  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> hscrollbar_policy,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> vscrollbar_policy);</programlisting>
<para>
Sets the scrollbar policy for the horizontal and vertical scrollbars. 
The policy determines when the scrollbar should appear; it is a value
from the <link linkend="GtkPolicyType">GtkPolicyType</link> enumeration. If <literal>GTK_POLICY_ALWAYS</literal>, the
scrollbar is always present; if <literal>GTK_POLICY_NEVER</literal>, the scrollbar is
never present; if <literal>GTK_POLICY_AUTOMATIC</literal>, 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><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><parameter>hscrollbar_policy</parameter>&nbsp;:</entry>
<entry>Policy for horizontal bar.
</entry></row>
<row><entry align="right"><parameter>vscrollbar_policy</parameter>&nbsp;:</entry>
<entry>Policy for vertical bar.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-add-with-viewport">gtk_scrolled_window_add_with_viewport ()</title>
<programlisting>void        gtk_scrolled_window_add_with_viewport
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkWidget">GtkWidget</link> *child);</programlisting>
<para>
Used to add children without native scrolling capabilities. This is
simply a convenience function; it is equivalent to adding the
unscrollable child to a viewport, then adding the viewport to the
scrolled window. If a child has native scrolling, use
<link linkend="gtk-container-add">gtk_container_add</link>() instead of this function.
</para>

<para>
The viewport scrolls the child by moving its <link linkend="GdkWindow">GdkWindow</link>, and takes the
size of the child to be the size of its toplevel <link linkend="GdkWindow">GdkWindow</link>. This will
be very wrong for most widgets that support native scrolling; for
example, if you add a widget such as <link linkend="GtkTreeView">GtkTreeView</link> with a viewport, the 
whole widget will scroll, including the column headings. Thus, widgets
with native scrolling support should not be used with the <link linkend="GtkViewport">GtkViewport</link> proxy.
</para>

<para>
A widget supports scrolling natively if the
set_scroll_adjustments_signal field in <link linkend="GtkWidgetClass">GtkWidgetClass</link> is non-zero,
i.e. has been filled in with a valid signal identifier.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><parameter>child</parameter>&nbsp;:</entry>
<entry>Widget you want to scroll.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-set-placement">gtk_scrolled_window_set_placement ()</title>
<programlisting>void        gtk_scrolled_window_set_placement
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkCornerType">GtkCornerType</link> window_placement);</programlisting>
<para>
Determines the location of the child widget with respect to the
scrollbars. The default is <literal>GTK_CORNER_TOP_LEFT</literal>, meaning the child is
in the top left, with the scrollbars underneath and to the right.
Other values in <link linkend="GtkCornerType">GtkCornerType</link> are <literal>GTK_CORNER_TOP_RIGHT</literal>,
<literal>GTK_CORNER_BOTTOM_LEFT</literal>, and <literal>GTK_CORNER_BOTTOM_RIGHT</literal>.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><parameter>window_placement</parameter>&nbsp;:</entry>
<entry>Position of the child window.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-set-shadow-type">gtk_scrolled_window_set_shadow_type ()</title>
<programlisting>void        gtk_scrolled_window_set_shadow_type
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkShadowType">GtkShadowType</link> type);</programlisting>
<para>
Changes the type of shadow drawn around the contents of
<parameter>scrolled_window</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry> a <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>
</entry></row>
<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
<entry> kind of shadow to draw around scrolled window contents
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-set-hadjustment">gtk_scrolled_window_set_hadjustment ()</title>
<programlisting>void        gtk_scrolled_window_set_hadjustment
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment);</programlisting>
<para>
Sets the <link linkend="GtkAdjustment">GtkAdjustment</link> for the horizontal scrollbar.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><parameter>hadjustment</parameter>&nbsp;:</entry>
<entry>Horizontal scroll adjustment.


</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-set-vadjustment">gtk_scrolled_window_set_vadjustment ()</title>
<programlisting>void        gtk_scrolled_window_set_vadjustment
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkAdjustment">GtkAdjustment</link> *hadjustment);</programlisting>
<para>
Sets the <link linkend="GtkAdjustment">GtkAdjustment</link> for the vertical scrollbar.
</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry>A <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>.
</entry></row>
<row><entry align="right"><parameter>hadjustment</parameter>&nbsp;:</entry>
<entry>
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-get-placement">gtk_scrolled_window_get_placement ()</title>
<programlisting><link linkend="GtkCornerType">GtkCornerType</link> gtk_scrolled_window_get_placement
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);</programlisting>
<para>
Gets the placement of the scrollbars for the scrolled window. See 
<link linkend="gtk-scrolled-window-set-placement">gtk_scrolled_window_set_placement</link>().</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry> a <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> the current placement value.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-get-policy">gtk_scrolled_window_get_policy ()</title>
<programlisting>void        gtk_scrolled_window_get_policy  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> *hscrollbar_policy,
                                             <link linkend="GtkPolicyType">GtkPolicyType</link> *vscrollbar_policy);</programlisting>
<para>
Retrieves the current policy values for the horizontal and vertical
scrollbars. See <link linkend="gtk-scrolled-window-set-policy">gtk_scrolled_window_set_policy</link>().</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry> a <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>
</entry></row>
<row><entry align="right"><parameter>hscrollbar_policy</parameter>&nbsp;:</entry>
<entry> location to store the policy for the horizontal scrollbar, or <literal>NULL</literal>.
</entry></row>
<row><entry align="right"><parameter>vscrollbar_policy</parameter>&nbsp;:</entry>
<entry> location to store the policy for the horizontal scrollbar, or <literal>NULL</literal>.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="gtk-scrolled-window-get-shadow-type">gtk_scrolled_window_get_shadow_type ()</title>
<programlisting><link linkend="GtkShadowType">GtkShadowType</link> gtk_scrolled_window_get_shadow_type
                                            (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolled_window);</programlisting>
<para>
Gets the shadow type of the scrolled window. See 
<link linkend="gtk-scrolled-window-set-shadow-type">gtk_scrolled_window_set_shadow_type</link>().</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolled_window</parameter>&nbsp;:</entry>
<entry> a <link linkend="GtkScrolledWindow">GtkScrolledWindow</link>
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry> the current shadow type
</entry></row>
</tbody></tgroup></informaltable></refsect2>

</refsect1>
<refsect1>
<title>Properties</title>
<variablelist>
<varlistentry><term><anchor id="GtkScrolledWindow--hadjustment">&quot;<literal>hadjustment</literal>&quot; (<link linkend="GtkAdjustment">GtkAdjustment</link> : Read / Write / Construct)</term>
<listitem>
<para>
Horizontal adjustment. See <link linkend="gtk-scrolled-window-set-hadjustment">gtk_scrolled_window_set_hadjustment</link>(), <link linkend="gtk-scrolled-window-get-hadjustment">gtk_scrolled_window_get_hadjustment</link>().
</para></listitem></varlistentry>
<varlistentry><term><anchor id="GtkScrolledWindow--vadjustment">&quot;<literal>vadjustment</literal>&quot; (<link linkend="GtkAdjustment">GtkAdjustment</link> : Read / Write / Construct)</term>
<listitem>
<para>
Vertical adjustment. See <link linkend="gtk-scrolled-window-set-vadjustment">gtk_scrolled_window_set_vadjustment</link>(), <link linkend="gtk-scrolled-window-get-vadjustment">gtk_scrolled_window_get_vadjustment</link>().
</para></listitem></varlistentry>
<varlistentry><term><anchor id="GtkScrolledWindow--hscrollbar-policy">&quot;<literal>hscrollbar-policy</literal>&quot; (<link linkend="GtkPolicyType">GtkPolicyType</link> : Read / Write)</term>
<listitem>
<para>
Horizontal scrollbar policy (show scrollbar always, never, or "when appropriate").
</para></listitem></varlistentry>
<varlistentry><term><anchor id="GtkScrolledWindow--vscrollbar-policy">&quot;<literal>vscrollbar-policy</literal>&quot; (<link linkend="GtkPolicyType">GtkPolicyType</link> : Read / Write)</term>
<listitem>
<para>
Vertical scrollbar policy (show scrollbar always, never, or "when appropriate").
</para></listitem></varlistentry>
<varlistentry><term><anchor id="GtkScrolledWindow--window-placement">&quot;<literal>window-placement</literal>&quot; (<link linkend="GtkCornerType">GtkCornerType</link> : Read / Write)</term>
<listitem>
<para>
Position of child window with respect to scrollbars; top left, top
right, bottom left, bottom right.
</para></listitem></varlistentry>
<varlistentry><term><anchor id="GtkScrolledWindow--shadow-type">&quot;<literal>shadow-type</literal>&quot; (<link linkend="GtkShadowType">GtkShadowType</link> : Read / Write)</term>
<listitem>
<para>
Type of frame drawn around the child of the scrolled window.
</para></listitem></varlistentry>

</variablelist>
</refsect1>

<refsect1>
<title>Signals</title>
<refsect2><title><anchor id="GtkScrolledWindow-move-focus-out">The &quot;move-focus-out&quot; signal</title>
<programlisting>void        user_function                  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolledwindow,
                                            <link linkend="GtkDirectionType">GtkDirectionType</link> arg1,
                                            <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolledwindow</parameter>&nbsp;:</entry>
<entry>the object which received the signal.
</entry></row>
<row><entry align="right"><parameter>arg1</parameter>&nbsp;:</entry>
<entry>

</entry></row>
<row><entry align="right"><parameter>user_data</parameter>&nbsp;:</entry>
<entry>user data set when the signal handler was connected.</entry></row>
</tbody></tgroup></informaltable></refsect2><refsect2><title><anchor id="GtkScrolledWindow-scroll-child">The &quot;scroll-child&quot; signal</title>
<programlisting>void        user_function                  (<link linkend="GtkScrolledWindow">GtkScrolledWindow</link> *scrolledwindow,
                                            <link linkend="GtkScrollType">GtkScrollType</link> arg1,
                                            <link linkend="gboolean">gboolean</link> arg2,
                                            <link linkend="gpointer">gpointer</link> user_data);</programlisting>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>scrolledwindow</parameter>&nbsp;:</entry>
<entry>the object which received the signal.
</entry></row>
<row><entry align="right"><parameter>arg1</parameter>&nbsp;:</entry>
<entry>
</entry></row>
<row><entry align="right"><parameter>arg2</parameter>&nbsp;:</entry>
<entry>

</entry></row>
<row><entry align="right"><parameter>user_data</parameter>&nbsp;:</entry>
<entry>user data set when the signal handler was connected.</entry></row>
</tbody></tgroup></informaltable></refsect2>
</refsect1>


<refsect1>
<title>See Also</title>
<para>
<link linkend="GtkViewport">GtkViewport</link>, <link linkend="GtkAdjustment">GtkAdjustment</link>, <link linkend="GtkWidgetClass">GtkWidgetClass</link>
</para>
</refsect1>

</refentry>
