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