'\"
'\" Copyright (c) 1995 DSC Technologies Corporation
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
'\" toolbar.n 
'\" 
'\" The definitions below are for supplemental macros used in Tcl/Tk
'\" manual entries.
'\"
'\" .HS name section [date [version]]
'\"	Replacement for .TH in other man pages.  See below for valid
'\"	section names.
'\"
'\" .AP type name in/out [indent]
'\"	Start paragraph describing an argument to a library procedure.
'\"	type is type of argument (int, etc.), in/out is either "in", "out",
'\"	or "in/out" to describe whether procedure reads or modifies arg,
'\"	and indent is equivalent to second arg of .IP (shouldn't ever be
'\"	needed;  use .AS below instead)
'\"
'\" .AS [type [name]]
'\"	Give maximum sizes of arguments for setting tab stops.  Type and
'\"	name are examples of largest possible arguments that will be passed
'\"	to .AP later.  If args are omitted, default tab stops are used.
'\"
'\" .BS
'\"	Start box enclosure.  From here until next .BE, everything will be
'\"	enclosed in one large box.
'\"
'\" .BE
'\"	End of box enclosure.
'\"
'\" .VS
'\"	Begin vertical sidebar, for use in marking newly-changed parts
'\"	of man pages.
'\"
'\" .VE
'\"	End of vertical sidebar.
'\"
'\" .DS
'\"	Begin an indented unfilled display.
'\"
'\" .DE
'\"	End of indented unfilled display.
'\"
'\" @(#) man.macros 1.1 94/08/09 13:07:19
.\"
'\"	# Heading for Tcl/Tk man pages
.de HS
.ds ^3 \\0
.if !"\\$3"" .ds ^3 \\$3
.if '\\$2'cmds'      .TH "\\$1" 1 "\\*(^3" "\\$4" "\\$5"
.if '\\$2'lib'       .TH "\\$1" 3 "\\*(^3" "\\$4" "\\$5"
.if '\\$2'ncmds'     .TH "\\$1" n "\\*(^3" "\\$4" "\\$5"
.if '\\$2'tcl'       .TH "\\$1" n "\\*(^3"  Tcl   "Tcl Built-In Commands"
.if '\\$2'tk'        .TH "\\$1" n "\\*(^3"  Tk    "Tk Commands"
.if '\\$2'tclc'      .TH "\\$1" 3 "\\*(^3"  Tcl   "Tcl Library Procedures"
.if '\\$2'tkc'       .TH "\\$1" 3 "\\*(^3"  Tk    "Tk Library Procedures"
.if '\\$2'tclcmds'   .TH "\\$1" 1 "\\*(^3"  Tk    "Tcl Applications"
.if '\\$2'tkcmds'    .TH "\\$1" 1 "\\*(^3"  Tk    "Tk Applications"
.if '\\$2'iwid'      .TH "\\$1" 1 "\\*(^3"  Tk    "[incr Widgets]"
.if t .wh -1.3i ^B
.nr ^l \\n(.l
.ad b
..
'\"	# Start an argument description
.de AP
.ie !"\\$4"" .TP \\$4
.el \{\
.   ie !"\\$2"" .TP \\n()Cu
.   el          .TP 15
.\}
.ie !"\\$3"" \{\
.ta \\n()Au \\n()Bu
\&\\$1	\\fI\\$2\\fP	(\\$3)
.\".b
.\}
.el \{\
.br
.ie !"\\$2"" \{\
\&\\$1	\\fI\\$2\\fP
.\}
.el \{\
\&\\fI\\$1\\fP
.\}
.\}
..
'\"	# define tabbing values for .AP
.de AS
.nr )A 10n
.if !"\\$1"" .nr )A \\w'\\$1'u+3n
.nr )B \\n()Au+15n
.\"
.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
.nr )C \\n()Bu+\\w'(in/out)'u+2n
..
'\"	# BS - start boxed text
'\"	# ^y = starting y location
'\"	# ^b = 1
.de BS
.br
.mk ^y
.nr ^b 1u
.if n .nf
.if n .ti 0
.if n \l'\\n(.lu\(ul'
.if n .fi
..
'\"	# BE - end boxed text (draw box now)
.de BE
.nf
.ti 0
.mk ^t
.ie n \l'\\n(^lu\(ul'
.el \{\
.\"	Draw four-sided box normally, but don't draw top of
.\"	box if the box started on an earlier page.
.ie !\\n(^b-1 \{\
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.el \}\
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
.\}
.\}
.fi
.br
.nr ^b 0
..
'\"	# VS - start vertical sidebar
'\"	# ^Y = starting y location
'\"	# ^v = 1 (for troff;  for nroff this doesn't matter)
.de VS
.mk ^Y
.ie n 'mc \s12\(br\s0
.el .nr ^v 1u
..
'\"	# VE - end of vertical sidebar
.de VE
.ie n 'mc
.el \{\
.ev 2
.nf
.ti 0
.mk ^t
\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
.sp -1
.fi
.ev
.\}
.nr ^v 0
..
'\"	# Special macro to handle page bottom:  finish off current
'\"	# box/sidebar if in box/sidebar mode, then invoked standard
'\"	# page bottom macro.
.de ^B
.ev 2
'ti 0
'nf
.mk ^t
.if \\n(^b \{\
.\"	Draw three-sided box if this is the box's first page,
.\"	draw two sides but no top otherwise.
.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
.\}
.if \\n(^v \{\
.nr ^x \\n(^tu+1v-\\n(^Yu
\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
.\}
.bp
'fi
.ev
.if \\n(^b \{\
.mk ^y
.nr ^b 2
.\}
.if \\n(^v \{\
.mk ^Y
.\}
..
'\"	# DS - begin display
.de DS
.RS
.nf
.sp
..
'\"	# DE - end display
.de DE
.fi
.RE
.sp
..
.HS iwidgets::toolbar iwid
.BS
'\" Note:  do not modify the .SH NAME line immediately below!
.SH NAME
\fBiwidgets::toolbar\fR \- Create and manipulate a tool bar
.SH SYNOPSIS
\fBiwidgets::toolbar\fR \fIpathName\fR ?\fIoptions\fR?
.SH "INHERITANCE"
itk::Widget <- iwidgets::Toolbar
.SH STANDARD OPTIONS
.LP
.nf
.ta 4c 8c 12c
\fB
activeBackground     activeForeground    background  borderWidth
cursor               disabledForeground  font        foreground
highlightBackground  highlightColor      highlightThickness
insertBackground     insertForeground    orient      selectBackground
selectBorderWidth    selectForeground    state       troughColor\fR
.fi
.LP
See the "options" manual entry for details on the standard options. For widgets
added to the toolbar, these options will be propogated if the widget supports
the option. For example, all widgets that support a font option will be changed
if the the toolbar's font option is configured. 
.SH "WIDGET-SPECIFIC OPTIONS"
.LP
.nf
Name:	\fBballoonBackground\fR
Class:	\fBBalloonBackground\fR
Command-Line Switch:	\fB-ballooonbackground\fR
.fi
.IP
Specifies the background color of the balloon help displayed at the bottom 
center of a widget on the toolbar that has a non empty string for its 
balloonStr option. The default color is yellow.
.LP
.nf
Name:	\fBballoonDelay1\fR
Class:	\fBBalloonDelay1\fR
Command-Line Switch:	\fB-balloondelay1\fR
.fi
.IP
Specifies the length of time (in milliseconds) to wait before initially 
posting a balloon help hint window. This delay is in effect whenever 1) 
the mouse leaves the toolbar, or 2) a toolbar item is selected with the 
mouse button.
.LP
.nf
Name:	\fBballoonDelay2\fR
Class:	\fBBalloonDelay2\fR
Command-Line Switch:	\fB-balloondelay2\fR
.fi
.IP
Specifies the length of time (in milliseconds) to wait before continuing to 
post balloon help hint windows. This delay is in effect after the first 
time a balloon hint window is activated. It remains in effect until 1) the 
mouse leaves the toolbar, or 2) a toolbar item is selected with the mouse 
button.
.LP
.nf
Name:	\fBballoonFont\fR
Class:	\fBBalloonFont\fR
Command-Line Switch:	\fB-balloonfont\fR
.fi
.IP
Specifies the font of the balloon help text displayed at the bottom center 
of a widget on the toolbar that has a non empty string for its 
balloonStr option. The default font is 6x10.
.LP
.nf
Name:	\fBballoonForeground\fR
Class:	\fBBalloonForeground\fR
Command-Line Switch:	\fB-ballooonforeground\fR
.fi
.IP
Specifies the foreground color of the balloon help displayed at the 
bottom center of a widget on the toolbar that has a non empty string for 
its balloonStr option. The default color is black.
.LP
.nf
Name:	\fBhelpVariable\fR
Class:	\fBHelpVariable\fR
Command-Line Switch:	\fB-helpvariable\fR
.fi
.IP
Specifies the global variable to update whenever the mouse is in motion 
over a toolbar widget. This global variable is updated with the current 
value of the active widget's helpStr. Other widgets can "watch" this 
variable with the trace command, or as is the case with entry or label 
widgets, they can set their textVariable to the same global variable. This 
allows for a simple implementation of a help status bar. Whenever the 
mouse leaves a menu entry, the helpVariable is set to the empty string {}.
.LP
.nf
Name:	\fBorient\fR
Class:	\fBOrient\fR
Command-Line Switch:	\fB-orient\fR
.fi
.IP
Specifies the orientation of the toolbar. Must be either horizontal or
vertical. 
.BE 
.SH DESCRIPTION
The \fBiwidgets::toolbar\fR command creates a new window (given by the pathName 
argument) and makes it into a \fBtoolbar\fR widget. Additional options, 
described above may be specified on the command line or in the option 
database to configure aspects of the toolbar such as its colors, font, 
and orientation. The \fBiwidgets::toolbar\fR command returns its pathName argument. At 
the time this command is invoked, there must not exist a window named 
pathName, but pathName's parent must exist. 
.PP
A \fBtoolbar\fR is a widget that displays a collection of widgets arranged 
either in a row or a column (depending on the value of the -orient option). 
This collection of widgets is usually for user convenience to give access 
to a set of commands or settings. Any widget may be placed on a toolbar. 
However, command or value-oriented widgets (such as button, radiobutton, 
etc.) are usually the most useful kind of widgets to appear on a toolbar.  
.PP
In addition, the toolbar adds two new options to all widgets that are added to
it. These are the \fBhelpStr\fR and \fBballoonStr\fR options. See the 
discussion for the widget command add below.

.SH "WIDGET-SPECIFIC METHODS"
.PP
The iwidgets::toolbar command creates a new Tcl command whose name is pathName. This
command may be used to invoke various operations on the widget. It has the
following general form:
.DS C
\fIpathName\fR \fIoption\fR \fI?arg arg ...?\fR
.DE
Option and args determine the exact behavior of the command. 
.PP
Many of the widget commands for a toolbar take as one argument an indicator of
which widget item of the toolbar to operate on. The indicator is called 
an \fBindex\fR and may be specified in any of the following forms:
.TP
\fInumber\fR
Specifies the widget numerically, where 0 corresponds to the first
widget in the notebook, 1 to the second, and so on. (For horizontal, 0 is the
leftmost; for vertical, 0 is the topmost). 
.TP
\fBend\fR
Specifes the last widget in the toolbar's index. If the toolbar is
empty this will return -1. 
.TP
\fBlast\fR
Same as end.
.TP
\fIpattern\fR
If the index doesn't satisfy any of the above forms, then this form is
used. Pattern is pattern-matched against the widgetName of each widget in the
toolbar, in order from the first to the last widget, until a matching entry is
found. An exact match must occur. 
.PP
The following commands are possible for toolbar widgets:
.TP
\fIpathName\fR \fBadd\fR \fIwidgetCommand\fR \fIwidgetName\fR \fI?option value?\fR
Adds a widget with the command widgetCommand whose name is widgetName to the
toolbar. If widgetCommand is radiobutton or checkbutton, its packing is
slightly padded to match the geometry of button widgets. In addition, the
indicatorOn option is false by default and the selectColor is that of the
toolbar background by default. This allows Radiobutton and Checkbutton widgets
to be added as icons by simply setting their bitmap or image options. If 
additional arguments are present, they are the set of available options
that the widget type of \fIwidgetCommand\fR supports. In addition they may
also be one of the following options:
.RS
.TP
\fB-helpstr\fR \fIvalue\fR
Specifes the help string to associate with the widget. When the mouse moves
over the widget, the variable denoted by \fBhelpVariable\fR is set 
to \fBhelpStr\fR. Another widget can bind to the helpVariable and thus 
track status help. 
.TP
\fB-balloonstr\fR \fIvalue\fR
Specifes the string to display in a balloon window for this widget. A 
balloon window is a small popup window centered at the bottom of the 
widget. Usually the \fBballoonStr\fR value is the name of the item on the 
toolbar. It is sometimes known as a hint window.
.IP
When the mouse moves into an item on the toolbar, a timer is set based on 
the value of \fBballoonDelay1\fR. If the mouse stays inside the item 
for \fBballoonDelay1\fR, the balloon window will pop up displaying 
the \fBballoonStr\fR value. Once the balloon window is posted, a new 
timer based on \fBballoonDelay2\fR is set. This is typically a shorter 
timer. If the mouse is moved to another item, the window is unposted and 
a new window will be posted over the item if the shorter delay time is 
satisfied. 
.IP
While the balloon window is posted, it can also be unposted if the item 
is selected. In this case the timer is reset to \fBballoonDelay1\fR. 
Whenever the mouse leaves the toolbar, the timer is also reset 
to \fBballoonDelay1\fR.
.IP
This window posting/unposting model is the same model used in the 
Windows95 environment.
.RE
.TP
\fIpathName\fR \fBcget\fR \fIoption\fR
Returns the current value of the configuration option given by \fIoption\fR.
.TP
\fIpathName\fR \fBconfigure\fR ?\fIoption\fR \fIvalue\fR?
Query or modify the configuration options of the widget. If no \fIoption\fR is
specified, returns a list describing all of the available options for pathName
(see Tk_ConfigureInfo for information on the format of this list). If 
\fIoption\fR is specified with no value, 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 option is specified). If one or more option-value 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. 
.TP
\fIpathName\fR \fBdelete\fR \fIindex\fR ?\fIindex2\fR?
This command deletes all items between \fIindex\fR and \fIindex2\fR 
inclusive. If \fIindex2\fR is omitted then it defaults to \fIindex\fR. 
Returns an empty string. 
.TP
\fIpathName\fR \fBindex\fR \fIindex\fR
Returns the widget's numerical index for the entry corresponding 
to \fIindex\fR. If \fIindex\fR is not found, -1 is returned. 
.TP
\fIpathName\fR \fBinsert\fR \fIbeforeIndex\fR \fIwidgetCommand\fR \fIwidgetName\fR \fI?option value?\fR
.TP
Insert a new item named \fIwidgetName\fR with the 
command \fIwidgetCommand\fR before the item specified by \fIbeforeIndex\fR. 
If \fIwidgetCommand\fR is \fBradiobutton\fR or \fBcheckbutton\fR, its 
packing is slightly padded to match the geometry of button widgets. In 
addition, the \fBindicatorOn\fR option is \fBfalse\fR by default and the
\fBselectColor\fR is that of the toolbar background by default. This allows
\fBRadiobutton\fR and \fBCheckbutton\fR widgets to be added as icons by 
simply setting their \fBbitmap\fR or \fBimage\fR options. The set of 
available options is the same as specified in the \fBad\fR command.
.TP
\fIpathName\fR \fBitemcget\fR \fIindex\fR \fIoption\fR
Returns the current value of the configuration option given by \fIoption\fR for
index. The item type of \fIindex\fR determines the valid available options. 
.TP
\fIpathName\fR \fBitemconfigure\fR \fIindex\fR \fI?option value?\fR
Query or modify the configuration options of the widget of the toolbar
specified by \fIindex\fR. If no option is specified, 
returns a list describing all of
the available options for \fIindex\fR 
(see \fBTk_ConfigureInfo\fR for information on the
format of this list). If \fIoption\fR is specified with no value, 
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 option is specified). If
one or more option-value 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. The item type of \fIindex\fR determines the valid
available options. The set of available options is the same as specified 
in the \fBad\fR command.
.SH EXAMPLE
.DS
 package require Iwidgets 4.0
 iwidgets::toolbar .tb -helpvariable statusVar

 .tb add button item1 \\
    -helpstr "Save It" -bitmap @./icons/Tool_32_box.xbm \\
    -balloonstr "Save" -command {puts 1}
 .tb add button item2 \\
    -helpstr "Save It" -bitmap @./icons/Tool_32_brush.xbm \\
    -balloonstr "Save" -command {puts 1}
 .tb add button item3 \\
    -helpstr "Save It" -bitmap @./icons/Tool_32_cut.xbm \\
    -balloonstr "Save" -command {puts 1}
 .tb add button item4 \\
    -helpstr "Save It" -bitmap @./icons/Tool_32_draw.xbm \\
    -balloonstr "Save" -command {puts 1}
 .tb add button item5 \\
    -bitmap @./icons/Tool_32_erase.xbm -helpstr "Play It" \\
    -command {puts 2}
 .tb add frame filler \\
    -borderwidth 1 -width 10 -height 10
 .tb add radiobutton item6 \\
    -bitmap @./icons/Tool_32_oval.xbm -command {puts 4} \\
    -variable result -value OPEN -helpstr "Radio Button # 1" \\
    -balloonstr "Radio"
 .tb add radiobutton item7 \\
    -bitmap @./icons/Tool_32_line.xbm -command {puts 5} \\
    -variable result -value CLOSED
 .tb add checkbutton item8 \\
    -bitmap @./icons/Tool_32_text.xbm -command {puts 6} \\
    -variable checkit -onvalue yes -offvalue no    
 .tb add checkbutton check2 \\
    -bitmap @./icons/Tool_32_points.xbm -command {puts 7} \\
     -variable checkit2 -onvalue yes -offvalue no    

 pack .tb -side top -anchor nw
.DE
.SH AUTHOR
Bill Scott
.SH KEYWORDS
toolbar, button, radiobutton, checkbutton, iwidgets, widget

