<TITLE>scrolledframe - Create and manipulate scrolled frame widgets</TITLE>
<H1>scrolledframe - Create and manipulate scrolled frame widgets</H1>

</pre><H2>SYNOPSIS</H2>
<B>scrolledframe<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- Labeledwidget &lt;-Scrolledwidget &lt;- Scrolledframe
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>font</B><br>
<B>relief</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>foreground</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>selectBorderWidth</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
<B>selectForeground</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
</pre><H2>ASSOCIATED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeRelief</B><br>
</td>
<td valign=top>
<B>elementBorderWidth</B><br>
</td>
<td valign=top>
<B>jump</B><br>
</td>
<td valign=top>
<B>troughColor</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/scrollbar.n.html"> "scrollbar" </A> manual entry for details on the associated options.
</pre><H2>INHERITED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>LabelBitmap</B><br>
<B>labelPos</B><br>
</td>
<td valign=top>
<B>labelFont</B><br>
<B>labelText</B><br>
</td>
<td valign=top>
<B>labelImage</B><br>
<B>labelVariable</B><br>
</td>
<td valign=top>
<B>labelMargin</B><br>
</td>
</table>
<P>
See the <A HREF="labeledwidget.n.html"> "labeledwidget" </A> class manual entry for details on the inherited options.
</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
<P>
<pre>
Name:                   <B>height</B>
Class:                  <B>Height</B>
Command-Line Switch:	<B>-height</B>
</pre>
<UL>
Specifies the height of the scrolled frame widget in any of the forms acceptable to <B>Tk_GetPixels</B>.  The default height is 100 pixels.
</UL>
<P>
<pre>
Name:                   <B>hscrollMode</B>
Class:                  <B>ScrollMode</B>
Command-Line Switch:	<B>-hscrollmode</B>
</pre>
<UL>
Specifies the the display mode to be used for the horizontal
scrollbar: <B>static</B>, <B>dynamic</B>, or <B>none</B>.  In static mode, the 
scroll bar is displayed at all times.  Dynamic mode displays the
scroll bar as required, and none disables the scroll bar display.  The 
default is static.
</UL>
<P>
<pre>
Name:                   <B>sbWidth</B>
Class:                  <B>Width</B>
Command-Line Switch:	<B>-sbwidth</B>
</pre>
<UL>
Specifies the width of the scrollbar in any of the forms acceptable 
to <B>Tk_GetPixels</B>.  The default width is 15 pixels.
</UL>
<P>
<pre>
Name:                   <B>scrollMargin</B>
Class:                  <B>Margin</B>
Command-Line Switch:	<B>-scrollmargin</B>
</pre>
<UL>
Specifies the distance between the frame and scrollbar in any of the
forms acceptable to <B>Tk_GetPixels</B>.  The default is 3 pixels.
</UL>
<P>
<pre>
Name:                   <B>vscrollMode</B>
Class:                  <B>ScrollMode</B>
Command-Line Switch:	<B>-vscrollmode</B>
</pre>
<UL>
Specifies the the display mode to be used for the vertical
scrollbar: <B>static</B>, <B>dynamic</B>, or <B>none</B>.  In static mode, the 
scroll bar is displayed at all times.  Dynamic mode displays the 
scroll bar as required, and none disables the scroll bar display.  The 
default is static.
</UL>
<P>
<pre>
Name:                   <B>width</B>
Class:                  <B>Width</B>
Command-Line Switch:	<B>-width</B>
</pre>
<UL>
Specifies the width of the scrolled frame widget in any of the forms
acceptable to <B>Tk_GetPixels</B>.  The default height is 100 pixels.
</UL>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>scrolledframe</B> combines the functionallity of scrolling with that 
of a typical frame widget to implement a clipable viewing area whose visible 
region may be modified with the scroll bars. This enables the contruction 
of visually larger areas than which could normally be displayed, containing 
a heterogenous mix of other widgets. Options exist which allow full control
over which scrollbars are displayed and the method, i.e. statically or
dynamically. The frame itself may be accessed by the <B>childsite</B>
method and then filled with other widget combinations.

</pre><H2>METHODS</H2>
<P>
The <B>scrolledframe</B> command creates a new Tcl command whose
name is <I>pathName</I>.  This
command may be used to invoke various
operations on the widget.  It has the following general form:
<pre>
<I>pathName option </I>?<I>arg arg ...</I>?
</pre>
<I>Option</I> and the <I>arg</I>s
determine the exact behavior of the command.  The following
commands are possible for scrolledframe widgets:
</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>xview</B><br>
</td>
<td valign=top>
<B>yview</B><br>
</td>
<td valign=top>
</td>
<td valign=top>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/canvas.n.html"> "canvas" </A> manual entry for details on the associated methods.

</pre><H2>WIDGET-SPECIFIC METHODS</H2>
<DL>
<DT> <I>pathName <B>cget</B> <I>option</I>
</I></B>
<DD> Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>scrolledframe</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>childsite</B>
</I></B>
<DD> Return the path name of the child site.
</DL>
<DL>
<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
</I></B>
<DD> Query or modify the configuration options of the widget.
If no <I>option</I> is specified, returns a list describing all of
the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
information on the format of this list).  If <I>option</I> is specified
with no <I>value</I>, then the command returns a list describing the
one named option (this list will be identical to the corresponding
sublist of the value returned if no <I>option</I> is specified).  If
one or more <I>option-value</I> pairs are specified, then the command
modifies the given widget option(s) to have the given value(s);  in
this case the command returns an empty string.
<I>Option</I> may have any of the values accepted by the <B>scrolledframe</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>justify <I>direction</I>
</I></B>
<DD> Justifies the frame contents via the scroll bars in one of four directions:
<B>left</B>, <B>right</B>, <B>top</B>, or <B>bottom</B>.

</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>horizsb</B>
Class:                  <B>Scrollbar</B>
</pre>
<UL>
The horizsb component is the horizontal scroll bar.  See the "ScrollBar" 
widget manual entry for details on the horizsb component item.
</UL>
<P>
<pre>
Name:                   <B>vertsb</B>
Class:                  <B>Scrollbar</B>
</pre>
<UL>
The vertsb component is the vertical scroll bar.  See the "ScrollBar" widget 
manual entry for details on the vertsb component item.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
scrolledframe .sf -width 150 -height 180 -labelon yes -labeltext scrolledframe

set cs [.sf childsite]
pack [button $cs.b1 -text Hello] -pady 10
pack [button $cs.b2 -text World] -pady 10
pack [button $cs.b3 -text "This is a test"] -pady 10
pack [button $cs.b4 -text "This is a really big button"] -pady 10
pack [button $cs.b5 -text "This is another really big button"] -pady 10
pack [button $cs.b6 -text "This is the last really big button"] -pady 10

pack .sf -expand yes -fill both -padx 10 -pady 10
</pre>
</pre><H2>AUTHORS</H2>
Mark L. Ulferts
<P>
Sue Yockey
</pre><H2>KEYWORDS</H2>
scrolledframe, frame, widget
