Home › Tk Built-In Commands Tk
panedwindow
Create and manipulate 'panedwindow' split container widgets
literal type exactly as shown
argument replace with your value
?optional? may be omitted
Synopsis#
panedwindow pathName ?options?
Standard Options#
| -background | -borderwidth | -cursor |
| -orient | -relief |
See the options manual entry for details on the standard options.
Widget-specific options#
-handlepad#-
Database name handlePadDatabase class HandlePadWhen sash handles are drawn, specifies the distance from the top or left end of the sash (depending on the orientation of the widget) at which to draw the handle. May be any value accepted by
Tk_GetPixels. -handlesize#-
Database name handleSizeDatabase class HandleSizeSpecifies the side length of a sash handle. Handles are always drawn as squares. May be any value accepted by
Tk_GetPixels. -height#-
Database name heightDatabase class HeightSpecifies a desired height for the overall panedwindow widget. May be any value accepted by
Tk_GetPixels. If an empty string, the widget will be made high enough to allow all contained widgets to have their natural height. -opaqueresize#-
Database name opaqueResizeDatabase class OpaqueResizeSpecifies whether panes should be resized as a sash is moved (true), or if resizing should be deferred until the sash is placed (false). In the latter case, a “ghost” version of the sash is displayed during the resizing to show where the panes will be resized to when releasing the mouse button. This “ghost” version of the sash is the proxy. It's rendering can be configured using the
-proxybackground,-proxyborderwidthand-proxyreliefoptions. -proxybackground#-
Database name proxyBackgroundDatabase class ProxyBackgroundBackground color to use when drawing the proxy. If an empty string, the value of the
-backgroundoption will be used. -proxyborderwidth#-
Database name proxyBorderWidthDatabase class ProxyBorderWidthSpecifies the borderwidth of the proxy. May be any value accepted by
Tk_GetPixels. -proxyrelief#-
Database name proxyReliefDatabase class ProxyReliefRelief to use when drawing the proxy. May be any of the standard Tk relief values. If an empty string, the value of the
-sashreliefoption will be used. -sashcursor#-
Database name sashCursorDatabase class SashCursorMouse cursor to use when over a sash. If null,
sb_h_double_arrowwill be used for horizontal panedwindows, andsb_v_double_arrowwill be used for vertical panedwindows. -sashpad#-
Database name sashPadDatabase class SashPadSpecifies the amount of padding to leave of each side of a sash. May be any value accepted by
Tk_GetPixels. -sashrelief#-
Database name sashReliefDatabase class SashReliefRelief to use when drawing a sash. May be any of the standard Tk relief values.
-sashwidth#-
Database name sashWidthDatabase class SashWidthSpecifies the width of each sash. May be any value accepted by
Tk_GetPixels. -showhandle#-
Database name showHandleDatabase class ShowHandleSpecifies whether sash handles should be shown. May be any valid Tcl boolean value.
-width#-
Database name widthDatabase class WidthSpecifies a desired width for the overall panedwindow widget. May be any value accepted by
Tk_GetPixels. If an empty string, the widget will be made wide enough to allow all contained widgets to have their natural width.
Description#
The panedwindow command creates a new window (given by the pathName argument) and makes it into a panedwindow widget. Additional options, described above, may be specified on the command line or in the option database to configure aspects of the panedwindow such as its default background color and relief. The panedwindow command returns the path name of the new window.
A panedwindow widget contains any number of panes, arranged horizontally or vertically, according to the value of the -orient option. Each pane contains one widget, and each pair of panes is separated by a moveable (via mouse movements) sash. Moving a sash causes the widgets on either side of the sash to be resized.
Widget command#
The panedwindow command creates a new Tcl command whose name is the same as the path name of the panedwindow's window. This command may be used to invoke various operations on the widget. It has the following general form:
pathName option ?arg ...?
PathName is the name of the command, which is the same as the panedwindow widget's path name. Option and the args determine the exact behavior of the command. The following commands are possible for panedwindow widgets:
- pathName
addwindow ?window ...? ?option value ...? -
Add one or more windows to the panedwindow, each in a separate pane. The arguments consist of the names of one or more windows followed by pairs of arguments that specify how to manage the windows. Option may have any of the values accepted by the
configuresubcommand. - pathName
cgetoption -
Returns the current value of the configuration option given by option. Option may have any of the values accepted by the
panedwindowcommand. - pathName
configure?option? ?value option value ...? -
Query or modify the configuration options of the widget. If no option is specified, returns a list describing all of the available options for pathName (see
Tk_ConfigureInfofor information on the format of this list). If option 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. Option may have any of the values accepted by thepanedwindowcommand. - pathName
forgetwindow ?window ...? -
Remove the pane containing window from the panedwindow. All geometry management options for window will be forgotten.
- pathName
identifyx y -
Identify the panedwindow component underneath the point given by x and y, in window coordinates. If the point is over a sash or a sash handle, the result is a two element list containing the index of the sash or handle, and a word indicating whether it is over a sash or a handle, such as {0 sash} or {2 handle}. If the point is over any other part of the panedwindow, the result is an empty list.
- pathName
panecgetwindow option -
Query a management option for window. Option may be any value allowed by the
paneconfiguresubcommand. - pathName
paneconfigurewindow ?option? ?value option value ...? -
Query or modify the management options for window. If no option is specified, returns a list describing all of the available options for pathName (see
Tk_ConfigureInfofor information on the format of this list). If option 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 following options are supported:-afterwindow#-
Insert the window after the window specified. window should be the name of a window already managed by pathName.
-beforewindow#-
Insert the window before the window specified. window should be the name of a window already managed by pathName.
-heightsize#-
Specify a height for the window. The height will be the outer dimension of the window including its border, if any. If size is an empty string, or if
-heightis not specified, then the height requested internally by the window will be used initially; the height may later be adjusted by the movement of sashes in the panedwindow. Size may be any value accepted byTk_GetPixels. -hideboolean#-
Controls the visibility of a pane. When the boolean is true (according to
Tcl_GetBoolean) the pane will not be visible, but it will still be maintained in the list of panes. -minsizen#-
Specifies that the size of the window cannot be made less than n. This constraint only affects the size of the widget in the paned dimension — the x dimension for horizontal panedwindows, the y dimension for vertical panedwindows. May be any value accepted by
Tk_GetPixels. -padxn#-
Specifies a non-negative value indicating how much extra space to leave on each side of the window in the X-direction. The value may have any of the forms accepted by
Tk_GetPixels. -padyn#-
Specifies a non-negative value indicating how much extra space to leave on each side of the window in the Y-direction. The value may have any of the forms accepted by
Tk_GetPixels. -stickystyle#-
If a window's pane is larger than the requested dimensions of the window, this option may be used to position (or stretch) the window within its pane. Style is a string that contains zero or more of the characters
n,s,eorw. The string can optionally contains spaces or commas, but they are ignored. Each letter refers to a side (north, south, east, or west) that the window will “stick” to. If bothnands(oreandw) are specified, the window will be stretched to fill the entire height (or width) of its cavity. -stretchwhen#-
Controls how extra space is allocated to each of the panes. When is one of
always,first,last,middle, andnever. The panedwindow will calculate the required size of all its panes. Any remaining (or deficit) space will be distributed to those panes marked for stretching. The space will be distributed based on each panes current ratio of the whole. The when values have the following definition:always#-
This pane will always stretch.
first#-
Only if this pane is the first pane (left-most or top-most) will it stretch.
last#-
Only if this pane is the last pane (right-most or bottom-most) will it stretch. This is the default value.
middle#-
Only if this pane is not the first or last pane will it stretch.
never#-
This pane will never stretch.
-widthsize#-
Specify a width for the window. The width will be the outer dimension of the window including its border, if any. If size is an empty string, or if
-widthis not specified, then the width requested internally by the window will be used initially; the width may later be adjusted by the movement of sashes in the panedwindow. Size may be any value accepted byTk_GetPixels.
- pathName
panes -
Returns an ordered list of the widgets managed by pathName.
- pathName
proxy?args? -
This command is used to query and change the position of the sash proxy, used for rubberband-style pane resizing. It can take any of the following forms:
- pathName
proxy coord -
Return a list containing the x and y coordinates of the most recent proxy location.
- pathName
proxy forget -
Remove the proxy from the display.
- pathName
proxy placex y -
Place the proxy at the given x and y coordinates.
- pathName
- pathName
sash?args? -
This command is used to query and change the position of sashes in the panedwindow. It can take any of the following forms:
- pathName
sash coordindex -
Return the current x and y coordinate pair for the sash given by index. Index must be an integer between 0 and 1 less than the number of panes in the panedwindow. The coordinates given are those of the top left corner of the region containing the sash.
- pathName
sash dragtoindex x y -
This command computes the difference between the given coordinates and the coordinates given to the last
sash markcommand for the given sash. It then moves that sash the computed difference. The return value is the empty string. - pathName
sash markindex x y -
Records x and y for the sash given by index; used in conjunction with later
sash dragtocommands to move the sash. - pathName
sash placeindex x y -
Place the sash given by index at the given coordinates.
- pathName
Resizing panes#
A pane is resized by grabbing the sash (or sash handle if present) and dragging with the mouse. This is accomplished via mouse motion bindings on the widget. When a sash is moved, the sizes of the panes on each side of the sash, and thus the widgets in those panes, are adjusted.
When a pane is resized from outside (e.g. it is packed to expand and fill, and the containing toplevel is resized), space is added to the final (rightmost or bottommost) pane in the window.
Unlike child windows managed by e.g. pack or grid, the panes managed by a panedwindow do not change width or height to accommodate changes in the requested widths or heights of the panes, once these have become mapped. Therefore it may be advisable, particularly when creating layouts interactively, to not add a pane to the panedwindow widget until after the geometry requests of that pane has been finalized (i.e., all components of the pane inserted, all options affecting geometry set to their proper values, etc.).
Keywords#
panedwindow · widget · geometry management
Copyright#
- Copyright © 1992 The Regents of the University of California
- Copyright © 1994-1996 Sun Microsystems, Inc