1# paned2.tcl --
2#
3# This demonstration script creates a toplevel window containing
4# a paned window that separates two windows vertically.
5#
6# RCS: @(#) $Id$
7
8if {![info exists widgetDemo]} {
9    error "This script should be run from the \"widget\" demo."
10}
11
12package require Tk
13
14set w .paned2
15catch {destroy $w}
16toplevel $w
17wm title $w "Vertical Paned Window Demonstration"
18wm iconname $w "paned2"
19positionWindow $w
20
21label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two scrolled windows below can be used to divide the area between them.  Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)"
22pack $w.msg -side top
23
24## See Code / Dismiss buttons
25set btns [addSeeDismiss $w.buttons $w]
26pack $btns -side bottom -fill x
27
28# Create the pane itself
29panedwindow $w.pane -orient vertical
30pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m
31
32# The top window is a listbox with scrollbar
33set paneList {
34    {List of Tk Widgets}
35    button
36    canvas
37    checkbutton
38    entry
39    frame
40    label
41    labelframe
42    listbox
43    menu
44    menubutton
45    message
46    panedwindow
47    radiobutton
48    scale
49    scrollbar
50    spinbox
51    text
52    toplevel
53}
54set f [frame $w.pane.top]
55listbox $f.list -listvariable paneList -yscrollcommand "$f.scr set"
56# Invert the first item to highlight it
57$f.list itemconfigure 0 \
58	-background [$f.list cget -fg] -foreground [$f.list cget -bg]
59scrollbar $f.scr -orient vertical -command "$f.list yview"
60pack $f.scr -side right -fill y
61pack $f.list -fill both -expand 1
62
63# The bottom window is a text widget with scrollbar
64set f [frame $w.pane.bottom]
65text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \
66	-width 30 -height 8 -wrap none
67scrollbar $f.xscr -orient horizontal -command "$f.text xview"
68scrollbar $f.yscr -orient vertical -command "$f.text yview"
69grid $f.text $f.yscr -sticky nsew
70grid $f.xscr         -sticky nsew
71grid columnconfigure $f 0 -weight 1
72grid rowconfigure    $f 0 -weight 1
73$f.text insert 1.0 "This is just a normal text widget"
74
75# Now add our contents to the paned window
76$w.pane add $w.pane.top $w.pane.bottom
77