829 lines
31 KiB
Plaintext
829 lines
31 KiB
Plaintext
# This file is a Tcl script to test out the "pack" command
|
|
# of Tk. It is organized in the standard fashion for Tcl tests.
|
|
#
|
|
# Copyright (c) 1993 The Regents of the University of California.
|
|
# All rights reserved.
|
|
#
|
|
# Permission is hereby granted, without written agreement and without
|
|
# license or royalty fees, to use, copy, modify, and distribute this
|
|
# software and its documentation for any purpose, provided that the
|
|
# above copyright notice and the following two paragraphs appear in
|
|
# all copies of this software.
|
|
#
|
|
# IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
|
|
# DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
|
|
# OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
|
|
# CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
# THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
|
|
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
# AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
# ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
|
|
# PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
#
|
|
# $Header: /user6/ouster/wish/tests/RCS/pack.test,v 1.15 93/09/02 10:21:34 ouster Exp $ (Berkeley)
|
|
|
|
if {[string compare test [info procs test]] == 1} then \
|
|
{source defs}
|
|
|
|
# Utility procedures:
|
|
|
|
proc pack1 {args} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
eval pack .pack.a $args
|
|
pack .pack.b -expand yes -fill both
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b]
|
|
}
|
|
proc pack2 {args} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
eval pack .pack.a $args
|
|
update
|
|
winfo geometry .pack.a
|
|
}
|
|
proc pack3 {args} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side top
|
|
pack .pack.c -side left
|
|
eval pack .pack.b $args
|
|
update
|
|
winfo geometry .pack.b
|
|
}
|
|
proc pack4 {option value} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a $option $value
|
|
set i [pack newinfo .pack.a]
|
|
lindex $i [expr [lsearch -exact $i $option]+1]
|
|
}
|
|
|
|
# Create some test windows.
|
|
|
|
catch {destroy .pack}
|
|
toplevel .pack
|
|
wm geom .pack 300x200+0+0
|
|
wm minsize .pack 1 1
|
|
update idletasks
|
|
foreach i {a b c d} {
|
|
frame .pack.$i
|
|
label .pack.$i.label -text $i -relief raised
|
|
place .pack.$i.label -relwidth 1.0 -relheight 1.0
|
|
}
|
|
.pack.a config -width 20 -height 40
|
|
.pack.b config -width 50 -height 30
|
|
.pack.c config -width 80 -height 80
|
|
.pack.d config -width 40 -height 30
|
|
|
|
test pack-1.1 {-side option} {
|
|
pack1 -side top
|
|
} {20x40+140+0 300x160+0+40}
|
|
test pack-1.2 {-side option} {
|
|
pack1 -side bottom
|
|
} {20x40+140+160 300x160+0+0}
|
|
test pack-1.3 {-side option} {
|
|
pack1 -side left
|
|
} {20x40+0+80 280x200+20+0}
|
|
test pack-1.4 {-side option} {
|
|
pack1 -side right
|
|
} {20x40+280+80 280x200+0+0}
|
|
|
|
test pack-2.1 {x padding and filling} {
|
|
pack1 -side right -padx 20
|
|
} {20x40+260+80 240x200+0+0}
|
|
test pack-2.2 {x padding and filling} {
|
|
pack1 -side right -ipadx 20
|
|
} {60x40+240+80 240x200+0+0}
|
|
test pack-2.3 {x padding and filling} {
|
|
pack1 -side right -ipadx 5 -padx 10
|
|
} {30x40+260+80 250x200+0+0}
|
|
test pack-2.4 {x padding and filling} {
|
|
pack1 -side right -padx 20 -fill x
|
|
} {20x40+260+80 240x200+0+0}
|
|
test pack-2.5 {x padding and filling} {
|
|
pack1 -side right -ipadx 20 -fill x
|
|
} {60x40+240+80 240x200+0+0}
|
|
test pack-2.6 {x padding and filling} {
|
|
pack1 -side right -ipadx 5 -padx 10 -fill x
|
|
} {30x40+260+80 250x200+0+0}
|
|
test pack-2.7 {x padding and filling} {
|
|
pack1 -side top -padx 20
|
|
} {20x40+140+0 300x160+0+40}
|
|
test pack-2.8 {x padding and filling} {
|
|
pack1 -side top -ipadx 20
|
|
} {60x40+120+0 300x160+0+40}
|
|
test pack-2.9 {x padding and filling} {
|
|
pack1 -side top -ipadx 5 -padx 10
|
|
} {30x40+135+0 300x160+0+40}
|
|
test pack-2.10 {x padding and filling} {
|
|
pack1 -side top -padx 20 -fill x
|
|
} {260x40+20+0 300x160+0+40}
|
|
test pack-2.11 {x padding and filling} {
|
|
pack1 -side top -ipadx 20 -fill x
|
|
} {300x40+0+0 300x160+0+40}
|
|
test pack-2.12 {x padding and filling} {
|
|
pack1 -side top -ipadx 5 -padx 10 -fill x
|
|
} {280x40+10+0 300x160+0+40}
|
|
set pad [winfo pixels .pack 1c]
|
|
test pack-2.13 {x padding and filling} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -padx 1c
|
|
set x [pack newinfo .pack.a]
|
|
lindex $x [expr [lsearch -exact $x -padx]+1]
|
|
} $pad
|
|
test pack-2.14 {x padding and filling} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -ipadx 1c
|
|
set x [pack newinfo .pack.a]
|
|
lindex $x [expr [lsearch -exact $x -ipadx]+1]
|
|
} $pad
|
|
|
|
test pack-3.1 {y padding and filling} {
|
|
pack1 -side right -pady 20
|
|
} {20x40+280+80 280x200+0+0}
|
|
test pack-3.2 {y padding and filling} {
|
|
pack1 -side right -ipady 20
|
|
} {20x80+280+60 280x200+0+0}
|
|
test pack-3.3 {y padding and filling} {
|
|
pack1 -side right -ipady 5 -pady 10
|
|
} {20x50+280+75 280x200+0+0}
|
|
test pack-3.4 {y padding and filling} {
|
|
pack1 -side right -pady 20 -fill y
|
|
} {20x160+280+20 280x200+0+0}
|
|
test pack-3.5 {y padding and filling} {
|
|
pack1 -side right -ipady 20 -fill y
|
|
} {20x200+280+0 280x200+0+0}
|
|
test pack-3.6 {y padding and filling} {
|
|
pack1 -side right -ipady 5 -pady 10 -fill y
|
|
} {20x180+280+10 280x200+0+0}
|
|
test pack-3.7 {y padding and filling} {
|
|
pack1 -side top -pady 20
|
|
} {20x40+140+20 300x120+0+80}
|
|
test pack-3.8 {y padding and filling} {
|
|
pack1 -side top -ipady 20
|
|
} {20x80+140+0 300x120+0+80}
|
|
test pack-3.9 {y padding and filling} {
|
|
pack1 -side top -ipady 5 -pady 10
|
|
} {20x50+140+10 300x130+0+70}
|
|
test pack-3.10 {y padding and filling} {
|
|
pack1 -side top -pady 20 -fill y
|
|
} {20x40+140+20 300x120+0+80}
|
|
test pack-3.11 {y padding and filling} {
|
|
pack1 -side top -ipady 20 -fill y
|
|
} {20x80+140+0 300x120+0+80}
|
|
test pack-3.12 {y padding and filling} {
|
|
pack1 -side top -ipady 5 -pady 10 -fill y
|
|
} {20x50+140+10 300x130+0+70}
|
|
set pad [winfo pixels .pack 1c]
|
|
test pack-3.13 {y padding and filling} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -pady 1c
|
|
set x [pack newinfo .pack.a]
|
|
lindex $x [expr [lsearch -exact $x -pady]+1]
|
|
} $pad
|
|
test pack-3.14 {y padding and filling} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -ipady 1c
|
|
set x [pack newinfo .pack.a]
|
|
lindex $x [expr [lsearch -exact $x -ipady]+1]
|
|
} $pad
|
|
|
|
test pack-4.1 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n
|
|
} {30x70+135+20}
|
|
test pack-4.2 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne
|
|
} {30x70+260+20}
|
|
test pack-4.3 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e
|
|
} {30x70+260+65}
|
|
test pack-4.4 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se
|
|
} {30x70+260+110}
|
|
test pack-4.5 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s
|
|
} {30x70+135+110}
|
|
test pack-4.6 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw
|
|
} {30x70+10+110}
|
|
test pack-4.7 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w
|
|
} {30x70+10+65}
|
|
test pack-4.8 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw
|
|
} {30x70+10+20}
|
|
test pack-4.9 {anchors} {
|
|
pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center
|
|
} {30x70+135+65}
|
|
|
|
# Repeat above tests, but with a frame that isn't at (0,0), so that
|
|
# we can be sure that the frame offset is being added in correctly.
|
|
|
|
test pack-5.1 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n
|
|
} {60x60+160+60}
|
|
test pack-5.2 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne
|
|
} {60x60+230+60}
|
|
test pack-5.3 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e
|
|
} {60x60+230+90}
|
|
test pack-5.4 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se
|
|
} {60x60+230+120}
|
|
test pack-5.5 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s
|
|
} {60x60+160+120}
|
|
test pack-5.6 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw
|
|
} {60x60+90+120}
|
|
test pack-5.7 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w
|
|
} {60x60+90+90}
|
|
test pack-5.8 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw
|
|
} {60x60+90+60}
|
|
test pack-5.9 {more anchors} {
|
|
pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center
|
|
} {60x60+160+90}
|
|
|
|
test pack-6.1 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side left
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+0+80 50x30+20+85 80x80+70+60 40x30+150+85}
|
|
test pack-6.2 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side left -expand yes
|
|
pack .pack.b -side left
|
|
pack .pack.c .pack.d -side left -expand 1
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+18+80 50x30+56+85 80x80+124+60 40x30+241+85}
|
|
test pack-6.3 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+140+0 50x30+125+40 80x80+110+70 40x30+130+150}
|
|
test pack-6.4 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side top -expand yes
|
|
pack .pack.b -side top
|
|
pack .pack.c .pack.d -side top -expand 1
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+140+3 50x30+125+46 80x80+110+79 40x30+130+166}
|
|
test pack-6.5 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side right
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+280+80 50x30+230+85 80x80+150+60 40x30+110+85}
|
|
test pack-6.6 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side right -expand yes
|
|
pack .pack.b -side right
|
|
pack .pack.c .pack.d -side right -expand 1
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+262+80 50x30+194+85 80x80+95+60 40x30+18+85}
|
|
test pack-6.7 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side bottom
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+140+160 50x30+125+130 80x80+110+50 40x30+130+20}
|
|
test pack-6.8 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side bottom -expand yes
|
|
pack .pack.b -side bottom
|
|
pack .pack.c .pack.d -side bottom -expand 1
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {20x40+140+157 50x30+125+124 80x80+110+40 40x30+130+3}
|
|
test pack-6.9 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side bottom -expand yes -fill both
|
|
pack .pack.b -side right
|
|
pack .pack.c -side top -expand 1 -fill both
|
|
pack .pack.d -side left
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {300x65+0+135 50x30+250+52 250x105+0+0 40x30+0+105}
|
|
test pack-6.10 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side left -expand yes -fill both
|
|
pack .pack.b -side top
|
|
pack .pack.c -side right -expand 1 -fill both
|
|
pack .pack.d -side bottom
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {100x200+0+0 50x30+175+0 160x170+140+30 40x30+100+170}
|
|
test pack-6.11 {-expand option} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side left -expand yes -fill both
|
|
pack .pack.b -side top -expand yes -fill both
|
|
pack .pack.c -side right -expand 1 -fill both
|
|
pack .pack.d -side bottom -expand yes -fill both
|
|
update
|
|
list [winfo geometry .pack.a] [winfo geometry .pack.b] \
|
|
[winfo geometry .pack.c] [winfo geometry .pack.d]
|
|
} {100x200+0+0 200x100+100+0 160x100+140+100 40x100+100+100}
|
|
catch {destroy .pack2}
|
|
toplevel .pack2 -height 400 -width 400
|
|
wm geometry .pack2 +0+0
|
|
pack propagate .pack2 0
|
|
pack forget .pack2.a .pack2.b .pack2.c .pack2.d
|
|
foreach i {w1 w2 w3} {
|
|
frame .pack2.$i -width 30 -height 30 -bd 2 -relief raised
|
|
label .pack2.$i.l -text $i
|
|
place .pack2.$i.l -relwidth 1.0 -relheight 1.0
|
|
}
|
|
test pack-6.11 {-expand option} {
|
|
pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 -ipady 6 -expand 1 -side left
|
|
update
|
|
list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3]
|
|
} {38x42+47+179 38x42+180+179 38x42+314+179}
|
|
test pack-6.12 {-expand option} {
|
|
pack forget .pack2.w1 .pack2.w2 .pack2.w3
|
|
pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 \
|
|
-ipady 6 -expand 1 -side top
|
|
update
|
|
list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3]
|
|
} {38x42+181+45 38x42+181+178 38x42+181+312}
|
|
catch {destroy .pack2}
|
|
|
|
wm geometry .pack {}
|
|
test pack-7.1 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side left -padx 5 -pady 10
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {230 100}
|
|
test pack-7.2 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top -padx 5 -pady 10
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {90 260}
|
|
test pack-7.3 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side right -padx 5 -pady 10
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {230 100}
|
|
test pack-7.4 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side bottom -padx 5 -pady 10
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {90 260}
|
|
test pack-7.5 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side top -padx 5 -pady 10
|
|
pack .pack.b -side right -padx 5 -pady 10
|
|
pack .pack.c -side bottom -padx 5 -pady 10
|
|
pack .pack.d -side left -padx 5 -pady 10
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {150 210}
|
|
test pack-7.6 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side top
|
|
pack .pack.c -side left
|
|
pack .pack.d -side bottom
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {120 120}
|
|
test pack-7.7 {requesting size for parent} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side right
|
|
pack .pack.c -side bottom
|
|
pack .pack.d -side top
|
|
update
|
|
list [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
} {100 110}
|
|
|
|
|
|
# For the tests below, create a couple of "pad" windows to shrink
|
|
# the available space for the remaining windows. The tests have to
|
|
# be done this way rather than shrinking the whole window, because
|
|
# some window managers like mwm won't let a top-level window get
|
|
# very small.
|
|
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
frame .pack.right -width 200 -height 10 -bd 2 -relief raised
|
|
frame .pack.bottom -width 10 -height 150 -bd 2 -relief raised
|
|
pack .pack.right -side right
|
|
pack .pack.bottom -side bottom
|
|
pack .pack.a .pack.b .pack.c -side top
|
|
update
|
|
test pack-8.1 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+30+0 1 50x30+15+40 1 80x80+0+70 1}
|
|
wm geom .pack 270x250
|
|
update
|
|
test pack-8.2 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+25+0 1 50x30+10+40 1 70x30+0+70 1}
|
|
wm geom .pack 240x220
|
|
update
|
|
test pack-8.3 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+10+0 1 40x30+0+40 1 70x30+0+70 0}
|
|
wm geom .pack 350x350
|
|
update
|
|
test pack-8.4 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+65+0 1 50x30+50+40 1 80x80+35+70 1}
|
|
wm geom .pack {}
|
|
pack .pack.a -side left
|
|
pack .pack.b -side right
|
|
pack .pack.c -side left
|
|
update
|
|
test pack-8.5 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1}
|
|
wm geom .pack 320x180
|
|
update
|
|
test pack-8.6 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x30+0+0 1 50x30+70+0 1 50x30+20+0 1}
|
|
wm geom .pack 250x180
|
|
update
|
|
test pack-8.7 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x30+0+0 1 30x30+20+0 1 50x30+20+0 0}
|
|
pack forget .pack.b
|
|
update
|
|
test pack-8.8 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x30+0+0 1 30x30+20+0 0 30x30+20+0 1}
|
|
pack .pack.b -side right -after .pack.a
|
|
wm geom .pack {}
|
|
update
|
|
test pack-8.9 {insufficient space} {
|
|
list [winfo geometry .pack.a] [winfo ismapped .pack.a] \
|
|
[winfo geometry .pack.b] [winfo ismapped .pack.b] \
|
|
[winfo geometry .pack.c] [winfo ismapped .pack.c]
|
|
} {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1}
|
|
pack forget .pack.right .pack.bottom
|
|
|
|
test pack-10.1 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.a -after .pack.b
|
|
pack slaves .pack
|
|
} {.pack.b .pack.a .pack.c .pack.d}
|
|
test pack-10.2 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.a -after .pack.a
|
|
pack slaves .pack
|
|
} {.pack.a .pack.b .pack.c .pack.d}
|
|
test pack-10.3 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.a -before .pack.d
|
|
pack slaves .pack
|
|
} {.pack.b .pack.c .pack.a .pack.d}
|
|
test pack-10.4 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.d -before .pack.a
|
|
pack slaves .pack
|
|
} {.pack.d .pack.a .pack.b .pack.c}
|
|
test pack-10.5 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack propagate .pack.c 0
|
|
pack .pack.a -in .pack.c
|
|
list [pack slaves .pack] [pack slaves .pack.c]
|
|
} {{.pack.b .pack.c .pack.d} .pack.a}
|
|
test pack-10.6 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.a -in .pack
|
|
pack slaves .pack
|
|
} {.pack.b .pack.c .pack.d .pack.a}
|
|
test pack-10.7 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d -side top
|
|
pack .pack.a -padx 0
|
|
pack slaves .pack
|
|
} {.pack.a .pack.b .pack.c .pack.d}
|
|
test pack-10.8 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c
|
|
pack .pack.d
|
|
pack slaves .pack
|
|
} {.pack.a .pack.b .pack.c .pack.d}
|
|
test pack-10.9 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.b .pack.d .pack.c -before .pack.a
|
|
pack slaves .pack
|
|
} {.pack.b .pack.d .pack.c .pack.a}
|
|
test pack-10.10 {window ordering} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.c .pack.d .pack.b -after .pack.a
|
|
pack slaves .pack
|
|
} {.pack.a .pack.c .pack.d .pack.b}
|
|
|
|
test pack-11.1 {retaining/clearing configuration state} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \
|
|
-fill both -expand 1
|
|
pack forget .pack.a
|
|
pack .pack.a
|
|
pack newinfo .pack.a
|
|
} {-in .pack -anchor center -expand 0 -fill none -ipadx 0 -ipady 0 -padx 0 -pady 0 -side top}
|
|
test pack-11.2 {retaining/clearing configuration state} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \
|
|
-fill both -expand 1
|
|
pack .pack.a -pady 14
|
|
pack newinfo .pack.a
|
|
} {-in .pack -anchor n -expand 1 -fill both -ipadx 3 -ipady 4 -padx 1 -pady 14 -side bottom}
|
|
|
|
test pack-12.1 {info option} {
|
|
pack4 -in .pack
|
|
} .pack
|
|
test pack-12.2 {info option} {
|
|
pack4 -anchor n
|
|
} n
|
|
test pack-12.3 {info option} {
|
|
pack4 -anchor sw
|
|
} sw
|
|
test pack-12.4 {info option} {
|
|
pack4 -expand yes
|
|
} 1
|
|
test pack-12.5 {info option} {
|
|
pack4 -expand no
|
|
} 0
|
|
test pack-12.6 {info option} {
|
|
pack4 -fill x
|
|
} x
|
|
test pack-12.7 {info option} {
|
|
pack4 -fill y
|
|
} y
|
|
test pack-12.8 {info option} {
|
|
pack4 -fill both
|
|
} both
|
|
test pack-12.9 {info option} {
|
|
pack4 -fill none
|
|
} none
|
|
test pack-12.10 {info option} {
|
|
pack4 -ipadx 14
|
|
} 14
|
|
test pack-12.11 {info option} {
|
|
pack4 -ipady 22
|
|
} 22
|
|
test pack-12.12 {info option} {
|
|
pack4 -padx 2
|
|
} 2
|
|
test pack-12.13 {info option} {
|
|
pack4 -pady 3
|
|
} 3
|
|
test pack-12.14 {info option} {
|
|
pack4 -side top
|
|
} top
|
|
test pack-12.15 {info option} {
|
|
pack4 -side bottom
|
|
} bottom
|
|
test pack-12.16 {info option} {
|
|
pack4 -side left
|
|
} left
|
|
test pack-12.17 {info option} {
|
|
pack4 -side right
|
|
} right
|
|
|
|
test pack-13.1 {command options and errors} {
|
|
list [catch {pack} msg] $msg
|
|
} {1 {wrong # args: should be "pack option arg ?arg ...?"}}
|
|
test pack-13.2 {command options and errors} {
|
|
list [catch {pack foo} msg] $msg
|
|
} {1 {wrong # args: should be "pack option arg ?arg ...?"}}
|
|
test pack-13.3 {command options and errors} {
|
|
list [catch {pack configure x} msg] $msg
|
|
} {1 {bad argument "x": must be name of window}}
|
|
test pack-13.4 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack configure .pack.b .pack.c
|
|
pack slaves .pack
|
|
} {.pack.b .pack.c}
|
|
test pack-13.5 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .foo} msg] $msg
|
|
} {1 {bad window path name ".foo"}}
|
|
test pack-13.6 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack} msg] $msg
|
|
} {1 {can't pack ".pack": it's a top-level window}}
|
|
test pack-13.7 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -after .foo} msg] $msg
|
|
} {1 {bad window path name ".foo"}}
|
|
test pack-13.8 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -after .pack.b} msg] $msg
|
|
} {1 {window ".pack.b" isn't packed}}
|
|
test pack-13.9 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -anchor gorp} msg] $msg
|
|
} {1 {bad anchor position "gorp": must be n, ne, e, se, s, sw, w, nw, or center}}
|
|
test pack-13.10 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -before gorp} msg] $msg
|
|
} {1 {bad window path name "gorp"}}
|
|
test pack-13.11 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -before .pack.b} msg] $msg
|
|
} {1 {window ".pack.b" isn't packed}}
|
|
test pack-13.12 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -expand "who cares?"} msg] $msg
|
|
} {1 {expected boolean value but got "who cares?"}}
|
|
test pack-13.13 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -fill z} msg] $msg
|
|
} {1 {bad fill style "z": must be none, x, y, or both}}
|
|
test pack-13.14 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -in z} msg] $msg
|
|
} {1 {bad window path name "z"}}
|
|
set pad [winfo pixels .pack 1c]
|
|
test pack-13.15 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -padx abc} msg] $msg
|
|
} {1 {bad pad value "abc": must be positive screen distance}}
|
|
test pack-13.16 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -padx -1} msg] $msg
|
|
} {1 {bad pad value "-1": must be positive screen distance}}
|
|
test pack-13.17 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -pady abc} msg] $msg
|
|
} {1 {bad pad value "abc": must be positive screen distance}}
|
|
test pack-13.18 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -pady -1} msg] $msg
|
|
} {1 {bad pad value "-1": must be positive screen distance}}
|
|
test pack-13.19 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -ipadx abc} msg] $msg
|
|
} {1 {bad pad value "abc": must be positive screen distance}}
|
|
test pack-13.20 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -ipadx -1} msg] $msg
|
|
} {1 {bad pad value "-1": must be positive screen distance}}
|
|
test pack-13.21 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -ipady abc} msg] $msg
|
|
} {1 {bad pad value "abc": must be positive screen distance}}
|
|
test pack-13.22 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -ipady -1} msg] $msg
|
|
} {1 {bad pad value "-1": must be positive screen distance}}
|
|
test pack-13.23 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -side bac} msg] $msg
|
|
} {1 {bad side "bac": must be top, bottom, left, or right}}
|
|
test pack-13.24 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -lousy bac} msg] $msg
|
|
} {1 {unknown or ambiguous option "-lousy": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side}}
|
|
test pack-13.25 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -padx} msg] $msg
|
|
} {1 {extra option "-padx" (option with no value?)}}
|
|
test pack-13.26 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a {} 22} msg] $msg
|
|
} {1 {unknown or ambiguous option "": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side}}
|
|
test pack-13.27 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack .pack.a -in .} msg] $msg
|
|
} {1 {can't pack .pack.a inside .}}
|
|
test pack-13.28 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
frame .pack.a.a
|
|
list [catch {pack .pack.a.a -in .pack.b} msg] $msg
|
|
} {1 {can't pack .pack.a.a inside .pack.b}}
|
|
test pack-13.29 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.a .pack.b .pack.c .pack.d
|
|
pack forget .pack.a .pack.d
|
|
pack slaves .pack
|
|
} {.pack.b .pack.c}
|
|
test pack-13.30 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
.pack configure -width 300 -height 200
|
|
pack propagate .pack 0
|
|
pack .pack.a
|
|
update
|
|
set result [list [winfo reqwidth .pack] [winfo reqheight .pack]]
|
|
pack propagate .pack 1
|
|
update
|
|
lappend result [winfo reqwidth .pack] [winfo reqheight .pack]
|
|
set result
|
|
} {300 200 20 40}
|
|
test pack-13.31 {command options and errors} {
|
|
set result [pack propagate .pack.d]
|
|
pack propagate .pack.d 0
|
|
lappend result [pack propagate .pack.d]
|
|
pack propagate .pack.d 1
|
|
lappend result [pack propagate .pack.d]
|
|
set result
|
|
} {1 0 1}
|
|
test pack-13.32 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack propagate .dum} msg] $msg
|
|
} {1 {bad window path name ".dum"}}
|
|
test pack-13.33 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack propagate .pack foo} msg] $msg
|
|
} {1 {expected boolean value but got "foo"}}
|
|
test pack-13.34 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack propagate .pack foo bar} msg] $msg
|
|
} {1 {wrong # args: should be "pack propagate window ?boolean?"}}
|
|
test pack-13.35 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack slaves} msg] $msg
|
|
} {1 {wrong # args: should be "pack option arg ?arg ...?"}}
|
|
test pack-13.36 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack slaves a b} msg] $msg
|
|
} {1 {wrong # args: should be "pack slaves window"}}
|
|
test pack-13.37 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack slaves .x} msg] $msg
|
|
} {1 {bad window path name ".x"}}
|
|
test pack-13.38 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack slaves .pack.a} msg] $msg
|
|
} {0 {}}
|
|
test pack-13.39 {command options and errors} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
list [catch {pack lousy .pack} msg] $msg
|
|
} {1 {bad option "lousy": must be configure, forget, info, newinfo, propagate, or slaves}}
|
|
|
|
test pack-14.1 {window deletion} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
pack .pack.right -side right
|
|
pack .pack.bottom -side bottom
|
|
pack .pack.a .pack.d .pack.b .pack.c -side top
|
|
update
|
|
destroy .pack.d
|
|
update
|
|
set result [list [pack slaves .pack] [winfo geometry .pack.a] \
|
|
[winfo geometry .pack.b] [winfo geometry .pack.c]]
|
|
} {{.pack.right .pack.bottom .pack.a .pack.b .pack.c} 20x40+30+0 50x30+15+40 80x80+0+70}
|
|
|
|
test pack-15.1 {respond to changes in expansion} {
|
|
pack forget .pack.a .pack.b .pack.c .pack.d
|
|
wm geom .pack {}
|
|
pack .pack.a
|
|
update
|
|
set result [winfo geom .pack.a]
|
|
wm geom .pack 400x300
|
|
update
|
|
lappend result [winfo geom .pack.a]
|
|
pack .pack.a -expand true -fill both
|
|
update
|
|
lappend result [winfo geom .pack.a]
|
|
} {20x40+0+0 20x40+90+0 200x150+0+0}
|
|
|
|
destroy .pack
|
|
foreach i {pack1 pack2 pack3 pack4} {
|
|
rename $i {}
|
|
}
|