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