1# This file is a Tcl script to test out the "pack" command 2# of Tk. It is organized in the standard fashion for Tcl tests. 3# 4# Copyright (c) 1993 The Regents of the University of California. 5# Copyright (c) 1994 Sun Microsystems, Inc. 6# Copyright (c) 1998-1999 by Scriptics Corporation. 7# All rights reserved. 8# 9# RCS: @(#) $Id$ 10 11package require tcltest 2.1 12eval tcltest::configure $argv 13tcltest::loadTestedCommands 14 15# Utility procedures: 16 17proc pack1 {args} { 18 pack forget .pack.a .pack.b .pack.c .pack.d 19 eval pack .pack.a $args 20 pack .pack.b -expand yes -fill both 21 update 22 list [winfo geometry .pack.a] [winfo geometry .pack.b] 23} 24proc pack2 {args} { 25 pack forget .pack.a .pack.b .pack.c .pack.d 26 eval pack .pack.a $args 27 update 28 winfo geometry .pack.a 29} 30proc pack3 {args} { 31 pack forget .pack.a .pack.b .pack.c .pack.d 32 pack .pack.a -side top 33 pack .pack.c -side left 34 eval pack .pack.b $args 35 update 36 winfo geometry .pack.b 37} 38proc pack4 {option value} { 39 pack forget .pack.a .pack.b .pack.c .pack.d 40 pack .pack.a $option $value 41 set i [pack info .pack.a] 42 lindex $i [expr [lsearch -exact $i $option]+1] 43} 44 45# Create some test windows. 46 47catch {destroy .pack} 48toplevel .pack 49wm geom .pack 300x200+0+0 50wm minsize .pack 1 1 51update idletasks 52foreach i {a b c d} { 53 frame .pack.$i 54 label .pack.$i.label -text $i -relief raised 55 place .pack.$i.label -relwidth 1.0 -relheight 1.0 56} 57.pack.a config -width 20 -height 40 58.pack.b config -width 50 -height 30 59.pack.c config -width 80 -height 80 60.pack.d config -width 40 -height 30 61 62test pack-1.1 {-side option} { 63 pack1 -side top 64} {20x40+140+0 300x160+0+40} 65test pack-1.2 {-side option} { 66 pack1 -side bottom 67} {20x40+140+160 300x160+0+0} 68test pack-1.3 {-side option} { 69 pack1 -side left 70} {20x40+0+80 280x200+20+0} 71test pack-1.4 {-side option} { 72 pack1 -side right 73} {20x40+280+80 280x200+0+0} 74 75test pack-2.1 {x padding and filling} { 76 pack1 -side right -padx 20 77} {20x40+260+80 240x200+0+0} 78test pack-2.1.1 {x padding and filling} { 79 pack1 -side right -padx {10 30} 80} {20x40+250+80 240x200+0+0} 81test pack-2.1.2 {x padding and filling} { 82 pack1 -side right -padx {35 5} 83} {20x40+275+80 240x200+0+0} 84test pack-2.2 {x padding and filling} { 85 pack1 -side right -ipadx 20 86} {60x40+240+80 240x200+0+0} 87test pack-2.3 {x padding and filling} { 88 pack1 -side right -ipadx 5 -padx 10 89} {30x40+260+80 250x200+0+0} 90test pack-2.4 {x padding and filling} { 91 pack1 -side right -padx 20 -fill x 92} {20x40+260+80 240x200+0+0} 93test pack-2.4.1 {x padding and filling} { 94 pack1 -side right -padx {9 31} -fill x 95} {20x40+249+80 240x200+0+0} 96test pack-2.5 {x padding and filling} { 97 pack1 -side right -ipadx 20 -fill x 98} {60x40+240+80 240x200+0+0} 99test pack-2.6 {x padding and filling} { 100 pack1 -side right -ipadx 5 -padx 10 -fill x 101} {30x40+260+80 250x200+0+0} 102test pack-2.6.1 {x padding and filling} { 103 pack1 -side right -ipadx 5 -padx {5 15} -fill x 104} {30x40+255+80 250x200+0+0} 105test pack-2.7 {x padding and filling} { 106 pack1 -side top -padx 20 107} {20x40+140+0 300x160+0+40} 108test pack-2.7.1 {x padding and filling} { 109 pack1 -side top -padx {0 40} 110} {20x40+120+0 300x160+0+40} 111test pack-2.7.2 {x padding and filling} { 112 pack1 -side top -padx {31 9} 113} {20x40+151+0 300x160+0+40} 114test pack-2.8 {x padding and filling} { 115 pack1 -side top -ipadx 20 116} {60x40+120+0 300x160+0+40} 117test pack-2.9 {x padding and filling} { 118 pack1 -side top -ipadx 5 -padx 10 119} {30x40+135+0 300x160+0+40} 120test pack-2.9.1 {x padding and filling} { 121 pack1 -side top -ipadx 5 -padx {5 15} 122} {30x40+130+0 300x160+0+40} 123test pack-2.10 {x padding and filling} { 124 pack1 -side top -padx 20 -fill x 125} {260x40+20+0 300x160+0+40} 126test pack-2.10.1 {x padding and filling} { 127 pack1 -side top -padx {25 15} -fill x 128} {260x40+25+0 300x160+0+40} 129test pack-2.11 {x padding and filling} { 130 pack1 -side top -ipadx 20 -fill x 131} {300x40+0+0 300x160+0+40} 132test pack-2.12 {x padding and filling} { 133 pack1 -side top -ipadx 5 -padx 10 -fill x 134} {280x40+10+0 300x160+0+40} 135test pack-2.12a {x padding and filling} { 136 pack1 -side top -ipadx 5 -padx {5 15} -fill x 137} {280x40+5+0 300x160+0+40} 138set pad [winfo pixels .pack 1c] 139test pack-2.13 {x padding and filling} { 140 pack forget .pack.a .pack.b .pack.c .pack.d 141 pack .pack.a -padx 1c 142 set x [pack info .pack.a] 143 lindex $x [expr [lsearch -exact $x -padx]+1] 144} $pad 145test pack-2.14 {x padding and filling} { 146 pack forget .pack.a .pack.b .pack.c .pack.d 147 pack .pack.a -ipadx 1c 148 set x [pack info .pack.a] 149 lindex $x [expr [lsearch -exact $x -ipadx]+1] 150} $pad 151 152test pack-3.1 {y padding and filling} { 153 pack1 -side right -pady 20 154} {20x40+280+80 280x200+0+0} 155test pack-3.1.1 {y padding and filling} { 156 pack1 -side right -pady {5 35} 157} {20x40+280+65 280x200+0+0} 158test pack-3.1.2 {y padding and filling} { 159 pack1 -side right -pady {40 0} 160} {20x40+280+100 280x200+0+0} 161test pack-3.2 {y padding and filling} { 162 pack1 -side right -ipady 20 163} {20x80+280+60 280x200+0+0} 164test pack-3.3 {y padding and filling} { 165 pack1 -side right -ipady 5 -pady 10 166} {20x50+280+75 280x200+0+0} 167test pack-3.3.1 {y padding and filling} { 168 pack1 -side right -ipady 5 -pady {5 15} 169} {20x50+280+70 280x200+0+0} 170test pack-3.4 {y padding and filling} { 171 pack1 -side right -pady 20 -fill y 172} {20x160+280+20 280x200+0+0} 173test pack-3.4.1 {y padding and filling} { 174 pack1 -side right -pady {35 5} -fill y 175} {20x160+280+35 280x200+0+0} 176test pack-3.5 {y padding and filling} { 177 pack1 -side right -ipady 20 -fill y 178} {20x200+280+0 280x200+0+0} 179test pack-3.6 {y padding and filling} { 180 pack1 -side right -ipady 5 -pady 10 -fill y 181} {20x180+280+10 280x200+0+0} 182test pack-3.6.1 {y padding and filling} { 183 pack1 -side right -ipady 5 -pady {0 20} -fill y 184} {20x180+280+0 280x200+0+0} 185test pack-3.7 {y padding and filling} { 186 pack1 -side top -pady 20 187} {20x40+140+20 300x120+0+80} 188test pack-3.7.1 {y padding and filling} { 189 pack1 -side top -pady {40 0} 190} {20x40+140+40 300x120+0+80} 191test pack-3.8 {y padding and filling} { 192 pack1 -side top -ipady 20 193} {20x80+140+0 300x120+0+80} 194test pack-3.9 {y padding and filling} { 195 pack1 -side top -ipady 5 -pady 10 196} {20x50+140+10 300x130+0+70} 197test pack-3.9.1 {y padding and filling} { 198 pack1 -side top -ipady 5 -pady {3 17} 199} {20x50+140+3 300x130+0+70} 200test pack-3.10 {y padding and filling} { 201 pack1 -side top -pady 20 -fill y 202} {20x40+140+20 300x120+0+80} 203test pack-3.10.1 {y padding and filling} { 204 pack1 -side top -pady {39 1} -fill y 205} {20x40+140+39 300x120+0+80} 206test pack-3.11 {y padding and filling} { 207 pack1 -side top -ipady 20 -fill y 208} {20x80+140+0 300x120+0+80} 209test pack-3.12 {y padding and filling} { 210 pack1 -side top -ipady 5 -pady 10 -fill y 211} {20x50+140+10 300x130+0+70} 212test pack-3.12.1 {y padding and filling} { 213 pack1 -side top -ipady 5 -pady {1 19} -fill y 214} {20x50+140+1 300x130+0+70} 215set pad [winfo pixels .pack 1c] 216test pack-3.13 {y padding and filling} { 217 pack forget .pack.a .pack.b .pack.c .pack.d 218 pack .pack.a -pady 1c 219 set x [pack info .pack.a] 220 lindex $x [expr [lsearch -exact $x -pady]+1] 221} $pad 222test pack-3.14 {y padding and filling} { 223 pack forget .pack.a .pack.b .pack.c .pack.d 224 pack .pack.a -ipady 1c 225 set x [pack info .pack.a] 226 lindex $x [expr [lsearch -exact $x -ipady]+1] 227} $pad 228 229test pack-4.1 {anchors} { 230 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n 231} {30x70+135+20} 232test pack-4.2 {anchors} { 233 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne 234} {30x70+260+20} 235test pack-4.3 {anchors} { 236 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e 237} {30x70+260+65} 238test pack-4.4 {anchors} { 239 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se 240} {30x70+260+110} 241test pack-4.5 {anchors} { 242 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s 243} {30x70+135+110} 244test pack-4.6 {anchors} { 245 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw 246} {30x70+10+110} 247test pack-4.7 {anchors} { 248 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w 249} {30x70+10+65} 250test pack-4.8 {anchors} { 251 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw 252} {30x70+10+20} 253test pack-4.9 {anchors} { 254 pack2 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center 255} {30x70+135+65} 256 257# Repeat above tests, but with a frame that isn't at (0,0), so that 258# we can be sure that the frame offset is being added in correctly. 259 260test pack-5.1 {more anchors} { 261 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n 262} {60x60+160+60} 263test pack-5.2 {more anchors} { 264 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne 265} {60x60+230+60} 266test pack-5.3 {more anchors} { 267 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e 268} {60x60+230+90} 269test pack-5.4 {more anchors} { 270 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se 271} {60x60+230+120} 272test pack-5.5 {more anchors} { 273 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s 274} {60x60+160+120} 275test pack-5.6 {more anchors} { 276 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw 277} {60x60+90+120} 278test pack-5.7 {more anchors} { 279 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w 280} {60x60+90+90} 281test pack-5.8 {more anchors} { 282 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw 283} {60x60+90+60} 284test pack-5.9 {more anchors} { 285 pack3 -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center 286} {60x60+160+90} 287 288test pack-6.1 {-expand option} { 289 pack forget .pack.a .pack.b .pack.c .pack.d 290 pack .pack.a .pack.b .pack.c .pack.d -side left 291 update 292 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 293 [winfo geometry .pack.c] [winfo geometry .pack.d] 294} {20x40+0+80 50x30+20+85 80x80+70+60 40x30+150+85} 295test pack-6.2 {-expand option} { 296 pack forget .pack.a .pack.b .pack.c .pack.d 297 pack .pack.a -side left -expand yes 298 pack .pack.b -side left 299 pack .pack.c .pack.d -side left -expand 1 300 update 301 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 302 [winfo geometry .pack.c] [winfo geometry .pack.d] 303} {20x40+18+80 50x30+56+85 80x80+124+60 40x30+241+85} 304test pack-6.3 {-expand option} { 305 pack forget .pack.a .pack.b .pack.c .pack.d 306 pack .pack.a .pack.b .pack.c .pack.d -side top 307 update 308 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 309 [winfo geometry .pack.c] [winfo geometry .pack.d] 310} {20x40+140+0 50x30+125+40 80x80+110+70 40x30+130+150} 311test pack-6.4 {-expand option} { 312 pack forget .pack.a .pack.b .pack.c .pack.d 313 pack .pack.a -side top -expand yes 314 pack .pack.b -side top 315 pack .pack.c .pack.d -side top -expand 1 316 update 317 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 318 [winfo geometry .pack.c] [winfo geometry .pack.d] 319} {20x40+140+3 50x30+125+46 80x80+110+79 40x30+130+166} 320test pack-6.5 {-expand option} { 321 pack forget .pack.a .pack.b .pack.c .pack.d 322 pack .pack.a .pack.b .pack.c .pack.d -side right 323 update 324 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 325 [winfo geometry .pack.c] [winfo geometry .pack.d] 326} {20x40+280+80 50x30+230+85 80x80+150+60 40x30+110+85} 327test pack-6.6 {-expand option} { 328 pack forget .pack.a .pack.b .pack.c .pack.d 329 pack .pack.a -side right -expand yes 330 pack .pack.b -side right 331 pack .pack.c .pack.d -side right -expand 1 332 update 333 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 334 [winfo geometry .pack.c] [winfo geometry .pack.d] 335} {20x40+262+80 50x30+194+85 80x80+95+60 40x30+18+85} 336test pack-6.7 {-expand option} { 337 pack forget .pack.a .pack.b .pack.c .pack.d 338 pack .pack.a .pack.b .pack.c .pack.d -side bottom 339 update 340 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 341 [winfo geometry .pack.c] [winfo geometry .pack.d] 342} {20x40+140+160 50x30+125+130 80x80+110+50 40x30+130+20} 343test pack-6.8 {-expand option} { 344 pack forget .pack.a .pack.b .pack.c .pack.d 345 pack .pack.a -side bottom -expand yes 346 pack .pack.b -side bottom 347 pack .pack.c .pack.d -side bottom -expand 1 348 update 349 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 350 [winfo geometry .pack.c] [winfo geometry .pack.d] 351} {20x40+140+157 50x30+125+124 80x80+110+40 40x30+130+3} 352test pack-6.9 {-expand option} { 353 pack forget .pack.a .pack.b .pack.c .pack.d 354 pack .pack.a -side bottom -expand yes -fill both 355 pack .pack.b -side right 356 pack .pack.c -side top -expand 1 -fill both 357 pack .pack.d -side left 358 update 359 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 360 [winfo geometry .pack.c] [winfo geometry .pack.d] 361} {300x65+0+135 50x30+250+52 250x105+0+0 40x30+0+105} 362test pack-6.10 {-expand option} { 363 pack forget .pack.a .pack.b .pack.c .pack.d 364 pack .pack.a -side left -expand yes -fill both 365 pack .pack.b -side top 366 pack .pack.c -side right -expand 1 -fill both 367 pack .pack.d -side bottom 368 update 369 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 370 [winfo geometry .pack.c] [winfo geometry .pack.d] 371} {100x200+0+0 50x30+175+0 160x170+140+30 40x30+100+170} 372test pack-6.11 {-expand option} { 373 pack forget .pack.a .pack.b .pack.c .pack.d 374 pack .pack.a -side left -expand yes -fill both 375 pack .pack.b -side top -expand yes -fill both 376 pack .pack.c -side right -expand 1 -fill both 377 pack .pack.d -side bottom -expand yes -fill both 378 update 379 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 380 [winfo geometry .pack.c] [winfo geometry .pack.d] 381} {100x200+0+0 200x100+100+0 160x100+140+100 40x100+100+100} 382catch {destroy .pack2} 383toplevel .pack2 -height 400 -width 400 384wm geometry .pack2 +0+0 385pack propagate .pack2 0 386pack forget .pack2.a .pack2.b .pack2.c .pack2.d 387foreach i {w1 w2 w3} { 388 frame .pack2.$i -width 30 -height 30 -bd 2 -relief raised 389 label .pack2.$i.l -text $i 390 place .pack2.$i.l -relwidth 1.0 -relheight 1.0 391} 392test pack-6.12 {-expand option} { 393 pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 -ipady 6 -expand 1 -side left 394 update 395 list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3] 396} {38x42+47+179 38x42+180+179 38x42+314+179} 397test pack-6.13 {-expand option} { 398 pack forget .pack2.w1 .pack2.w2 .pack2.w3 399 pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 \ 400 -ipady 6 -expand 1 -side top 401 update 402 list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3] 403} {38x42+181+45 38x42+181+178 38x42+181+312} 404catch {destroy .pack2} 405 406wm geometry .pack {} 407test pack-7.1 {requesting size for parent} { 408 pack forget .pack.a .pack.b .pack.c .pack.d 409 pack .pack.a .pack.b .pack.c .pack.d -side left -padx 5 -pady 10 410 update 411 list [winfo reqwidth .pack] [winfo reqheight .pack] 412} {230 100} 413test pack-7.2 {requesting size for parent} { 414 pack forget .pack.a .pack.b .pack.c .pack.d 415 pack .pack.a .pack.b .pack.c .pack.d -side top -padx 5 -pady 10 416 update 417 list [winfo reqwidth .pack] [winfo reqheight .pack] 418} {90 260} 419test pack-7.3 {requesting size for parent} { 420 pack forget .pack.a .pack.b .pack.c .pack.d 421 pack .pack.a .pack.b .pack.c .pack.d -side right -padx 5 -pady 10 422 update 423 list [winfo reqwidth .pack] [winfo reqheight .pack] 424} {230 100} 425test pack-7.4 {requesting size for parent} { 426 pack forget .pack.a .pack.b .pack.c .pack.d 427 pack .pack.a .pack.b .pack.c .pack.d -side bottom -padx 5 -pady 10 428 update 429 list [winfo reqwidth .pack] [winfo reqheight .pack] 430} {90 260} 431test pack-7.5 {requesting size for parent} { 432 pack forget .pack.a .pack.b .pack.c .pack.d 433 pack .pack.a -side top -padx 5 -pady 10 434 pack .pack.b -side right -padx 5 -pady 10 435 pack .pack.c -side bottom -padx 5 -pady 10 436 pack .pack.d -side left -padx 5 -pady 10 437 update 438 list [winfo reqwidth .pack] [winfo reqheight .pack] 439} {150 210} 440test pack-7.6 {requesting size for parent} { 441 pack forget .pack.a .pack.b .pack.c .pack.d 442 pack .pack.a -side top 443 pack .pack.c -side left 444 pack .pack.d -side bottom 445 update 446 list [winfo reqwidth .pack] [winfo reqheight .pack] 447} {120 120} 448test pack-7.7 {requesting size for parent} { 449 pack forget .pack.a .pack.b .pack.c .pack.d 450 pack .pack.a -side right 451 pack .pack.c -side bottom 452 pack .pack.d -side top 453 update 454 list [winfo reqwidth .pack] [winfo reqheight .pack] 455} {100 110} 456 457 458# For the tests below, create a couple of "pad" windows to shrink 459# the available space for the remaining windows. The tests have to 460# be done this way rather than shrinking the whole window, because 461# some window managers like mwm won't let a top-level window get 462# very small. 463 464pack forget .pack.a .pack.b .pack.c .pack.d 465frame .pack.right -width 200 -height 10 -bd 2 -relief raised 466frame .pack.bottom -width 10 -height 150 -bd 2 -relief raised 467pack .pack.right -side right 468pack .pack.bottom -side bottom 469pack .pack.a .pack.b .pack.c -side top 470update 471test pack-8.1 {insufficient space} { 472 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 473 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 474 [winfo geometry .pack.c] [winfo ismapped .pack.c] 475} {20x40+30+0 1 50x30+15+40 1 80x80+0+70 1} 476wm geom .pack 270x250 477update 478test pack-8.2 {insufficient space} { 479 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 480 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 481 [winfo geometry .pack.c] [winfo ismapped .pack.c] 482} {20x40+25+0 1 50x30+10+40 1 70x30+0+70 1} 483wm geom .pack 240x220 484update 485test pack-8.3 {insufficient space} { 486 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 487 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 488 [winfo geometry .pack.c] [winfo ismapped .pack.c] 489} {20x40+10+0 1 40x30+0+40 1 70x30+0+70 0} 490wm geom .pack 350x350 491update 492test pack-8.4 {insufficient space} { 493 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 494 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 495 [winfo geometry .pack.c] [winfo ismapped .pack.c] 496} {20x40+65+0 1 50x30+50+40 1 80x80+35+70 1} 497wm geom .pack {} 498pack .pack.a -side left 499pack .pack.b -side right 500pack .pack.c -side left 501update 502test pack-8.5 {insufficient space} { 503 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 504 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 505 [winfo geometry .pack.c] [winfo ismapped .pack.c] 506} {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1} 507wm geom .pack 320x180 508update 509test pack-8.6 {insufficient space} { 510 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 511 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 512 [winfo geometry .pack.c] [winfo ismapped .pack.c] 513} {20x30+0+0 1 50x30+70+0 1 50x30+20+0 1} 514wm geom .pack 250x180 515update 516test pack-8.7 {insufficient space} { 517 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 518 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 519 [winfo geometry .pack.c] [winfo ismapped .pack.c] 520} {20x30+0+0 1 30x30+20+0 1 50x30+20+0 0} 521pack forget .pack.b 522update 523test pack-8.8 {insufficient space} { 524 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 525 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 526 [winfo geometry .pack.c] [winfo ismapped .pack.c] 527} {20x30+0+0 1 30x30+20+0 0 30x30+20+0 1} 528pack .pack.b -side right -after .pack.a 529wm geom .pack {} 530update 531test pack-8.9 {insufficient space} { 532 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 533 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 534 [winfo geometry .pack.c] [winfo ismapped .pack.c] 535} {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1} 536pack forget .pack.right .pack.bottom 537 538test pack-9.1 {window ordering} { 539 pack forget .pack.a .pack.b .pack.c .pack.d 540 pack .pack.a .pack.b .pack.c .pack.d -side top 541 pack .pack.a -after .pack.b 542 pack slaves .pack 543} {.pack.b .pack.a .pack.c .pack.d} 544test pack-9.2 {window ordering} { 545 pack forget .pack.a .pack.b .pack.c .pack.d 546 pack .pack.a .pack.b .pack.c .pack.d -side top 547 pack .pack.a -after .pack.a 548 pack slaves .pack 549} {.pack.a .pack.b .pack.c .pack.d} 550test pack-9.3 {window ordering} { 551 pack forget .pack.a .pack.b .pack.c .pack.d 552 pack .pack.a .pack.b .pack.c .pack.d -side top 553 pack .pack.a -before .pack.d 554 pack slaves .pack 555} {.pack.b .pack.c .pack.a .pack.d} 556test pack-9.4 {window ordering} { 557 pack forget .pack.a .pack.b .pack.c .pack.d 558 pack .pack.a .pack.b .pack.c .pack.d -side top 559 pack .pack.d -before .pack.a 560 pack slaves .pack 561} {.pack.d .pack.a .pack.b .pack.c} 562test pack-9.5 {window ordering} { 563 pack forget .pack.a .pack.b .pack.c .pack.d 564 pack .pack.a .pack.b .pack.c .pack.d -side top 565 pack propagate .pack.c 0 566 pack .pack.a -in .pack.c 567 list [pack slaves .pack] [pack slaves .pack.c] 568} {{.pack.b .pack.c .pack.d} .pack.a} 569test pack-9.6 {window ordering} { 570 pack forget .pack.a .pack.b .pack.c .pack.d 571 pack .pack.a .pack.b .pack.c .pack.d -side top 572 pack .pack.a -in .pack 573 pack slaves .pack 574} {.pack.b .pack.c .pack.d .pack.a} 575test pack-9.7 {window ordering} { 576 pack forget .pack.a .pack.b .pack.c .pack.d 577 pack .pack.a .pack.b .pack.c .pack.d -side top 578 pack .pack.a -padx 0 579 pack slaves .pack 580} {.pack.a .pack.b .pack.c .pack.d} 581test pack-9.8 {window ordering} { 582 pack forget .pack.a .pack.b .pack.c .pack.d 583 pack .pack.a .pack.b .pack.c 584 pack .pack.d 585 pack slaves .pack 586} {.pack.a .pack.b .pack.c .pack.d} 587test pack-9.9 {window ordering} { 588 pack forget .pack.a .pack.b .pack.c .pack.d 589 pack .pack.a .pack.b .pack.c .pack.d 590 pack .pack.b .pack.d .pack.c -before .pack.a 591 pack slaves .pack 592} {.pack.b .pack.d .pack.c .pack.a} 593test pack-9.10 {window ordering} { 594 pack forget .pack.a .pack.b .pack.c .pack.d 595 pack .pack.a .pack.b .pack.c .pack.d 596 pack .pack.a .pack.c .pack.d .pack.b -after .pack.a 597 pack slaves .pack 598} {.pack.a .pack.c .pack.d .pack.b} 599 600test pack-10.1 {retaining/clearing configuration state} { 601 pack forget .pack.a .pack.b .pack.c .pack.d 602 pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \ 603 -fill both -expand 1 604 pack forget .pack.a 605 pack .pack.a 606 pack info .pack.a 607} {-in .pack -anchor center -expand 0 -fill none -ipadx 0 -ipady 0 -padx 0 -pady 0 -side top} 608test pack-10.2 {retaining/clearing configuration state} { 609 pack forget .pack.a .pack.b .pack.c .pack.d 610 pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \ 611 -fill both -expand 1 612 pack .pack.a -pady 14 613 pack info .pack.a 614} {-in .pack -anchor n -expand 1 -fill both -ipadx 3 -ipady 4 -padx 1 -pady 14 -side bottom} 615test pack-10.3 {bad -in window does not change master} { 616 pack forget .pack.a .pack.b .pack.c .pack.d 617 list [winfo manager .pack.a] \ 618 [catch {pack .pack.a -in .pack.a} err] $err \ 619 [winfo manager .pack.a] 620} {{} 1 {can't pack .pack.a inside itself} {}} 621 622test pack-11.1 {info option} { 623 pack4 -in .pack 624} .pack 625test pack-11.2 {info option} { 626 pack4 -anchor n 627} n 628test pack-11.3 {info option} { 629 pack4 -anchor sw 630} sw 631test pack-11.4 {info option} { 632 pack4 -expand yes 633} 1 634test pack-11.5 {info option} { 635 pack4 -expand no 636} 0 637test pack-11.6 {info option} { 638 pack4 -fill x 639} x 640test pack-11.7 {info option} { 641 pack4 -fill y 642} y 643test pack-11.8 {info option} { 644 pack4 -fill both 645} both 646test pack-11.9 {info option} { 647 pack4 -fill none 648} none 649test pack-11.10 {info option} { 650 pack4 -ipadx 14 651} 14 652test pack-11.11 {info option} { 653 pack4 -ipady 22 654} 22 655test pack-11.12 {info option} { 656 pack4 -padx 2 657} 2 658test pack-11.12.1 {info option} { 659 pack4 -padx {2 9} 660} {2 9} 661test pack-11.13 {info option} { 662 pack4 -pady 3 663} 3 664test pack-11.13.1 {info option} { 665 pack4 -pady {3 11} 666} {3 11} 667test pack-11.14 {info option} { 668 pack4 -side top 669} top 670test pack-11.15 {info option} { 671 pack4 -side bottom 672} bottom 673test pack-11.16 {info option} { 674 pack4 -side left 675} left 676test pack-11.17 {info option} { 677 pack4 -side right 678} right 679 680test pack-12.1 {command options and errors} { 681 list [catch {pack} msg] $msg 682} {1 {wrong # args: should be "pack option arg ?arg ...?"}} 683test pack-12.2 {command options and errors} { 684 list [catch {pack foo} msg] $msg 685} {1 {wrong # args: should be "pack option arg ?arg ...?"}} 686test pack-12.3 {command options and errors} { 687 list [catch {pack configure x} msg] $msg 688} {1 {bad argument "x": must be name of window}} 689test pack-12.4 {command options and errors} { 690 pack forget .pack.a .pack.b .pack.c .pack.d 691 pack configure .pack.b .pack.c 692 pack slaves .pack 693} {.pack.b .pack.c} 694test pack-12.5 {command options and errors} { 695 pack forget .pack.a .pack.b .pack.c .pack.d 696 list [catch {pack .foo} msg] $msg 697} {1 {bad window path name ".foo"}} 698test pack-12.6 {command options and errors} { 699 pack forget .pack.a .pack.b .pack.c .pack.d 700 list [catch {pack .pack} msg] $msg 701} {1 {can't pack ".pack": it's a top-level window}} 702test pack-12.7 {command options and errors} { 703 pack forget .pack.a .pack.b .pack.c .pack.d 704 list [catch {pack .pack.a -after .foo} msg] $msg 705} {1 {bad window path name ".foo"}} 706test pack-12.8 {command options and errors} { 707 pack forget .pack.a .pack.b .pack.c .pack.d 708 list [catch {pack .pack.a -after .pack.b} msg] $msg 709} {1 {window ".pack.b" isn't packed}} 710test pack-12.9 {command options and errors} { 711 pack forget .pack.a .pack.b .pack.c .pack.d 712 list [catch {pack .pack.a -anchor gorp} msg] $msg 713} {1 {bad anchor "gorp": must be n, ne, e, se, s, sw, w, nw, or center}} 714test pack-12.10 {command options and errors} { 715 pack forget .pack.a .pack.b .pack.c .pack.d 716 list [catch {pack .pack.a -before gorp} msg] $msg 717} {1 {bad window path name "gorp"}} 718test pack-12.11 {command options and errors} { 719 pack forget .pack.a .pack.b .pack.c .pack.d 720 list [catch {pack .pack.a -before .pack.b} msg] $msg 721} {1 {window ".pack.b" isn't packed}} 722test pack-12.12 {command options and errors} { 723 pack forget .pack.a .pack.b .pack.c .pack.d 724 list [catch {pack .pack.a -expand "who cares?"} msg] $msg 725} {1 {expected boolean value but got "who cares?"}} 726test pack-12.13 {command options and errors} { 727 pack forget .pack.a .pack.b .pack.c .pack.d 728 list [catch {pack .pack.a -fill z} msg] $msg 729} {1 {bad fill style "z": must be none, x, y, or both}} 730test pack-12.14 {command options and errors} { 731 pack forget .pack.a .pack.b .pack.c .pack.d 732 list [catch {pack .pack.a -in z} msg] $msg 733} {1 {bad window path name "z"}} 734set pad [winfo pixels .pack 1c] 735test pack-12.15 {command options and errors} { 736 pack forget .pack.a .pack.b .pack.c .pack.d 737 list [catch {pack .pack.a -padx abc} msg] $msg 738} {1 {bad pad value "abc": must be positive screen distance}} 739test pack-12.15.1 {command options and errors} { 740 pack forget .pack.a .pack.b .pack.c .pack.d 741 list [catch {pack .pack.a -padx {5 abc}} msg] $msg 742} {1 {bad 2nd pad value "abc": must be positive screen distance}} 743test pack-12.16 {command options and errors} { 744 pack forget .pack.a .pack.b .pack.c .pack.d 745 list [catch {pack .pack.a -padx -1} msg] $msg 746} {1 {bad pad value "-1": must be positive screen distance}} 747test pack-12.16.1 {command options and errors} { 748 pack forget .pack.a .pack.b .pack.c .pack.d 749 list [catch {pack .pack.a -padx {5 -1}} msg] $msg 750} {1 {bad 2nd pad value "-1": must be positive screen distance}} 751test pack-12.17 {command options and errors} { 752 pack forget .pack.a .pack.b .pack.c .pack.d 753 list [catch {pack .pack.a -pady abc} msg] $msg 754} {1 {bad pad value "abc": must be positive screen distance}} 755test pack-12.17.1 {command options and errors} { 756 pack forget .pack.a .pack.b .pack.c .pack.d 757 list [catch {pack .pack.a -pady {0 abc}} msg] $msg 758} {1 {bad 2nd pad value "abc": must be positive screen distance}} 759test pack-12.18 {command options and errors} { 760 pack forget .pack.a .pack.b .pack.c .pack.d 761 list [catch {pack .pack.a -pady -1} msg] $msg 762} {1 {bad pad value "-1": must be positive screen distance}} 763test pack-12.18.1 {command options and errors} { 764 pack forget .pack.a .pack.b .pack.c .pack.d 765 list [catch {pack .pack.a -pady {0 -1}} msg] $msg 766} {1 {bad 2nd pad value "-1": must be positive screen distance}} 767test pack-12.19 {command options and errors} { 768 pack forget .pack.a .pack.b .pack.c .pack.d 769 list [catch {pack .pack.a -ipadx abc} msg] $msg 770} {1 {bad ipadx value "abc": must be positive screen distance}} 771test pack-12.20 {command options and errors} { 772 pack forget .pack.a .pack.b .pack.c .pack.d 773 list [catch {pack .pack.a -ipadx -1} msg] $msg 774} {1 {bad ipadx value "-1": must be positive screen distance}} 775test pack-12.20.1 {command options and errors} { 776 pack forget .pack.a .pack.b .pack.c .pack.d 777 list [catch {pack .pack.a -ipadx {5 5}} msg] $msg 778} {1 {bad ipadx value "5 5": must be positive screen distance}} 779test pack-12.21 {command options and errors} { 780 pack forget .pack.a .pack.b .pack.c .pack.d 781 list [catch {pack .pack.a -ipady abc} msg] $msg 782} {1 {bad ipady value "abc": must be positive screen distance}} 783test pack-12.22 {command options and errors} { 784 pack forget .pack.a .pack.b .pack.c .pack.d 785 list [catch {pack .pack.a -ipady -1} msg] $msg 786} {1 {bad ipady value "-1": must be positive screen distance}} 787test pack-12.22.1 {command options and errors} { 788 pack forget .pack.a .pack.b .pack.c .pack.d 789 list [catch {pack .pack.a -ipady {5 5}} msg] $msg 790} {1 {bad ipady value "5 5": must be positive screen distance}} 791test pack-12.23 {command options and errors} { 792 pack forget .pack.a .pack.b .pack.c .pack.d 793 list [catch {pack .pack.a -side bac} msg] $msg 794} {1 {bad side "bac": must be top, bottom, left, or right}} 795test pack-12.24 {command options and errors} { 796 pack forget .pack.a .pack.b .pack.c .pack.d 797 list [catch {pack .pack.a -lousy bac} msg] $msg 798} {1 {bad option "-lousy": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side}} 799test pack-12.25 {command options and errors} { 800 pack forget .pack.a .pack.b .pack.c .pack.d 801 list [catch {pack .pack.a -padx} msg] $msg 802} {1 {extra option "-padx" (option with no value?)}} 803test pack-12.26 {command options and errors} { 804 pack forget .pack.a .pack.b .pack.c .pack.d 805 list [catch {pack .pack.a ? 22} msg] $msg 806} {1 {bad option "?": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side}} 807test pack-12.27 {command options and errors} { 808 pack forget .pack.a .pack.b .pack.c .pack.d 809 list [catch {pack .pack.a -in .} msg] $msg 810} {1 {can't pack .pack.a inside .}} 811test pack-12.28 {command options and errors} { 812 pack forget .pack.a .pack.b .pack.c .pack.d 813 frame .pack.a.a 814 list [catch {pack .pack.a.a -in .pack.b} msg] $msg 815} {1 {can't pack .pack.a.a inside .pack.b}} 816test pack-12.29 {command options and errors} { 817 pack forget .pack.a .pack.b .pack.c .pack.d 818 list [catch {pack .pack.a -in .pack.a} msg] $msg 819} {1 {can't pack .pack.a inside itself}} 820test pack-12.30 {command options and errors} { 821 pack forget .pack.a .pack.b .pack.c .pack.d 822 pack .pack.a .pack.b .pack.c .pack.d 823 pack forget .pack.a .pack.d 824 pack slaves .pack 825} {.pack.b .pack.c} 826test pack-12.31 {command options and errors} { 827 pack forget .pack.a .pack.b .pack.c .pack.d 828 .pack configure -width 300 -height 200 829 pack propagate .pack 0 830 pack .pack.a 831 update 832 set result [list [winfo reqwidth .pack] [winfo reqheight .pack]] 833 pack propagate .pack 1 834 update 835 lappend result [winfo reqwidth .pack] [winfo reqheight .pack] 836 set result 837} {300 200 20 40} 838test pack-12.32 {command options and errors} { 839 set result [pack propagate .pack.d] 840 pack propagate .pack.d 0 841 lappend result [pack propagate .pack.d] 842 pack propagate .pack.d 1 843 lappend result [pack propagate .pack.d] 844 set result 845} {1 0 1} 846test pack-12.33 {command options and errors} { 847 pack forget .pack.a .pack.b .pack.c .pack.d 848 list [catch {pack propagate .dum} msg] $msg 849} {1 {bad window path name ".dum"}} 850test pack-12.34 {command options and errors} { 851 pack forget .pack.a .pack.b .pack.c .pack.d 852 list [catch {pack propagate .pack foo} msg] $msg 853} {1 {expected boolean value but got "foo"}} 854test pack-12.35 {command options and errors} { 855 pack forget .pack.a .pack.b .pack.c .pack.d 856 list [catch {pack propagate .pack foo bar} msg] $msg 857} {1 {wrong # args: should be "pack propagate window ?boolean?"}} 858test pack-12.36 {command options and errors} { 859 pack forget .pack.a .pack.b .pack.c .pack.d 860 list [catch {pack slaves} msg] $msg 861} {1 {wrong # args: should be "pack option arg ?arg ...?"}} 862test pack-12.37 {command options and errors} { 863 pack forget .pack.a .pack.b .pack.c .pack.d 864 list [catch {pack slaves a b} msg] $msg 865} {1 {wrong # args: should be "pack slaves window"}} 866test pack-12.38 {command options and errors} { 867 pack forget .pack.a .pack.b .pack.c .pack.d 868 list [catch {pack slaves .x} msg] $msg 869} {1 {bad window path name ".x"}} 870test pack-12.39 {command options and errors} { 871 pack forget .pack.a .pack.b .pack.c .pack.d 872 list [catch {pack slaves .pack.a} msg] $msg 873} {0 {}} 874test pack-12.40 {command options and errors} { 875 pack forget .pack.a .pack.b .pack.c .pack.d 876 list [catch {pack lousy .pack} msg] $msg 877} {1 {bad option "lousy": must be configure, forget, info, propagate, or slaves}} 878 879pack .pack.right -side right 880pack .pack.bottom -side bottom 881test pack-13.1 {window deletion} { 882 pack forget .pack.a .pack.b .pack.c .pack.d 883 pack .pack.a .pack.d .pack.b .pack.c -side top 884 update 885 destroy .pack.d 886 update 887 set result [list [pack slaves .pack] [winfo geometry .pack.a] \ 888 [winfo geometry .pack.b] [winfo geometry .pack.c]] 889} {{.pack.right .pack.bottom .pack.a .pack.b .pack.c} 20x40+30+0 50x30+15+40 80x80+0+70} 890 891test pack-14.1 {respond to changes in expansion} { 892 pack forget .pack.a .pack.b .pack.c .pack.d 893 wm geom .pack {} 894 pack .pack.a 895 update 896 set result [winfo geom .pack.a] 897 wm geom .pack 400x300 898 update 899 lappend result [winfo geom .pack.a] 900 pack .pack.a -expand true -fill both 901 update 902 lappend result [winfo geom .pack.a] 903} {20x40+0+0 20x40+90+0 200x150+0+0} 904wm geom .pack {} 905 906test pack-15.1 {managing geometry with -in option} { 907 pack forget .pack.a .pack.b .pack.c .pack.d 908 pack .pack.a -side top 909 frame .pack.f 910 lower .pack.f 911 pack .pack.f -side top 912 frame .pack.f.f2 913 lower .pack.f.f2 914 pack .pack.f.f2 -side top 915 pack .pack.b -in .pack.f.f2 916 update 917 set result [winfo geom .pack.b] 918 pack unpack .pack.a 919 update 920 lappend result [winfo geom .pack.b] 921} {50x30+0+40 50x30+0+0} 922catch {destroy .pack.f} 923test pack-15.2 {managing geometry with -in option} { 924 pack forget .pack.a .pack.b .pack.c .pack.d 925 frame .pack.f 926 lower .pack.f 927 pack .pack.a -in .pack.f -side top 928 update 929 set result [winfo ismapped .pack.a] 930 place .pack.f -x 30 -y 45 931 update 932 lappend result [winfo ismapped .pack.a] [winfo geometry .pack.a] 933 place forget .pack.f 934 update 935 lappend result [winfo ismapped .pack.a] 936} {0 1 20x40+30+45 0} 937catch {destroy .pack.f} 938test pack-15.3 {managing geometry with -in option} { 939 pack forget .pack.a .pack.b .pack.c .pack.d 940 pack .pack.a -side top 941 frame .pack.f 942 lower .pack.f 943 pack .pack.f -side top 944 frame .pack.f.f2 945 lower .pack.f.f2 946 pack .pack.f.f2 -side top 947 pack .pack.b -in .pack.f.f2 948 update 949 set result [winfo ismapped .pack.b] 950 pack unpack .pack.f 951 update 952 lappend result [winfo ismapped .pack.b] 953} {1 0} 954catch {destroy .pack.f} 955test pack-15.4 {managing geometry with -in option} { 956 pack forget .pack.a .pack.b .pack.c .pack.d 957 foreach i {1 2} { 958 frame .pack.f$i -width 100 -height 40 -bd 2 -relief raised 959 lower .pack.f$i 960 pack propagate .pack.f$i 0 961 pack .pack.f$i -side top 962 } 963 pack .pack.b -in .pack.f1 -side right 964 update 965 set result {} 966 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 967 pack .pack.b -in .pack.f2 -side bottom 968 update 969 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 970 .pack.f1 configure -width 50 -height 20 971 update 972 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 973 pack forget .pack.b 974 update 975 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 976} {50x30+48+5 1 50x30+25+48 1 50x30+25+28 1 50x30+25+28 0} 977catch {destroy .pack.f1 .pack.f2} 978test pack-15.5 {managing geometry with -in option} { 979 pack forget .pack.a .pack.b .pack.c .pack.d 980 foreach i {1 2} { 981 frame .pack.f$i -width 100 -height 20 -bd 2 -relief raised 982 lower .pack.f$i 983 pack propagate .pack.f$i 0 984 pack .pack.f$i -side top 985 } 986 pack .pack.b -in .pack.f2 -side top 987 update 988 set result {} 989 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 990 pack .pack.a -before .pack.b -side top 991 update 992 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 993} {50x16+25+22 1 50x16+25+22 0} 994catch {destroy .pack.f1 .pack.f2} 995 996test pack-16.1 {geometry manager name} { 997 pack forget .pack.a .pack.b .pack.c .pack.d 998 set result {} 999 lappend result [winfo manager .pack.a] 1000 pack .pack.a 1001 lappend result [winfo manager .pack.a] 1002 pack forget .pack.a 1003 lappend result [winfo manager .pack.a] 1004} {{} pack {}} 1005 1006test pack-17.1 {PackLostSlaveProc procedure} { 1007 pack forget .pack.a .pack.b .pack.c .pack.d 1008 pack .pack.a 1009 update 1010 place .pack.a -x 40 -y 10 1011 update 1012 list [winfo manager .pack.a] [winfo geometry .pack.a] \ 1013 [catch {pack info .pack.a} msg] $msg 1014} {place 20x40+40+10 1 {window ".pack.a" isn't packed}} 1015 1016test pack-18.1 {unmap slaves when master unmapped} {tempNotPc} { 1017 1018 # adjust the position of .pack before test to avoid a screen switch 1019 # that occurs with window managers that have desktops four times as big 1020 # as the screen (screen switch causes scale and other tests to fail). 1021 1022 wm geometry .pack +100+100 1023 1024 # On the PC, when the width/height is configured while the window is 1025 # unmapped, the changes don't take effect until the window is remapped. 1026 # Who knows why? 1027 1028 eval destroy [winfo child .pack] 1029 frame .pack.a -width 100 -height 50 -relief raised -bd 2 1030 pack .pack.a 1031 update 1032 set result [winfo ismapped .pack.a] 1033 wm iconify .pack 1034 update 1035 lappend result [winfo ismapped .pack.a] 1036 .pack.a configure -width 200 -height 75 1037 update 1038 lappend result [winfo width .pack.a ] [winfo height .pack.a] \ 1039 [winfo ismapped .pack.a] 1040 wm deiconify .pack 1041 update 1042 lappend result [winfo ismapped .pack.a] 1043} {1 0 200 75 0 1} 1044test pack-18.2 {unmap slaves when master unmapped} { 1045 1046 # adjust the position of .pack before test to avoid a screen switch 1047 # that occurs with window managers that have desktops four times as big 1048 # as the screen (screen switch causes scale and other tests to fail). 1049 1050 wm geometry .pack +100+100 1051 eval destroy [winfo child .pack] 1052 frame .pack.a -relief raised -bd 2 1053 frame .pack.b -width 70 -height 30 -relief sunken -bd 2 1054 pack .pack.a 1055 pack .pack.b -in .pack.a 1056 update 1057 set result [winfo ismapped .pack.b] 1058 wm iconify .pack 1059 update 1060 lappend result [winfo ismapped .pack.b] 1061 .pack.b configure -width 100 -height 30 1062 update 1063 lappend result [winfo width .pack.b ] [winfo height .pack.b] \ 1064 [winfo ismapped .pack.b] 1065 wm deiconify .pack 1066 update 1067 lappend result [winfo ismapped .pack.b] 1068} {1 0 100 30 0 1} 1069 1070test pack-19.1 {test respect for internalborder} { 1071 catch {eval pack forget [pack slaves .pack]} 1072 destroy .pack.l .pack.lf 1073 wm geometry .pack 200x200 1074 frame .pack.l -width 15 -height 10 1075 labelframe .pack.lf -labelwidget .pack.l 1076 pack .pack.lf -fill both -expand 1 1077 frame .pack.lf.f 1078 pack .pack.lf.f -fill both -expand 1 1079 update 1080 set res [list [winfo geometry .pack.lf.f]] 1081 .pack.lf configure -labelanchor e -padx 3 -pady 5 1082 update 1083 lappend res [winfo geometry .pack.lf.f] 1084 destroy .pack.l .pack.lf 1085 set res 1086} {196x188+2+10 177x186+5+7} 1087test pack-19.2 {test support for minreqsize} { 1088 catch {eval pack forget [pack slaves .pack]} 1089 destroy .pack.l .pack.lf 1090 wm geometry .pack {} 1091 frame .pack.l -width 150 -height 100 1092 labelframe .pack.lf -labelwidget .pack.l 1093 pack .pack.lf -fill both -expand 1 1094 frame .pack.lf.f -width 20 -height 25 1095 pack .pack.lf.f 1096 update 1097 set res [list [winfo geometry .pack.lf]] 1098 .pack.lf configure -labelanchor ws 1099 update 1100 lappend res [winfo geometry .pack.lf] 1101 destroy .pack.l .pack.lf 1102 set res 1103} {162x127+0+0 172x112+0+0} 1104 1105destroy .pack 1106foreach i {pack1 pack2 pack3 pack4} { 1107 rename $i {} 1108} 1109 1110# cleanup 1111cleanupTests 1112return 1113