summaryrefslogtreecommitdiffstats
path: root/library/demos
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2002-02-22 14:07:01 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2002-02-22 14:07:01 (GMT)
commit55fc45d3848765ca195aa690d8eeb9711f2ecc19 (patch)
tree51165ecdb3b3461eb8dcb9f1c5552063119464fb /library/demos
parentfceafda7d034e62bd12688c6f2a85c3dc32c67cc (diff)
downloadtk-55fc45d3848765ca195aa690d8eeb9711f2ecc19.zip
tk-55fc45d3848765ca195aa690d8eeb9711f2ecc19.tar.gz
tk-55fc45d3848765ca195aa690d8eeb9711f2ecc19.tar.bz2
Fixed panedwindow binding bugs and added demos for it too.
Diffstat (limited to 'library/demos')
-rw-r--r--library/demos/paned1.tcl34
-rw-r--r--library/demos/paned2.tcl76
-rw-r--r--library/demos/widget10
3 files changed, 117 insertions, 3 deletions
diff --git a/library/demos/paned1.tcl b/library/demos/paned1.tcl
new file mode 100644
index 0000000..dbdd582
--- /dev/null
+++ b/library/demos/paned1.tcl
@@ -0,0 +1,34 @@
+# paned1.tcl --
+#
+# This demonstration script creates a toplevel window containing
+# a paned window that separates two windows horizontally.
+#
+# RCS: @(#) $Id: paned1.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $
+
+if {![info exists widgetDemo]} {
+ error "This script should be run from the \"widget\" demo."
+}
+
+set w .paned1
+catch {destroy $w}
+toplevel $w
+wm title $w "Horizontal Paned Window Demonstration"
+wm iconname $w "paned1"
+positionWindow $w
+
+label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two coloured 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.)"
+pack $w.msg -side top
+
+frame $w.buttons
+pack $w.buttons -side bottom -fill x -pady 2m
+button $w.buttons.dismiss -text Dismiss -command "destroy $w"
+button $w.buttons.code -text "See Code" -command "showCode $w"
+pack $w.buttons.dismiss $w.buttons.code -side left -expand 1
+
+panedwindow $w.pane
+pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m
+
+label $w.pane.left -text "This is the\nleft side" -bg yellow
+label $w.pane.right -text "This is the\nright side" -bg cyan
+
+$w.pane add $w.pane.left $w.pane.right
diff --git a/library/demos/paned2.tcl b/library/demos/paned2.tcl
new file mode 100644
index 0000000..95495e6
--- /dev/null
+++ b/library/demos/paned2.tcl
@@ -0,0 +1,76 @@
+# paned2.tcl --
+#
+# This demonstration script creates a toplevel window containing
+# a paned window that separates two windows vertically.
+#
+# RCS: @(#) $Id: paned2.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $
+
+if {![info exists widgetDemo]} {
+ error "This script should be run from the \"widget\" demo."
+}
+
+set w .paned2
+catch {destroy $w}
+toplevel $w
+wm title $w "Vertical Paned Window Demonstration"
+wm iconname $w "paned2"
+positionWindow $w
+
+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.)"
+pack $w.msg -side top
+
+frame $w.buttons
+pack $w.buttons -side bottom -fill x -pady 2m
+button $w.buttons.dismiss -text Dismiss -command "destroy $w"
+button $w.buttons.code -text "See Code" -command "showCode $w"
+pack $w.buttons.dismiss $w.buttons.code -side left -expand 1
+
+# Create the pane itself
+panedwindow $w.pane -orient vertical
+pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m
+
+# The top window is a listbox with scrollbar
+set paneList {
+ {List of Tk Widgets}
+ button
+ canvas
+ checkbutton
+ entry
+ frame
+ label
+ labelframe
+ listbox
+ menu
+ menubutton
+ message
+ panedwindow
+ radiobutton
+ scale
+ scrollbar
+ spinbox
+ text
+ toplevel
+}
+set f [frame $w.pane.top]
+listbox $f.list -listvariable paneList -yscrollcommand "$f.scr set"
+# Invert the first item to highlight it
+$f.list itemconfigure 0 \
+ -background [$f.list cget -fg] -foreground [$f.list cget -bg]
+scrollbar $f.scr -orient vertical -command "$f.list yview"
+pack $f.scr -side right -fill y
+pack $f.list -fill both -expand 1
+
+# The bottom window is a text widget with scrollbar
+set f [frame $w.pane.bottom]
+text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \
+ -width 30 -wrap none
+scrollbar $f.xscr -orient horizontal -command "$f.text xview"
+scrollbar $f.yscr -orient vertical -command "$f.text yview"
+grid $f.text $f.yscr -sticky nsew
+grid $f.xscr -sticky nsew
+grid columnconfigure $f 0 -weight 1
+grid rowconfigure $f 0 -weight 1
+$f.text insert 1.0 "This is just a normal text widget"
+
+# Now add our contents to the paned window
+$w.pane add $w.pane.top $w.pane.bottom
diff --git a/library/demos/widget b/library/demos/widget
index 3b547b7..d8549c7 100644
--- a/library/demos/widget
+++ b/library/demos/widget
@@ -11,7 +11,7 @@ exec wish "$0" "$@"
# ".tcl" files is this directory, which are sourced by this script
# as needed.
#
-# RCS: @(#) $Id: widget,v 1.6 2001/11/30 11:25:41 dkf Exp $
+# RCS: @(#) $Id: widget,v 1.7 2002/02/22 14:07:01 dkf Exp $
eval destroy [winfo child .]
wm title . "Widget Demonstration"
@@ -199,8 +199,12 @@ addDemoSection "Canvases" {
cscroll "A simple scrollable canvas"
}
addDemoSection "Scales" {
- vscale "Vertical scale"
hscale "Horizontal scale"
+ vscale "Vertical scale"
+}
+addDemoSection "Paned Windows" {
+ paned1 "Horizontal paned window"
+ paned2 "Vertical paned window"
}
addDemoSection "Menus" {
menu "Menus and cascades (sub-menus)"
@@ -381,7 +385,7 @@ Copyright (c) 1996-1997 Sun Microsystems, Inc.
Copyright (c) 1997-2000 Ajuba Solutions, Inc.
-Copyright (c) 2001 Donal K. Fellows"
+Copyright (c) 2001-2002 Donal K. Fellows"
}
# Local Variables: