options(3pm)
NAME
Tk::options - Standard options supported by widgets and their
manipulation
SYNOPSIS
$value = $widget->cget('-option'); $widget->configure(-option=>value ?,-option=>value ...?); @list = $widget->configure('-option'); @lol = $widget->configure;
DESCRIPTION
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 widgetcreation 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).
- Creation options: Widget Name and Class
- 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: NameSpecifies 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: -classSpecifies 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. - Reconfigurable options
- These options can be set at widget creation or changed later via
configure. - Name: activeBackground
Class: Foreground
Switch: -activebackgroundSpecifies 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: -activeborderwidthSpecifies 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: -activeforegroundSpecifies foreground color to use when drawing active elements.
See above for definition of active elements. - Name: activetile
Class: Tile
Switch: -activetileSpecifies image used to display inside active elements of the
widget. See above for definition of active elements. - Name: anchor
Class: Anchor
Switch: -anchorSpecifies 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: -bgSpecifies the normal background color to use when displaying the
widget. - Name: bitmap
Class: Bitmap
Switch: -bitmapSpecifies 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 reenable a text display. In widgets that support both -bitmap and -image options, -image will usually override -bitmap. - Name: borderWidth
Class: BorderWidth
Switch: -borderwidth
Alias: -bdSpecifies 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: -compoundSpecifies 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: -cursorSpecifies 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: -dashThe value may have any of the forms accepted by Tk_GetDash, such as 4, [6,4], ., -, -., or -... - Name: dashoffset
Class: Dashoffset
Switch: -dashoffsetSpecifies the offset in the dash list where the drawing starts. - Name: disabledForeground
Class: DisabledForeground
Switch: -disabledforegroundSpecifies 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: -disabledtileSpecifies image to use when drawing a disabled element. - Name: exportSelection
Class: ExportSelection
Switch: -exportselectionSpecifies 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: -fontSpecifies the font to use when drawing text inside the widget. - Name: foreground
Class: Foreground
Switch: -foreground
Alias: -fgSpecifies the normal foreground color to use when displaying the
widget. - Name: highlightBackground
Class: HighlightBackground
Switch: -highlightbackgroundSpecifies the color to display in the traversal highlight region
when the widget does not have the input focus. - Name: highlightColor
Class: HighlightColor
Switch: -highlightcolorSpecifies 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: -highlightthicknessSpecifies 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: -imageSpecifies 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: -insertbackgroundSpecifies 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: -insertborderwidthSpecifies 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: -insertofftimeSpecifies 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: -insertontimeSpecifies 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: -insertwidthSpecifies 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: -jumpFor 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: -justifyWhen 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: -offsetSpecifies 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: -orientFor 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: -padxSpecifies 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: -padySpecifies 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: -reliefSpecifies 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: -repeatdelaySpecifies 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: -repeatintervalUsed in conjunction with repeatDelay: once auto-repeat begins, this option determines the number of milliseconds between autorepeats. - Name: selectBackground
Class: Foreground
Switch: -selectbackgroundSpecifies the background color to use when displaying selected
items. - Name: selectBorderWidth
Class: BorderWidth
Switch: -selectborderwidthSpecifies 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: -selectforegroundSpecifies the foreground color to use when displaying selected
items. - Name: setGrid
Class: SetGrid
Switch: -setgridSpecifies 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 toplevel 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: -takefocusDetermines 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: -textSpecifies 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: -textvariableSpecifies 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: -tileSpecifies image used to display the widget. If image is the empty
string, then the normal background color is displayed. - Name: troughColor
Class: Background
Switch: -troughcolorSpecifies the color to use for the rectangular trough areas in
widgets such as scrollbars and scales. - Name: troughTile
Class: Tile
Switch: -troughtileSpecifies image used to display in the rectangular trough areas in widgets such as scrollbars and scales. - Name: underline
Class: Underline
Switch: -underlineSpecifies 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: -wraplengthFor 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: -xscrollcommandSpecifies 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: -yscrollcommandSpecifies 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.
SEE ALSO
Tk::option Tk::callbacks Tk::ConfigSpecs Tk_GetPixels
KEYWORDS
- class, name, standard option, switch