Tk::options - Standard options supported by widgets and their
manipulation
$value
=
$widget->cget('-option');
$widget->configure(-option=>value
?,-option=>value ...?);
@list
=
$widget->configure('-option');
@lol
=
$widget->configure;
All widgets, and images have a standard mechanism for setting and
querying attibutes or options. The mechanism is based on two methods
configure and cget. The behaviour of these methods is as
follows:
- $widget->configure(-option=>value
?,-option=>value ...?);
- Sets the values of -option to value for each
-option=>value pair. The internal new method does
an implicit configure in this form with options passed in at widget
create time.
- $widget->configure('-option')
- In array context returns a list of five or two elements. If -option
is an alias for another options it return a list consisting of the alias
option and the name for the option is is an alias for, e.g.,
"('-bg', 'background')". If
-option is not an alias the returned list has the following five
elements:
- Option
Name
- The value of -option, e.g., -background.
- Name
- The option's name in the option database, e.g.,
"background".
- Class
- The option's class value in the option database, e.g.,
"Background".
- Default
- The default value for the option if not specified or in the option
database, e.g., "grey".
- Value
- The current value (as returned by cget), e.g.,
"white".
- $widget->configure
- Returns a list of lists for all the options supported by
$widget. Each sub-list is in
the form returned by configure('-option'). (This mechanism
is used by the Tk::Derived class to determine the options available
from base class.)
- $widget->cget('-option')
- Returns the current value of -option for
$widget.
cget('-option') is clumsy with the need for
'' due to perl's parsing rules. Something more subtle using tie
might look better.
The following paragraphs describe the common configuration options
supported by widgets in the Tk toolkit. Every widget does not necessarily
support every option (see the the documentation entries for individual
widgets for a list of the standard options supported by that widget), but if
a widget does support an option with one of the names listed below, then the
option has exactly the effect described below.
In the descriptions below, ``Name'' refers to the option's name in
the option database. ``Class'' refers to the option's class value in the
option database. ``Switch'' refers to the switch used in widget-creation and
configure widget methods to set this value. For example, if an
option's configure option is -foreground and there exists a widget
$widget, then the call:
$widget->configure(-foreground=>'black')
may be used to specify the value black for the option in
the widget $widget. Configure
options may be abbreviated, as long as the abbreviation is unambiguous
(abbreviation is deprecated in perl/Tk).
The Name and -class options can only be specified
when a widget is created, and cannot be changed with configure. These
options determine the widget's identity and how Tk applies resource values
from the option database (see Tk::option) and so they cannot be assigned by
the options database.
- Name: name
- Switch: Name
- Specifies the path element for the widget. Names generally begin with a
lowercase letter.
Each widget has a unique pathname that follows the
hierarchy from the MainWindow to the widget itself. Since the
widget's PathName is used to assign options from the options
database, it is important to specify a distinctive Name for any
widget that will have non-default options. See Tk::option for
details.
- Name: class
- Switch: -class
- Specifies a class for the window. Classes generally begin with an
uppercase letter.
This class will be used when querying the option database for
the window's other options (see Tk::options), and it will also be used
later for other purposes such as bindings. One typically assigns a class
to a TopLevel or Frame so that the class will apply to all
of that widget's children.
These options can be set at widget creation or changed later via
configure.
- Name: activeBackground
- Class: Foreground
- Switch: -activebackground
- Specifies background color to use when drawing active elements. An element
(a widget or portion of a widget) is active if the mouse cursor is
positioned over the element and pressing a mouse button will cause some
action to occur. If strict Motif compliance has been requested by setting
the $Tk::strictMotif
variable, this option will normally be ignored; the normal background
color will be used instead. For some elements on Windows and Macintosh
systems, the active color will only be used while mouse button 1 is
pressed over the element.
- Name: activeBorderWidth
- Class: BorderWidth
- Switch: -activeborderwidth
- Specifies a non-negative value indicating the width of the 3-D border
drawn around active elements. See above for definition of active elements.
The value may have any of the forms acceptable to Tk_GetPixels.
This option is typically only available in widgets displaying more than
one element at a time (e.g. menus but not buttons).
- Name: activeForeground
- Class: Background
- Switch: -activeforeground
- Specifies foreground color to use when drawing active elements. See above
for definition of active elements.
- Name: activetile
- Class: Tile
- Switch: -activetile
- Specifies image used to display inside active elements of the widget. See
above for definition of active elements.
- Name: anchor
- Class: Anchor
- Switch: -anchor
- Specifies how the information in a widget (e.g. text or a bitmap) is to be
displayed in the widget. Must be one of the values n, ne,
e, se, s, sw, w, nw, or
center. For example, nw means display the information such
that its top-left corner is at the top-left corner of the widget.
- Name: background
- Class: Background
- Switch: -background
- Alias: -bg
- Specifies the normal background color to use when displaying the
widget.
- Name: bitmap
- Class: Bitmap
- Switch: -bitmap
- Specifies a bitmap to display in the widget, in any of the forms
acceptable to Tk_GetBitmap. The exact way in which the bitmap is
displayed may be affected by other options such as -anchor or
-justify. Typically, if this option is specified then it overrides
other options that specify a textual value to display in the widget; the
-bitmap option may be reset to an empty string to re-enable a text
display. In widgets that support both -bitmap and -image
options, -image will usually override -bitmap.
- Name: borderWidth
- Class: BorderWidth
- Switch: -borderwidth
- Alias: -bd
- Specifies a non-negative value indicating the width of the 3-D border to
draw around the outside of the widget (if such a border is being drawn;
the relief option typically determines this). The value may also be
used when drawing 3-D effects in the interior of the widget. The value may
have any of the forms acceptable to Tk_GetPixels.
- Name: compound
- Class: Compound
- Switch: -compound
- Specifies if the widget should display text and bitmaps/images at the same
time, and if so, where the bitmap/image should be placed relative to the
text. Must be one of the values none, bottom, top,
left, right, or center. For example, the (default)
value none specifies that the bitmap or image should (if defined)
be displayed instead of the text, the value left specifies that the
bitmap or image should be displayed to the left of the text, and the value
center specifies that the bitmap or image should be displayed on
top of the text.
- Name: cursor
- Class: Cursor
- Switch: -cursor
- Specifies the mouse cursor to be used for the widget. The value may have
any of the forms acceptable to Tk_GetCursor.
- Name: dash
- Class: Dash
- Switch: -dash
- The value may have any of the forms accepted by Tk_GetDash, such as
4, [6,4], ., -, -., or -...
- Name: dashoffset
- Class: Dashoffset
- Switch: -dashoffset
- Specifies the offset in the dash list where the drawing starts.
- Name: disabledForeground
- Class: DisabledForeground
- Switch: -disabledforeground
- Specifies foreground color to use when drawing a disabled element. If the
option is specified as an empty string (which is typically the case on
monochrome displays), disabled elements are drawn with the normal
foreground color but they are dimmed by drawing them with a stippled fill
pattern.
- Name: disabledtile
- Class: Tile
- Switch: -disabledtile
- Specifies image to use when drawing a disabled element.
- Name: exportSelection
- Class: ExportSelection
- Switch: -exportselection
- Specifies whether or not a selection in the widget should also be the X
selection. The value may have any of the forms accepted by
Tcl_GetBoolean, such as true, false, 0,
1, yes, or no. If the selection is exported, then
selecting in the widget deselects the current X selection, selecting
outside the widget deselects any widget selection, and the widget will
respond to selection retrieval requests when it has a selection. The
default is usually for widgets to export selections.
- Name: font
- Class: Font
- Switch: -font
- Specifies the font to use when drawing text inside the widget.
- Name: foreground
- Class: Foreground
- Switch: -foreground
- Alias: -fg
- Specifies the normal foreground color to use when displaying the
widget.
- Name: highlightBackground
- Class: HighlightBackground
- Switch: -highlightbackground
- Specifies the color to display in the traversal highlight region when the
widget does not have the input focus.
- Name: highlightColor
- Class: HighlightColor
- Switch: -highlightcolor
- Specifies the color to use for the traversal highlight rectangle that is
drawn around the widget when it has the input focus.
- Name: highlightThickness
- Class: HighlightThickness
- Switch: -highlightthickness
- Specifies a non-negative value indicating the width of the highlight
rectangle to draw around the outside of the widget when it has the input
focus. The value may have any of the forms acceptable to
Tk_GetPixels. If the value is zero, no focus highlight is drawn
around the widget.
- Name: image
- Class: Image
- Switch: -image
- Specifies an image to display in the widget, which must have been created
with an image create. (See Tk::Image for details of image creation.)
Typically, if the -image option is specified then it overrides
other options that specify a bitmap or textual value to display in the
widget; the -image option may be reset to an empty string to
re-enable a bitmap or text display.
- Name: insertBackground
- Class: Foreground
- Switch: -insertbackground
- Specifies the color to use as background in the area covered by the
insertion cursor. This color will normally override either the normal
background for the widget (or the selection background if the insertion
cursor happens to fall in the selection).
- Name: insertBorderWidth
- Class: BorderWidth
- Switch: -insertborderwidth
- Specifies a non-negative value indicating the width of the 3-D border to
draw around the insertion cursor. The value may have any of the forms
acceptable to Tk_GetPixels.
- Name: insertOffTime
- Class: OffTime
- Switch: -insertofftime
- Specifies a non-negative integer value indicating the number of
milliseconds the insertion cursor should remain ``off'' in each blink
cycle. If this option is zero then the cursor doesn't blink: it is on all
the time.
- Name: insertOnTime
- Class: OnTime
- Switch: -insertontime
- Specifies a non-negative integer value indicating the number of
milliseconds the insertion cursor should remain ``on'' in each blink
cycle.
- Name: insertWidth
- Class: InsertWidth
- Switch: -insertwidth
- Specifies a value indicating the total width of the insertion cursor. The
value may have any of the forms acceptable to Tk_GetPixels. If a
border has been specified for the insertion cursor (using the
insertBorderWidth option), the border will be drawn inside the
width specified by the insertWidth option.
- Name: jump
- Class: Jump
- Switch: -jump
- For widgets with a slider that can be dragged to adjust a value, such as
scrollbars, this option determines when notifications are made about
changes in the value. The option's value must be a boolean of the form
accepted by Tcl_GetBoolean. If the value is false, updates are made
continuously as the slider is dragged. If the value is true, updates are
delayed until the mouse button is released to end the drag; at that point
a single notification is made (the value ``jumps'' rather than changing
smoothly).
- Name: justify
- Class: Justify
- Switch: -justify
- When there are multiple lines of text displayed in a widget, this option
determines how the lines line up with each other. Must be one of
left, center, or right. Left means that the
lines' left edges all line up, center means that the lines' centers
are aligned, and right means that the lines' right edges line
up.
- Name: offset
- Class: Offset
- Switch: -offset
- Specifies the offset of tiles (see also -tile option). It can have
two different formats -offset x,y or -offset side, where
side can be n, ne, e, se, s, sw,
w, nw, or center. In the first case the origin is the
origin of the toplevel of the current window. For the canvas itself and
canvas objects the origin is the canvas origin, but putting # in
front of the coordinate pair indicates using the toplevel origin in stead.
For canvas objects, the -offset option is used for stippling as
well. For the line and polygon canvas items you can also specify an index
as argument, which connects the stipple or tile origin to one of the
coordinate points of the line/polygon.
- Name: orient
- Class: Orient
- Switch: -orient
- For widgets that can lay themselves out with either a horizontal or
vertical orientation, such as scrollbars, this option specifies which
orientation should be used. Must be either horizontal or
vertical or an abbreviation of one of these.
- Name: padX
- Class: Pad
- Switch: -padx
- Specifies a non-negative value indicating how much extra space to request
for the widget in the X-direction. The value may have any of the forms
acceptable to Tk_GetPixels. When computing how large a window it
needs, the widget will add this amount to the width it would normally need
(as determined by the width of the things displayed in the widget); if the
geometry manager can satisfy this request, the widget will end up with
extra internal space to the left and/or right of what it displays inside.
Most widgets only use this option for padding text: if they are displaying
a bitmap or image, then they usually ignore padding options.
- Name: padY
- Class: Pad
- Switch: -pady
- Specifies a non-negative value indicating how much extra space to request
for the widget in the Y-direction. The value may have any of the forms
acceptable to Tk_GetPixels. When computing how large a window it
needs, the widget will add this amount to the height it would normally
need (as determined by the height of the things displayed in the widget);
if the geometry manager can satisfy this request, the widget will end up
with extra internal space above and/or below what it displays inside. Most
widgets only use this option for padding text: if they are displaying a
bitmap or image, then they usually ignore padding options.
- Name: relief
- Class: Relief
- Switch: -relief
- Specifies the 3-D effect desired for the widget. Acceptable values are
raised, sunken, flat, ridge, solid, and
groove. The value indicates how the interior of the widget should
appear relative to its exterior; for example, raised means the
interior of the widget should appear to protrude from the screen, relative
to the exterior of the widget.
- Name: repeatDelay
- Class: RepeatDelay
- Switch: -repeatdelay
- Specifies the number of milliseconds a button or key must be held down
before it begins to auto-repeat. Used, for example, on the up- and
down-arrows in scrollbars.
- Name: repeatInterval
- Class: RepeatInterval
- Switch: -repeatinterval
- Used in conjunction with repeatDelay: once auto-repeat begins, this
option determines the number of milliseconds between auto-repeats.
- Name: selectBackground
- Class: Foreground
- Switch: -selectbackground
- Specifies the background color to use when displaying selected items.
- Name: selectBorderWidth
- Class: BorderWidth
- Switch: -selectborderwidth
- Specifies a non-negative value indicating the width of the 3-D border to
draw around selected items. The value may have any of the forms acceptable
to Tk_GetPixels.
- Name: selectForeground
- Class: Background
- Switch: -selectforeground
- Specifies the foreground color to use when displaying selected items.
- Name: setGrid
- Class: SetGrid
- Switch: -setgrid
- Specifies a boolean value that determines whether this widget controls the
resizing grid for its top-level window. This option is typically used in
text widgets, where the information in the widget has a natural size (the
size of a character) and it makes sense for the window's dimensions to be
integral numbers of these units. These natural window sizes form a grid.
If the setGrid option is set to true then the widget will
communicate with the window manager so that when the user interactively
resizes the top-level window that contains the widget, the dimensions of
the window will be displayed to the user in grid units and the window size
will be constrained to integral numbers of grid units. See "GRIDDED
GEOMETRY MANAGEMENT" in Tk::Wm for more details.
- Name: takeFocus
- Class: TakeFocus
- Switch: -takefocus
- Determines whether the window accepts the focus during keyboard traversal
(e.g., Tab and Shift-Tab). Before setting the focus to a window, the
traversal scripts consult the value of the takeFocus option. A
value of 0 means that the window should be skipped entirely during
keyboard traversal. 1 means that the window should receive the
input focus as long as it is viewable (it and all of its ancestors are
mapped). An empty value for the option means that the traversal scripts
make the decision about whether or not to focus on the window: the current
algorithm is to skip the window if it is disabled, if it has no key
bindings, or if it is not viewable. If the value has any other form, then
the traversal scripts take the value, append the name of the window to it
(with a separator space), and evaluate the resulting string as a Callback.
The script must return 0, 1, or an empty string: a 0
or 1 value specifies whether the window will receive the input
focus, and an empty string results in the default decision described
above. Note: this interpretation of the option is defined entirely by the
Callbacks that implement traversal: the widget implementations ignore the
option entirely, so you can change its meaning if you redefine the
keyboard traversal scripts.
- Name: text
- Class: Text
- Switch: -text
- Specifies a string to be displayed inside the widget. The way in which the
string is displayed depends on the particular widget and may be determined
by other options, such as anchor or justify.
- Name: textVariable
- Class: Variable
- Switch: -textvariable
- Specifies the name of a variable. The value of the variable is a text
string to be displayed inside the widget; if the variable value changes
then the widget will automatically update itself to reflect the new value.
The way in which the string is displayed in the widget depends on the
particular widget and may be determined by other options, such as
anchor or justify.
- Name: tile
- Class: Tile
- Switch: -tile
- Specifies image used to display the widget. If image is the empty string,
then the normal background color is displayed.
- Name: troughColor
- Class: Background
- Switch: -troughcolor
- Specifies the color to use for the rectangular trough areas in widgets
such as scrollbars and scales.
- Name: troughTile
- Class: Tile
- Switch: -troughtile
- Specifies image used to display in the rectangular trough areas in widgets
such as scrollbars and scales.
- Name: underline
- Class: Underline
- Switch: -underline
- Specifies the integer index of a character to underline in the widget.
This option is used by the default bindings to implement keyboard
traversal for menu buttons and menu entries. 0 corresponds to the first
character of the text displayed in the widget, 1 to the next character,
and so on.
- Name: wrapLength
- Class: WrapLength
- Switch: -wraplength
- For widgets that can perform word-wrapping, this option specifies the
maximum line length. Lines that would exceed this length are wrapped onto
the next line, so that no line is longer than the specified length. The
value may be specified in any of the standard forms for screen distances.
If this value is less than or equal to 0 then no wrapping is done: lines
will break only at newline characters in the text.
- Name: xScrollCommand
- Class: ScrollCommand
- Switch: -xscrollcommand
- Specifies a callback used to communicate with horizontal scrollbars. When
the view in the widget's window changes (or whenever anything else occurs
that could change the display in a scrollbar, such as a change in the
total size of the widget's contents), the widget will make a callback
passing two numeric arguments in addition to any specified in the
callback. Each of the numbers is a fraction between 0 and 1, which
indicates a position in the document. 0 indicates the beginning of the
document, 1 indicates the end, .333 indicates a position one third the way
through the document, and so on. The first fraction indicates the first
information in the document that is visible in the window, and the second
fraction indicates the information just after the last portion that is
visible. Typically the xScrollCommand option consists of the
scrollbar widget object and the method ``set'' i.e. [set =>
$sb]: this will cause the
scrollbar to be updated whenever the view in the window changes. If this
option is not specified, then no command will be executed.
- Name: yScrollCommand
- Class: ScrollCommand
- Switch: -yscrollcommand
- Specifies a calback used to communicate with vertical scrollbars. This
option is treated in the same way as the xScrollCommand option,
except that it is used for vertical scrollbars and is provided by widgets
that support vertical scrolling. See the description of
xScrollCommand for details on how this option is used.
Tk::option Tk::callbacks Tk::ConfigSpecs Tk_GetPixels
class, name, standard option, switch