<TITLE>scrolledcanvas - Create and manipulate scrolled canvas widgets</TITLE>
<H1>scrolledcanvas - Create and manipulate scrolled canvas widgets</H1>

</pre><H2>SYNOPSIS</H2>
<B>scrolledcanvas<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- Labeledwidget &lt;- Scrolledwidget &lt;- Scrolledcanvas
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>exportSelection</B><br>
<B>highlightThickness</B><br>
<B>insertWidth</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>font</B><br>
<B>insertBorderWidth</B><br>
<B>relief</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>foreground</B><br>
<B>insertOffTime</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightColor</B><br>
<B>insertOnTime</B><br>
<B>selectBorderWidth</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>closeEnough</B><br>
<B>yScrollIncrement</B><br>
</td>
<td valign=top>
<B>confine</B><br>
</td>
<td valign=top>
<B>scrollRegion</B><br>
</td>
<td valign=top>
<B>xScrollIncrement</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/canvas.n.html"> "canvas" </A> widget manual entry for details on the above
associated options.
<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> widget manual entry for details on the above
associated options.
</pre><H2>INHERITED OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>disabledForeground</B><br>
<B>labelMargin</B><br>
<B>state</B><br>
</td>
<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>
</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>autoMargin</B>
Class:                  <B>AutoMargin</B>
Command-Line Switch:	<B>-automargin</B>
</pre>
<UL>
Specifies the autoresize extra margin to reserve.  This option is only
effective with autoresize turned on.  The default is 10.
</UL>
<P>
<pre>
Name:                   <B>autoResize</B>
Class:                  <B>AutoResize</B>
Command-Line Switch:	<B>-autoresize</B>
</pre>
<UL>
Automatically adjusts the scrolled region to be the bounding 
box covering all the items in the canvas following the execution 
of any method which creates or destroys items.  Thus, as new 
items are added, the scrollbars adjust accordingly.
</UL>
<P>
<pre>
Name:                   <B>height</B>
Class:                  <B>Height</B>
Command-Line Switch:	<B>-height</B>
</pre>
<UL>
Specifies the height of the scrolled canvas widget in any of the forms 
acceptable to <B>Tk_GetPixels</B>.  The default height is 30 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, 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>ScrollMargin</B>
Command-Line Switch:	<B>-scrollmargin</B>
</pre>
<UL>
Specifies the distance between the canvas and scrollbar in any of the 
forms acceptable to <B>Tk_GetPixels</B>.  The default is 3 pixels.
</UL>
<P>
<pre>
Name:                   <B>textBackground</B>
Class:                  <B>Background</B>
Command-Line Switch <B>-textbackground</B>
</pre>
<UL>
Specifies the background color for the canvas.  This allows the background 
within the canvas to be different from the normal background color.
</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, 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 canvas widget in any of the forms 
acceptable to <B>Tk_GetPixels</B>.  The default height is 30 pixels.
</UL>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
The <B>scrolledcanvas</B> command creates 
a scrolled canvas with additional options to manage
horizontal and vertical scrollbars.  This includes options to control
which scrollbars are displayed and the method, i.e. statically or
dynamically.

</pre><H2>METHODS</H2>
<P>
The <B>scrolledcanvas</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 scrolledcanvas widgets:
</pre><H2>ASSOCIATED METHODS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>addtag</B><br>
<B>canvasy<B><br>
<B>delete</B><br>
<B>gettags</B><br>
<B>itemconfigure</B><br>
<B>raise</B><br>
<B>type</B><br>
</td>
<td valign=top>
<B>bbox</B><br>
<B>coords</B><br>
<B>dtag</B><br>
<B>icursor</B><br>
<B>lower</B><br>
<B>scale</B><br>
<B>xview</B><br>
</td>
<td valign=top>
<B>bind</B><br>
<B>create</B><br>
<B>find</B><br>
<B>index</B><br>
<B>move</B><br>
<B>scan</B><br>
<B>yview</B><br>
</td>
<td valign=top>
<B>canvasx</B><br>
<B>dchars</B><br>
<B>focus</B><br>
<B>insert</B><br>
<B>postscript</B><br>
<B>select</B><br>
</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>scrolledcanvas</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>childsite</B>
</I></B>
<DD> Returns the child site widget path name.
</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>scrolledcanvas</B>
command.
</DL>
<DL>
<DT> <I>pathName <B>justify <I>direction</I>
</I></B>
<DD> Justifies the canvas 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>canvas</B>
Class:                  <B>Canvas</B>
</pre>
<UL>
The canvas component is the canvas widget.  See the "canvas" widget 
manual entry for details on the canvas component item.
</UL>
<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>
  scrolledcanvas .sc 

  .sc create rectangle 100 100 400 400 -fill red
  .sc create rectangle 300 300 600 600 -fill green
  .sc create rectangle 200 200 500 500 -fill blue

  pack .sc -padx 10 -pady 10 -fill both -expand yes
</pre>
</pre><H2>AUTHOR</H2>
Mark L. Ulferts
</pre><H2>KEYWORDS</H2>
scrolledcanvas, canvas, widget
