home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 November / CPNL0711.ISO / beeld / teken / scribus-1.3.3.9-win32-install.exe / tcl / tk8.4 / demos / paned2.tcl < prev    next >
Text File  |  2002-02-22  |  2KB  |  77 lines

  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: paned2.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $
  7.  
  8. if {![info exists widgetDemo]} {
  9.     error "This script should be run from the \"widget\" demo."
  10. }
  11.  
  12. set w .paned2
  13. catch {destroy $w}
  14. toplevel $w
  15. wm title $w "Vertical Paned Window Demonstration"
  16. wm iconname $w "paned2"
  17. positionWindow $w
  18.  
  19. label $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.)"
  20. pack $w.msg -side top
  21.  
  22. frame $w.buttons
  23. pack $w.buttons -side bottom -fill x -pady 2m
  24. button $w.buttons.dismiss -text Dismiss -command "destroy $w"
  25. button $w.buttons.code -text "See Code" -command "showCode $w"
  26. pack $w.buttons.dismiss $w.buttons.code -side left -expand 1
  27.  
  28. # Create the pane itself
  29. panedwindow $w.pane -orient vertical
  30. pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m
  31.  
  32. # The top window is a listbox with scrollbar
  33. set 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. }
  54. set f [frame $w.pane.top]
  55. listbox $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]
  59. scrollbar $f.scr -orient vertical -command "$f.list yview"
  60. pack $f.scr -side right -fill y
  61. pack $f.list -fill both -expand 1
  62.  
  63. # The bottom window is a text widget with scrollbar
  64. set f [frame $w.pane.bottom]
  65. text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \
  66.     -width 30 -wrap none
  67. scrollbar $f.xscr -orient horizontal -command "$f.text xview"
  68. scrollbar $f.yscr -orient vertical -command "$f.text yview"
  69. grid $f.text $f.yscr -sticky nsew
  70. grid $f.xscr         -sticky nsew
  71. grid columnconfigure $f 0 -weight 1
  72. grid 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.