summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/Spinbox.pod')
-rw-r--r--Master/tlpkg/tlperl/lib/Tk/Spinbox.pod819
1 files changed, 819 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod b/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod
new file mode 100644
index 00000000000..b18b7e1b9ae
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Tk/Spinbox.pod
@@ -0,0 +1,819 @@
+# Copyright (c) 2000 Jeffrey Hobbs.
+# Copyright (c) 2000 Ajuba Solutions.
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+# RCS: @(#) $Id: spinbox.n,v 1.3 2001/12/18 23:02:35 hobbs Exp $
+
+=head1 NAME
+
+Tk::Spinbox - Create and manipulate Spinbox widgets
+
+=for category Tk Generic Methods
+
+=head1 SYNOPSIS
+
+I<$spinbox> = I<$parent>-E<gt>Spinbox(?I<options>?);
+
+ -activebackground -highlightthickness -repeatinterval
+ -background -insertbackground -selectbackground
+ -borderwidth -insertborderwidth -selectborderwidth
+ -cursor -insertontime -selectforeground
+ -exportselection -insertwidth -takefocus
+ -font -insertofftime -textvariable
+ -foreground -justify -xscrollcommand
+ -highlightbackground -relief
+ -highlightcolor -repeatdelay
+
+=head1 WIDGET-SPECIFIC OPTIONS
+
+=over 4
+
+=item Option: B<-buttonbackground>
+
+=item Name: B<buttonBackground>
+
+=item Class: B<Background>
+
+The background color to be used for the spin buttons.
+
+=item Option: B<-buttoncursor>
+
+=item Name: B<buttonCursor>
+
+=item Class: B<Cursor>
+
+The cursor to be used when over the spin buttons. If this is empty
+(the default), a default cursor will be used.
+
+=item Option: B<-buttondownrelief>
+
+=item Name: B<buttonDownRelief>
+
+=item Class: B<Relief>
+
+The relief to be used for the upper spin button.
+
+=item Option: B<-buttonuprelief>
+
+=item Name: B<buttonUpRelief>
+
+=item Class: B<Relief>
+
+The relief to be used for the lower spin button.
+
+=item Option: B<-command>
+
+=item Name: B<command>
+
+=item Class: B<Command>
+
+Specifies a Perl/Tk callback to invoke whenever a Spinbutton is invoked.
+The callback has these two arguments I<appended> to any existing callback
+arguments: the current value of the widget and the direction of the button
+press (B<up> or B<down>).
+
+=item Option: B<-disabledbackground>
+
+=item Name: B<disabledBackground>
+
+=item Class: B<DisabledBackground>
+
+Specifies the background color to use when the Spinbox is disabled. If
+this option is the empty string, the normal background color is used.
+
+=item Option: B<-disabledforeground>
+
+=item Name: B<disabledForeground>
+
+=item Class: B<DisabledForeground>
+
+Specifies the foreground color to use when the Spinbox is disabled. If
+this option is the empty string, the normal foreground color is used.
+
+=item Option: B<-format>
+
+=item Name: B<format>
+
+=item Class: B<Format>
+
+Specifies an alternate format to use when setting the string value
+when using the B<-from> and B<-to> range.
+This must be a format specifier of the form B<%E<lt>padE<gt>.E<lt>padE<gt>f>,
+as it will format a floating-point number.
+
+=item Option: B<-from>
+
+=item Name: B<from>
+
+=item Class: B<From>
+
+A floating-point value corresponding to the lowest value for a Spinbox, to
+be used in conjunction with B<-to> and B<-increment>. When all
+are specified correctly, the Spinbox will use these values to control its
+contents. This value must be less than the B<-to> option.
+If B<-values> is specified, it supercedes this option.
+
+=item Option: B<-invalidcommand>
+
+=item Alias: B<-invcmd>
+
+=item Name: B<invalidCommand>
+
+=item Class: B<InvalidCommand>
+
+Specifies a script to eval when B<validateCommand> returns 0. Setting
+it to an empty string disables this feature (the default). The best use of
+this option is to set it to I<bell>. See B<Validation> below for
+more information.
+
+=item Option: B<-increment>
+
+=item Name: B<increment>
+
+=item Class: B<Increment>
+
+A floating-point value specifying the increment. When used with
+B<-from> and B<-to>, the value in the widget will be adjusted by
+B<-increment> when a spin button is pressed (up adds the value,
+down subtracts the value).
+
+=item Option: B<-readonlybackground>
+
+=item Name: B<readonlyBackground>
+
+=item Class: B<ReadonlyBackground>
+
+Specifies the background color to use when the Spinbox is readonly. If
+this option is the empty string, the normal background color is used.
+
+=item Option: B<-state>
+
+=item Name: B<state>
+
+=item Class: B<State>
+
+Specifies one of three states for the Spinbox: B<normal>,
+B<disabled>, or B<readonly>. If the Spinbox is readonly, then the
+value may not be changed using methods and no insertion cursor
+will be displayed, even if the input focus is in the widget; the
+contents of the widget may still be selected. If the Spinbox is
+disabled, the value may not be changed, no insertion cursor will be
+displayed, the contents will not be selectable, and the Spinbox may
+be displayed in a different color, depending on the values of the
+B<-disabledforeground> and B<-disabledbackground> options.
+
+=item Option: B<-to>
+
+=item Name: B<to>
+
+=item Class: B<To>
+
+A floating-point value corresponding to the highest value for the Spinbox,
+to be used in conjunction with B<-from> and B<-increment>. When
+all are specified correctly, the Spinbox will use these values to control
+its contents. This value must be greater than the B<-from> option.
+If B<-values> is specified, it supercedes this option.
+
+=item Option: B<-validate>
+
+=item Name: B<validate>
+
+=item Class: B<Validate>
+
+Specifies the mode in which validation should operate: B<none>,
+B<focus>, B<focusin>, B<focusout>, B<key>, or B<all>.
+It defaults to B<none>. When you want validation, you must explicitly
+state which mode you wish to use. See B<Validation> below for more.
+
+=item Option: B<-validatecommand>
+
+=item Alias: B<-vcmd>
+
+=item Name: B<validateCommand>
+
+=item Class: B<ValidateCommand>
+
+Specifies a script to evaluate when you want to validate the input in the
+widget. Setting it to an empty string disables this feature (the default).
+Validation occurs according to the value of B<-validate>.
+This command must return a valid boolean value. If it returns 0 (or
+the valid boolean equivalent) then the value of the widget will not
+change and the B<invalidCommand> will be evaluated if it is set. If it
+returns 1, then value will be changed.
+See B<Validation> below for more information.
+
+=item Option: B<-values>
+
+=item Name: B<values>
+
+=item Class: B<Values>
+
+Must be a proper list value. If specified, the Spinbox will use these
+values as to control its contents, starting with the first value. This
+option has precedence over the B<-from> and B<-to> range.
+
+=item Option: B<-width>
+
+=item Name: B<width>
+
+=item Class: B<Width>
+
+Specifies an integer value indicating the desired width of the Spinbox window,
+in average-size characters of the widget's font.
+If the value is less than or equal to zero, the widget picks a
+size just large enough to hold its current text.
+
+=item Option: B<-wrap>
+
+=item Name: B<wrap>
+
+=item Class: B<Wrap>
+
+Must be a proper boolean value. If on, the Spinbox will wrap around the
+values of data in the widget.
+
+=back
+
+=head1 DESCRIPTION
+
+The B<Spinbox> method creates a new window (given by the
+$spinbox argument) and makes it into a Spinbox widget.
+Additional options, described above, may be specified on the
+command line or in the option database
+to configure aspects of the Spinbox such as its colors, font,
+and relief.
+
+A B<Spinbox> is an extended B<Entry> widget that allows he user
+to move, or spin, through a fixed set of ascending or descending values
+such as times or dates in addition to editing the value as in an
+B<entry>. When first created, a Spinbox's string is empty.
+A portion of the Spinbox may be selected as described below.
+If a Spinbox is exporting its selection (see the B<exportSelection>
+option), then it will observe the standard protocols for handling the
+selection; Spinbox selections are available as type B<STRING>.
+Spinboxes also observe the standard Tk rules for dealing with the
+input focus. When a Spinbox has the input focus it displays an
+I<insertion cursor> to indicate where new characters will be
+inserted.
+
+Spinboxes are capable of displaying strings that are too long to
+fit entirely within the widget's window. In this case, only a
+portion of the string will be displayed; commands described below
+may be used to change the view in the window. Spinboxes use
+the standard B<-xscrollcommand> mechanism for interacting with
+scrollbars (see the description of the B<-xscrollcommand> option
+for details). They also support scanning, as described below.
+
+=head1 VALIDATION
+
+Validation works by setting the B<validateCommand>
+option to a callback which will be evaluated according to the B<validate>
+option as follows:
+
+=over 4
+
+=item B<none>
+
+Default. This means no validation will occur.
+
+=item B<focus>
+
+B<validateCommand> will be called when the Spinbox receives or
+loses focus.
+
+=item B<focusin>
+
+B<validateCommand> will be called when the Spinbox receives focus.
+
+=item B<focusout>
+
+B<validateCommand> will be called when the Spinbox loses focus.
+
+=item B<key>
+
+B<validateCommand> will be called when the Spinbox is edited.
+
+=item B<all>
+
+B<validateCommand> will be called for all above conditions.
+
+
+The B<validateCommand> and B<invalidCommand> callbacks are invoked
+with at least 5 positional arguments, which are I<appended> to any already
+existing callback arguments:
+
+=over 4
+
+=item * 1
+
+The proposed value of the entry. If you are configuring the
+entry widget to have a new textVariable, this will be the value of that
+textVariable.
+
+=item * 2
+
+The characters to be added (or deleted). This will be C<undef>
+if validation is due to focus, explcit call to validate or if change
+is due to C<-textvariable> changing.
+
+=item * 3
+
+The current value of entry i.e. before the proposed change.
+
+=item * 4
+
+The index of character string to be added/deleted, if any. Otherwise -1.
+
+=item * 5
+
+Type of action. 1 == INSERT, 0 == DELETE,
+-1 if it's a forced validation or textVariable validation.
+
+=back
+
+In general, the B<textVariable> and B<validateCommand> can be
+dangerous to mix. Any problems have been overcome so that using the
+B<validateCommand> will not interfere with the traditional behavior of
+the Spinbox widget. Using the B<textVariable> for read-only purposes will
+never cause problems. The danger comes when you try set the
+B<textVariable> to something that the B<validateCommand> would not
+accept, which causes B<validate> to become I<none> (the
+B<invalidCommand> will not be triggered). The same happens
+when an error occurs evaluating the B<validateCommand>.
+
+Primarily, an error will occur when the B<validateCommand> or
+B<invalidCommand> encounters an error in its script while evaluating or
+B<validateCommand> does not return a valid boolean value. The
+B<validate> option will also set itself to B<none> when you edit the
+Spinbox widget from within either the B<validateCommand> or the
+B<invalidCommand>. Such editions will override the one that was being
+validated. If you wish to edit the value of the widget
+during validation and still have the B<validate> option set, you should
+include the command
+
+ my $val = $spinbox->cget(-validate);
+ $spinbox->configure(-validate => $val);
+
+in the B<validateCommand> or B<invalidCommand> (whichever one you
+were editing the Spinbox widget from). It is also recommended to not set an
+associated B<textVariable> during validation, as that can cause the
+Spinbox widget to become out of sync with the B<textVariable>.
+
+=back
+
+=head1 WIDGET METHODS
+
+The B<Spinbox> command creates a widget object whose
+name is $widget. This command may be used to invoke various
+operations on the widget. It has the following general form:
+
+ $widget->method(?arg arg ...?);
+
+Many of the methods for Spinboxes take one or more indices as
+arguments. An index specifies a particular character in the Spinbox's
+string, in any of the following ways:
+
+=over 4
+
+=item I<number>
+
+Specifies the character as a numerical index, where 0 corresponds
+to the first character in the string.
+
+=item B<anchor>
+
+Indicates the anchor point for the selection, which is set with the
+B<select from> and B<select adjust> methods.
+
+=item B<end>
+
+Indicates the character just after the last one in the Spinbox's string.
+This is equivalent to specifying a numerical index equal to the length
+of the Spinbox's string.
+
+=item B<insert>
+
+Indicates the character adjacent to and immediately following the
+insertion cursor.
+
+=item B<sel.first>
+
+Indicates the first character in the selection. It is an error to
+use this form if the selection isn't in the Spinbox window.
+
+=item B<sel.last>
+
+Indicates the character just after the last one in the selection.
+It is an error to use this form if the selection isn't in the
+Spinbox window.
+
+=item B<@>I<number>
+
+In this form, I<number> is treated as an x-coordinate in the
+Spinbox's window; the character spanning that x-coordinate is used.
+For example, ``B<@0>'' indicates the left-most character in the
+window.
+
+=back
+
+Abbreviations may be used for any of the forms above, e.g. ``B<e>''
+or ``B<sel.f>''. In general, out-of-range indices are automatically
+rounded to the nearest legal value.
+
+The following commands are possible for Spinbox widgets:
+
+=over 4
+
+=item I<$widget>-E<gt>B<bbox>(I<index>);
+
+Returns a list of four numbers describing the bounding box of the
+character given by I<index>.
+The first two elements of the list give the x and y coordinates of
+the upper-left corner of the screen area covered by the character
+(in pixels relative to the widget) and the last two elements give
+the width and height of the character, in pixels.
+The bounding box may refer to a region outside the visible area
+of the window.
+
+=item I<$widget>-E<gt>B<cget>(I<option>);
+
+Returns the current value of the configuration option given
+by I<option>.
+I<Option> may have any of the values accepted by the B<Spinbox>
+command.
+
+=item I<$widget>-E<gt>B<configure>(?I<option>?, ?I<value, option, value, ...>?);
+
+Query or modify the configuration options of the widget.
+If no I<option> is specified, returns a list describing all of
+the available options for $widget (see L<Tk::configure> for
+information on the format of this list). If I<option> is specified
+with no I<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 I<option> is specified). If
+one or more I<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.
+I<Option> may have any of the values accepted by the B<Spinbox>
+command.
+
+=item I<$widget>-E<gt>B<delete>(I<first, >?I<last>?);
+
+Delete one or more elements of the Spinbox.
+I<First> is the index of the first character to delete, and
+I<last> is the index of the character just after the last
+one to delete.
+If I<last> isn't specified it defaults to I<first>+1,
+i.e. a single character is deleted.
+This command returns an empty string.
+
+=item I<$widget>-E<gt>B<get>;
+
+Returns the Spinbox's string.
+
+=item I<$widget>-E<gt>B<icursor>(I<index>);
+
+Arrange for the insertion cursor to be displayed just before the character
+given by I<index>. Returns an empty string.
+
+=item I<$widget>-E<gt>B<identify>(I<x, y>);
+
+Returns the name of the window element corresponding to coordinates
+I<x> and I<y> in the Spinbox. Return value is one of:
+B<none>, B<buttondown>, B<buttonup>, B<entry>.
+
+=item I<$widget>-E<gt>B<index>(I<index>);
+
+Returns the numerical index corresponding to I<index>.
+
+=item I<$widget>-E<gt>B<insert>(I<index, string>);
+
+Insert the characters of I<string> just before the character
+indicated by I<index>. Returns an empty string.
+
+=item I<$widget>-E<gt>B<invoke>(I<element>);
+
+Causes the specified element, either B<buttondown> or B<buttonup>,
+to be invoked, triggering the action associated with it.
+
+=item I<$widget>-E<gt>B<scan>(I<option, args>);
+
+This command is used to implement scanning on Spinboxes. It has
+two forms, depending on I<option>:
+
+=over 4
+
+=item I<$widget>-E<gt>B<scanMark>(I<x>);
+
+Records I<x> and the current view in the Spinbox window; used in
+conjunction with later B<scan dragto> commands. Typically this
+command is associated with a mouse button press in the widget. It
+returns an empty string.
+
+=item I<$widget>-E<gt>B<scanDragto>(I<x>);
+
+This command computes the difference between its I<x> argument
+and the I<x> argument to the last B<scan mark> command for
+the widget. It then adjusts the view left or right by 10 times the
+difference in x-coordinates. This command is typically associated
+with mouse motion events in the widget, to produce the effect of
+dragging the Spinbox at high speed through the window. The return
+value is an empty string.
+
+=back
+
+=item I<$widget>-E<gt>B<selection>(I<option, arg>);
+
+This command is used to adjust the selection within a Spinbox. It
+has several forms, depending on I<option>:
+
+=over 4
+
+=item I<$widget>-E<gt>B<selectionAdjust>(I<index>);
+
+Locate the end of the selection nearest to the character given by
+I<index>, and adjust that end of the selection to be at I<index>
+(i.e including but not going beyond I<index>). The other
+end of the selection is made the anchor point for future
+B<select to> commands. If the selection
+isn't currently in the Spinbox, then a new selection is created to
+include the characters between I<index> and the most recent
+selection anchor point, inclusive.
+Returns an empty string.
+
+=item I<$widget>-E<gt>B<selectionClear>;
+
+Clear the selection if it is currently in this widget. If the
+selection isn't in this widget then the command has no effect.
+Returns an empty string.
+
+=item I<$widget>-E<gt>B<selectionElement>(?I<element>?);
+
+Sets or gets the currently selected element. If a spinbutton element
+is specified, it will be displayed depressed.
+
+=item I<$widget>-E<gt>B<selectionFrom>(I<index>);
+
+Set the selection anchor point to just before the character
+given by I<index>. Doesn't change the selection.
+Returns an empty string.
+
+=item I<$widget>-E<gt>B<selectionPresent>;
+
+Returns 1 if there is are characters selected in the Spinbox,
+0 if nothing is selected.
+
+=item I<$widget>-E<gt>B<selectionRange>(I<start, >I<end>);
+
+Sets the selection to include the characters starting with
+the one indexed by I<start> and ending with the one just
+before I<end>.
+If I<end> refers to the same character as I<start> or an
+earlier one, then the Spinbox's selection is cleared.
+
+=item I<$widget>-E<gt>B<selectionTo>(I<index>);
+
+If I<index> is before the anchor point, set the selection
+to the characters from I<index> up to but not including
+the anchor point.
+If I<index> is the same as the anchor point, do nothing.
+If I<index> is after the anchor point, set the selection
+to the characters from the anchor point up to but not including
+I<index>.
+The anchor point is determined by the most recent B<select from>
+or B<select adjust> command in this widget.
+If the selection isn't in this widget then a new selection is
+created using the most recent anchor point specified for the widget.
+Returns an empty string.
+
+=back
+
+=item I<$widget>-E<gt>B<set>(?I<string>?);
+
+If I<string> is specified, the Spinbox will try and set it to this
+value, otherwise it just returns the Spinbox's string.
+If validation is on, it will occur when setting the string.
+
+=item I<$widget>-E<gt>B<validate>;
+
+This command is used to force an evaluation of the B<validateCommand>
+independent of the conditions specified by the B<validate> option.
+This is done by temporarily setting the B<validate> option to B<all>.
+It returns 0 or 1.
+
+=item I<$widget>-E<gt>B<xview>(I<args>);
+
+This command is used to query and change the horizontal position of the
+text in the widget's window. It can take any of the following
+forms:
+
+=over 4
+
+=item I<$widget>-E<gt>B<xview>;
+
+Returns a list containing two elements.
+Each element is a real fraction between 0 and 1; together they describe
+the horizontal span that is visible in the window.
+For example, if the first element is .2 and the second element is .6,
+20% of the Spinbox's text is off-screen to the left, the middle 40% is visible
+in the window, and 40% of the text is off-screen to the right.
+These are the same values passed to scrollbars via the B<-xscrollcommand>
+option.
+
+=item I<$widget>-E<gt>B<xview>(I<index>);
+
+Adjusts the view in the window so that the character given by I<index>
+is displayed at the left edge of the window.
+
+=item I<$widget>-E<gt>B<xviewMoveto>(I<fraction>);
+
+Adjusts the view in the window so that the character I<fraction> of the
+way through the text appears at the left edge of the window.
+I<Fraction> must be a fraction between 0 and 1.
+
+=item I<$widget>-E<gt>B<xviewScroll>(I<number, what>);
+
+This command shifts the view in the window left or right according to
+I<number> and I<what>.
+I<Number> must be an integer.
+I<What> must be either B<units> or B<pages> or an abbreviation
+of one of these.
+If I<what> is B<units>, the view adjusts left or right by
+I<number> average-width characters on the display; if it is
+B<pages> then the view adjusts by I<number> screenfuls.
+If I<number> is negative then characters farther to the left
+become visible; if it is positive then characters farther to the right
+become visible.
+
+=back
+
+=back
+
+=head1 DEFAULT BINDINGS
+
+Tk automatically creates class bindings for Spinboxes that give them
+the following default behavior.
+In the descriptions below, ``word'' refers to a contiguous group
+of letters, digits, or ``_'' characters, or any single character
+other than these.
+
+=over 4
+
+=item [1]
+
+Clicking mouse button 1 positions the insertion cursor
+just before the character underneath the mouse cursor, sets the
+input focus to this widget, and clears any selection in the widget.
+Dragging with mouse button 1 strokes out a selection between
+the insertion cursor and the character under the mouse.
+
+=item [2]
+
+Double-clicking with mouse button 1 selects the word under the mouse
+and positions the insertion cursor at the beginning of the word.
+Dragging after a double click will stroke out a selection consisting
+of whole words.
+
+=item [3]
+
+Triple-clicking with mouse button 1 selects all of the text in the
+Spinbox and positions the insertion cursor before the first character.
+
+=item [4]
+
+The ends of the selection can be adjusted by dragging with mouse
+button 1 while the Shift key is down; this will adjust the end
+of the selection that was nearest to the mouse cursor when button
+1 was pressed.
+If the button is double-clicked before dragging then the selection
+will be adjusted in units of whole words.
+
+=item [5]
+
+Clicking mouse button 1 with the Control key down will position the
+insertion cursor in the Spinbox without affecting the selection.
+
+=item [6]
+
+If any normal printing characters are typed in a Spinbox, they are
+inserted at the point of the insertion cursor.
+
+=item [7]
+
+The view in the Spinbox can be adjusted by dragging with mouse button 2.
+If mouse button 2 is clicked without moving the mouse, the selection
+is copied into the Spinbox at the position of the mouse cursor.
+
+=item [8]
+
+If the mouse is dragged out of the Spinbox on the left or right sides
+while button 1 is pressed, the Spinbox will automatically scroll to
+make more text visible (if there is more text off-screen on the side
+where the mouse left the window).
+
+=item [9]
+
+The Left and Right keys move the insertion cursor one character to the
+left or right; they also clear any selection in the Spinbox and set
+the selection anchor.
+If Left or Right is typed with the Shift key down, then the insertion
+cursor moves and the selection is extended to include the new character.
+Control-Left and Control-Right move the insertion cursor by words, and
+Control-Shift-Left and Control-Shift-Right move the insertion cursor
+by words and also extend the selection.
+Control-b and Control-f behave the same as Left and Right, respectively.
+Meta-b and Meta-f behave the same as Control-Left and Control-Right,
+respectively.
+
+=item [10]
+
+The Home key, or Control-a, will move the insertion cursor to the
+beginning of the Spinbox and clear any selection in the Spinbox.
+Shift-Home moves the insertion cursor to the beginning of the Spinbox
+and also extends the selection to that point.
+
+=item [11]
+
+The End key, or Control-e, will move the insertion cursor to the
+end of the Spinbox and clear any selection in the Spinbox.
+Shift-End moves the cursor to the end and extends the selection
+to that point.
+
+=item [12]
+
+The Select key and Control-Space set the selection anchor to the position
+of the insertion cursor. They don't affect the current selection.
+Shift-Select and Control-Shift-Space adjust the selection to the
+current position of the insertion cursor, selecting from the anchor
+to the insertion cursor if there was not any selection previously.
+
+=item [13]
+
+Control-/ selects all the text in the Spinbox.
+
+=item [14]
+
+Control-\ clears any selection in the Spinbox.
+
+=item [15]
+
+The F16 key (labelled Copy on many Sun workstations) or Meta-w
+copies the selection in the widget to the clipboard, if there is a selection.
+
+=item [16]
+
+The F20 key (labelled Cut on many Sun workstations) or Control-w
+copies the selection in the widget to the clipboard and deletes
+the selection.
+If there is no selection in the widget then these keys have no effect.
+
+=item [17]
+
+The F18 key (labelled Paste on many Sun workstations) or Control-y
+inserts the contents of the clipboard at the position of the
+insertion cursor.
+
+=item [18]
+
+The Delete key deletes the selection, if there is one in the Spinbox.
+If there is no selection, it deletes the character to the right of
+the insertion cursor.
+
+=item [19]
+
+The BackSpace key and Control-h delete the selection, if there is one
+in the Spinbox.
+If there is no selection, it deletes the character to the left of
+the insertion cursor.
+
+=item [20]
+
+Control-d deletes the character to the right of the insertion cursor.
+
+=item [21]
+
+Meta-d deletes the word to the right of the insertion cursor.
+
+=item [22]
+
+Control-k deletes all the characters to the right of the insertion
+cursor.
+
+=item [23]
+
+Control-t reverses the order of the two characters to the right of
+the insertion cursor.
+
+If the Spinbox is disabled using the B<-state> option, then the Spinbox's
+view can still be adjusted and text in the Spinbox can still be selected,
+but no insertion cursor will be displayed and no text modifications will
+take place.
+
+The behavior of Spinboxes can be changed by defining new bindings for
+individual widgets or by redefining the class bindings.
+
+=back
+
+=head1 KEYWORDS
+
+Spinbox, Entry, widget