253 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			253 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
'\"
 | 
						|
'\" Copyright (c) 1990-1994 The Regents of the University of California.
 | 
						|
'\" Copyright (c) 1994-1995 Sun Microsystems, Inc.
 | 
						|
'\"
 | 
						|
'\" See the file "license.terms" for information on usage and redistribution
 | 
						|
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 | 
						|
'\" 
 | 
						|
'\" @(#) scale.n 1.28 95/09/26 16:53:06
 | 
						|
'\" 
 | 
						|
.so STk-man.macros
 | 
						|
.TH scale n 3.1 STk "Tk Built-In Commands"
 | 
						|
.BS
 | 
						|
'\" Note:  do not modify the .SH NAME line immediately below!
 | 
						|
.SH NAME
 | 
						|
scale \- Create and manipulate scale widgets
 | 
						|
.SH SYNOPSIS
 | 
						|
(\fBscale\fI \fIwidget\-name \fR?\fIoptions\fR?)
 | 
						|
.SO
 | 
						|
:activebackground	:font	:highlightthickness	:repeatinterval
 | 
						|
:background	:foreground	:orient	:takefocus
 | 
						|
:borderwidth	:highlightbackground	:relief	:troughcolor
 | 
						|
:cursor	:highlightcolor	:repeatdelay
 | 
						|
.SE
 | 
						|
.SH "WIDGET-SPECIFIC OPTIONS"
 | 
						|
.OP :bigincrement bigIncrement BigIncrement big-increment
 | 
						|
Some interactions with the scale cause its value to change by
 | 
						|
``large'' increments;  this option specifies the size of the
 | 
						|
large increments.  If specified as 0, the large increments default
 | 
						|
to 1/10 the range of the scale.
 | 
						|
.OP :command command Command command
 | 
						|
Specifies a STk command to invoke whenever the scale's
 | 
						|
value is changed via a widget command.
 | 
						|
The procedure is called with a real number indicating the
 | 
						|
new value of the scale. Example:
 | 
						|
.RS
 | 
						|
.RS
 | 
						|
(scale '.s :command (lambda (x) 
 | 
						|
                       (format #t "New position is ~S\n" x)))
 | 
						|
.RE
 | 
						|
.RE
 | 
						|
.OP :digits digits Digits digits
 | 
						|
An integer specifying how many significant digits should be retained
 | 
						|
when converting the value of the scale to a string.
 | 
						|
If the number is less than or equal to zero, then the scale picks
 | 
						|
the smallest value that guarantees that every possible slider
 | 
						|
position prints as a different string.
 | 
						|
.OP :from from From from
 | 
						|
A real value corresponding to the left or top end of the scale.
 | 
						|
.OP :label label Label label
 | 
						|
A string to display as a label for the scale.  For
 | 
						|
vertical scales the label is displayed just to the right of the
 | 
						|
top end of the scale.  For horizontal scales the label is displayed
 | 
						|
just above the left end of the scale.  If the option is specified
 | 
						|
as an empty string, no label is displayed.
 | 
						|
.OP :length length Length length
 | 
						|
Specifies the desired long dimension of the scale in screen units
 | 
						|
(i.e. any of the forms acceptable to \fBTk_GetPixels\fR).
 | 
						|
For vertical scales this is the scale's height;  for horizontal scales
 | 
						|
it is the scale's width.
 | 
						|
.OP :resolution resolution Resolution resolution
 | 
						|
A real value specifying the resolution for the scale.
 | 
						|
If this value is greater than zero then the scale's value will always be
 | 
						|
rounded to an even multiple of this value, as will tick marks and
 | 
						|
the endpoints of the scale.  If the value is less than zero then no
 | 
						|
rounding occurs.  Defaults to 1 (i.e., the value will be integral).
 | 
						|
.OP :showvalue showValue ShowValue show-value
 | 
						|
Specifies a boolean value indicating whether or not the current
 | 
						|
value of the scale is to be displayed.
 | 
						|
.OP :sliderlength sliderLength SliderLength
 | 
						|
Specifies the size of the slider, measured in screen units along the slider's
 | 
						|
long dimension.  The value may be specified in any of the forms acceptable
 | 
						|
to \fBTk_GetPixels\fR.
 | 
						|
.OP :sliderrelief sliderRelief SliderRelief slider-relief
 | 
						|
Specifies the relief to use when drawing the slider, such as \fBraised\fR
 | 
						|
or \fBsunken\fR.
 | 
						|
.OP :state state State  state
 | 
						|
Specifies one of three states for the scale:  \fB"normal"\fR,
 | 
						|
\fB"active"\fR, or \fB"disabled"\fR.
 | 
						|
If the scale is disabled then the value may not be changed and the scale
 | 
						|
won't activate.
 | 
						|
If the scale is active, the slider is displayed using the color
 | 
						|
specified by the \fBactiveBackground\fR option.
 | 
						|
.OP :tickinterval tickInterval TickInterval tick-interval
 | 
						|
Must be a real value.
 | 
						|
Determines the spacing between numerical
 | 
						|
tick marks displayed below or to the left of the slider.
 | 
						|
If 0, no tick marks will be displayed.
 | 
						|
.OP :to to To to
 | 
						|
Specifies a real value corresponding
 | 
						|
to the right or bottom end of the scale.
 | 
						|
This value may be either less than or greater than the \fBfrom\fR option.
 | 
						|
.OP :variable variable Variable variable
 | 
						|
Specifies the name of a global variable to link to the scale.  Whenever the
 | 
						|
value of the variable changes, the scale will update to reflect this
 | 
						|
value.
 | 
						|
Whenever the scale is manipulated interactively, the variable
 | 
						|
will be modified to reflect the scale's new value.
 | 
						|
.OP :width width Width width
 | 
						|
Specifies the desired narrow dimension of the trough in screen units
 | 
						|
(i.e. any of the forms acceptable to \fBTk_GetPixels\fR).
 | 
						|
For vertical scales this is the trough's width;  for horizontal scales
 | 
						|
this is the trough's height.
 | 
						|
.BE
 | 
						|
 | 
						|
.SH DESCRIPTION
 | 
						|
.PP
 | 
						|
The \fBscale\fR procedure creates a new window (given by the
 | 
						|
\fIwidget\-name\fR argument) and makes it into a scale widget.
 | 
						|
Additional
 | 
						|
options, described above, may be specified on the procedure line
 | 
						|
or in the option database
 | 
						|
to configure aspects of the scale such as its colors, orientation,
 | 
						|
and relief.  The \fBscale\fR procedure returns its
 | 
						|
\fIwidget\-name\fR argument.  At the time this procedure is invoked,
 | 
						|
there must not exist a window named \fIwidget\-name\fR, but
 | 
						|
\fIwidget\-name\fR's parent must exist.
 | 
						|
.PP
 | 
						|
A scale is a widget that displays a rectangular \fItrough\fR and a
 | 
						|
small \fIslider\fR.  The trough corresponds to a range
 | 
						|
of real values (determined by the \fBfrom\fR, \fBto\fR, and
 | 
						|
\fBresolution\fR options),
 | 
						|
and the position of the slider selects a particular real value.
 | 
						|
The slider's position (and hence the scale's value) may be adjusted
 | 
						|
with the mouse or keyboard as described in the BINDINGS
 | 
						|
section below.  Whenever the scale's value is changed, a STk
 | 
						|
procedure is invoked (using the \fBcommand\fR option) to notify
 | 
						|
other interested widgets of the change.
 | 
						|
In addition, the value
 | 
						|
of the scale can be linked to a STk variable (using the \fBvariable\fR
 | 
						|
option), so that changes in either are reflected in the other.
 | 
						|
.PP
 | 
						|
Three annotations may be displayed in a scale widget:  a label
 | 
						|
appearing at the top right of the widget (top left for horizontal
 | 
						|
scales), a number displayed just to the left of the slider
 | 
						|
(just above the slider for horizontal scales), and a collection
 | 
						|
of numerical tick marks just to the left of the current value
 | 
						|
(just below the trough for horizontal scales).  Each of these three
 | 
						|
annotations may be enabled or disabled using the
 | 
						|
configuration options.
 | 
						|
 | 
						|
.SH "WIDGET PROCEDURE"
 | 
						|
.PP
 | 
						|
The \fBscale\fR procedure creates a new STk procedure whose
 | 
						|
name is \fIwidget\-name\fR.  This
 | 
						|
procedure may be used to invoke various
 | 
						|
operations on the widget.  It has the following general form:
 | 
						|
.CS
 | 
						|
(\fIwidget\-name option \fR?\fIarg arg ...\fR?)
 | 
						|
.CE
 | 
						|
\fIOption\fR and the \fIarg\fRs
 | 
						|
determine the exact behavior of the procedure.  The following
 | 
						|
procedures are possible for scale widgets:
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBcget\fR \fIoption\fR)
 | 
						|
Returns the current value of the configuration option given
 | 
						|
by \fIoption\fR.
 | 
						|
\fIOption\fR may have any of the values accepted by the \fBscale\fR
 | 
						|
procedure.
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\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 \fIwidget\-name\fR (see \fBTk_ConfigureInfo\fR for
 | 
						|
information on the format of this list).  If \fIoption\fR is specified
 | 
						|
with no \fIvalue\fR, then the procedure returns a list describing the
 | 
						|
one named option (this list will be identical to the corresponding
 | 
						|
sublist of the value returned if no \fIoption\fR is specified).  If
 | 
						|
one or more \fIoption\-value\fR pairs are specified, then the procedure
 | 
						|
modifies the given widget option(s) to have the given value(s);  in
 | 
						|
this case the procedure returns an empty list.
 | 
						|
\fIOption\fR may have any of the values accepted by the \fBscale\fR
 | 
						|
procedure.
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBcoords \fR)
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBcoords \fR\fIvalue\fR)
 | 
						|
Returns a list whose elements are the x and y coordinates of
 | 
						|
the point along the centerline of the trough that corresponds
 | 
						|
to \fIvalue\fR.
 | 
						|
If \fIvalue\fR is omitted then the scale's current value is used.
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBget\fR)
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBget\fR \fIx y\fR)
 | 
						|
If \fIx\fR and \fIy\fR are omitted, returns the current value
 | 
						|
of the scale.  If \fIx\fR and \fIy\fR are specified, they give
 | 
						|
pixel coordinates within the widget;  the procedure returns
 | 
						|
the scale value corresponding to the given pixel.
 | 
						|
Only one of \fIx\fR or \fIy\fR is used:  for horizontal scales
 | 
						|
\fIy\fR is ignored, and for vertical scales \fIx\fR is ignored.
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBidentify\fR \fIx y\fR)
 | 
						|
Returns a string indicating what part of the scale lies under
 | 
						|
the coordinates given by \fIx\fR and \fIy\fR.
 | 
						|
A return value of \fB"slider"\fR means that the point is over
 | 
						|
the slider;  \fB"trough1"\fR means that the point is over the
 | 
						|
portion of the slider above  or to the left of the slider;
 | 
						|
and \fB"trough2"\fR means that the point is over the portion
 | 
						|
of the slider below or to the right of the slider.
 | 
						|
If the point isn't over one of these elements, an empty list
 | 
						|
is returned.
 | 
						|
.TP
 | 
						|
(\fIwidget\-name '\fBset\fR \fIvalue\fR)
 | 
						|
This procedure is invoked to change the current value of the scale,
 | 
						|
and hence the position at which the slider is displayed.  \fIValue\fR
 | 
						|
gives the new value for the scale.
 | 
						|
The procedure has no effect if the scale is disabled.
 | 
						|
 | 
						|
.SH BINDINGS
 | 
						|
.PP
 | 
						|
Tk automatically creates class bindings for scales that give them
 | 
						|
the following default behavior.
 | 
						|
Where the behavior is different for vertical and horizontal scales,
 | 
						|
the horizontal behavior is described in parentheses.
 | 
						|
.IP [1]
 | 
						|
If button 1 is pressed in the trough, the scale's value will
 | 
						|
be incremented or decremented by the value of the \fBresolution\fR
 | 
						|
option so that the slider moves in the direction of the cursor. 
 | 
						|
If the button is held down, the action auto-repeats.
 | 
						|
.IP [2]
 | 
						|
If button 1 is pressed over the slider, the slider can be dragged
 | 
						|
with the mouse.
 | 
						|
.IP [3]
 | 
						|
If button 1 is pressed in the trough with the Control key down,
 | 
						|
the slider moves all the way to the end of its range, in the
 | 
						|
direction towards the mouse cursor.
 | 
						|
.IP [4]
 | 
						|
If button 2 is pressed, the scale's value is set to the mouse
 | 
						|
position.  If the mouse is dragged with button 2 down, the scale's
 | 
						|
value changes with the drag.
 | 
						|
.IP [5]
 | 
						|
The Up and Left keys move the slider up (left) by the value
 | 
						|
of the \fBresolution\fR option.
 | 
						|
.IP [6]
 | 
						|
The Down and Right keys move the slider down (right) by the value
 | 
						|
of the \fBresolution\fR option.
 | 
						|
.IP [7]
 | 
						|
Control-Up and Control-Left move the slider up (left) by the
 | 
						|
value of the \fBbigIncrement\fR option.
 | 
						|
.IP [8]
 | 
						|
Control-Down and Control-Right move the slider down (right) by the
 | 
						|
value of the \fBbigIncrement\fR option.
 | 
						|
.IP [9]
 | 
						|
Home moves the slider to the top (left) end of its range.
 | 
						|
.IP [10]
 | 
						|
End moves the slider to the bottom (right) end of its range.
 | 
						|
.PP
 | 
						|
If the scale is disabled using the \fBstate\fR option then
 | 
						|
none of the above bindings have any effect.
 | 
						|
.PP
 | 
						|
The behavior of scales can be changed by defining new bindings for
 | 
						|
individual widgets or by redefining the class bindings.
 |