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 9package require tcltest 2.2 10eval tcltest::configure $argv 11tcltest::loadTestedCommands 12namespace import -force tcltest::test 13 14testConstraint failsOnUbuntu [expr {![info exists ::env(CI)] || ![string match Linux $::tcl_platform(os)]}] 15testConstraint failsOnXQuarz [expr {$tcl_platform(os) ne "Darwin" || [tk windowingsystem] ne "x11" }] 16 17# Create some test windows. 18 19destroy .pack 20toplevel .pack 21wm geom .pack 300x200+0+0 22wm minsize .pack 1 1 23update idletasks 24foreach i {a b c d} { 25 frame .pack.$i 26 label .pack.$i.label -text $i -relief raised 27 place .pack.$i.label -relwidth 1.0 -relheight 1.0 28} 29.pack.a config -width 20 -height 40 30.pack.b config -width 50 -height 30 31.pack.c config -width 80 -height 80 32.pack.d config -width 40 -height 30 33 34test pack-1.1 {-side option} -setup { 35 pack forget .pack.a .pack.b .pack.c .pack.d 36} -body { 37 pack .pack.a -side top 38 pack .pack.b -expand yes -fill both 39 update 40 list [winfo geometry .pack.a] [winfo geometry .pack.b] 41} -result {20x40+140+0 300x160+0+40} 42test pack-1.2 {-side option} -setup { 43 pack forget .pack.a .pack.b .pack.c .pack.d 44} -body { 45 pack .pack.a -side bottom 46 pack .pack.b -expand yes -fill both 47 update 48 list [winfo geometry .pack.a] [winfo geometry .pack.b] 49} -result {20x40+140+160 300x160+0+0} 50test pack-1.3 {-side option} -setup { 51 pack forget .pack.a .pack.b .pack.c .pack.d 52} -body { 53 pack .pack.a -side left 54 pack .pack.b -expand yes -fill both 55 update 56 list [winfo geometry .pack.a] [winfo geometry .pack.b] 57} -result {20x40+0+80 280x200+20+0} 58test pack-1.4 {-side option} -setup { 59 pack forget .pack.a .pack.b .pack.c .pack.d 60} -body { 61 pack .pack.a -side right 62 pack .pack.b -expand yes -fill both 63 update 64 list [winfo geometry .pack.a] [winfo geometry .pack.b] 65} -result {20x40+280+80 280x200+0+0} 66 67 68test pack-2.1 {x padding and filling} -setup { 69 pack forget .pack.a .pack.b .pack.c .pack.d 70} -body { 71 pack .pack.a -side right -padx 20 72 pack .pack.b -expand yes -fill both 73 update 74 list [winfo geometry .pack.a] [winfo geometry .pack.b] 75} -result {20x40+260+80 240x200+0+0} 76test pack-2.2 {x padding and filling} -setup { 77 pack forget .pack.a .pack.b .pack.c .pack.d 78} -body { 79 pack .pack.a -side right -padx {10 30} 80 pack .pack.b -expand yes -fill both 81 update 82 list [winfo geometry .pack.a] [winfo geometry .pack.b] 83} -result {20x40+250+80 240x200+0+0} 84test pack-2.3 {x padding and filling} -setup { 85 pack forget .pack.a .pack.b .pack.c .pack.d 86} -body { 87 pack .pack.a -side right -padx {35 5} 88 pack .pack.b -expand yes -fill both 89 update 90 list [winfo geometry .pack.a] [winfo geometry .pack.b] 91} -result {20x40+275+80 240x200+0+0} 92test pack-2.4 {x padding and filling} -setup { 93 pack forget .pack.a .pack.b .pack.c .pack.d 94} -body { 95 pack .pack.a -side right -ipadx 20 96 pack .pack.b -expand yes -fill both 97 update 98 list [winfo geometry .pack.a] [winfo geometry .pack.b] 99} -result {60x40+240+80 240x200+0+0} 100test pack-2.5 {x padding and filling} -setup { 101 pack forget .pack.a .pack.b .pack.c .pack.d 102} -body { 103 pack .pack.a -side right -ipadx 5 -padx 10 104 pack .pack.b -expand yes -fill both 105 update 106 list [winfo geometry .pack.a] [winfo geometry .pack.b] 107} -result {30x40+260+80 250x200+0+0} 108test pack-2.6 {x padding and filling} -setup { 109 pack forget .pack.a .pack.b .pack.c .pack.d 110} -body { 111 pack .pack.a -side right -padx 20 -fill x 112 pack .pack.b -expand yes -fill both 113 update 114 list [winfo geometry .pack.a] [winfo geometry .pack.b] 115} -result {20x40+260+80 240x200+0+0} 116test pack-2.7 {x padding and filling} -setup { 117 pack forget .pack.a .pack.b .pack.c .pack.d 118} -body { 119 pack .pack.a -side right -padx {9 31} -fill x 120 pack .pack.b -expand yes -fill both 121 update 122 list [winfo geometry .pack.a] [winfo geometry .pack.b] 123} -result {20x40+249+80 240x200+0+0} 124test pack-2.8 {x padding and filling} -setup { 125 pack forget .pack.a .pack.b .pack.c .pack.d 126} -body { 127 pack .pack.a -side right -ipadx 20 -fill x 128 pack .pack.b -expand yes -fill both 129 update 130 list [winfo geometry .pack.a] [winfo geometry .pack.b] 131} -result {60x40+240+80 240x200+0+0} 132test pack-2.9 {x padding and filling} -setup { 133 pack forget .pack.a .pack.b .pack.c .pack.d 134} -body { 135 pack .pack.a -side right -ipadx 5 -padx 10 -fill x 136 pack .pack.b -expand yes -fill both 137 update 138 list [winfo geometry .pack.a] [winfo geometry .pack.b] 139} -result {30x40+260+80 250x200+0+0} 140test pack-2.10 {x padding and filling} -setup { 141 pack forget .pack.a .pack.b .pack.c .pack.d 142} -body { 143 pack .pack.a -side right -ipadx 5 -padx {5 15} -fill x 144 pack .pack.b -expand yes -fill both 145 update 146 list [winfo geometry .pack.a] [winfo geometry .pack.b] 147} -result {30x40+255+80 250x200+0+0} 148test pack-2.11 {x padding and filling} -setup { 149 pack forget .pack.a .pack.b .pack.c .pack.d 150} -body { 151 pack .pack.a -side top -padx 20 152 pack .pack.b -expand yes -fill both 153 update 154 list [winfo geometry .pack.a] [winfo geometry .pack.b] 155} -result {20x40+140+0 300x160+0+40} 156test pack-2.12 {x padding and filling} -setup { 157 pack forget .pack.a .pack.b .pack.c .pack.d 158} -body { 159 pack .pack.a -side top -padx {0 40} 160 pack .pack.b -expand yes -fill both 161 update 162 list [winfo geometry .pack.a] [winfo geometry .pack.b] 163} -result {20x40+120+0 300x160+0+40} 164test pack-2.13 {x padding and filling} -setup { 165 pack forget .pack.a .pack.b .pack.c .pack.d 166} -body { 167 pack .pack.a -side top -padx {31 9} 168 pack .pack.b -expand yes -fill both 169 update 170 list [winfo geometry .pack.a] [winfo geometry .pack.b] 171} -result {20x40+151+0 300x160+0+40} 172test pack-2.14 {x padding and filling} -setup { 173 pack forget .pack.a .pack.b .pack.c .pack.d 174} -body { 175 pack .pack.a -side top -ipadx 20 176 pack .pack.b -expand yes -fill both 177 update 178 list [winfo geometry .pack.a] [winfo geometry .pack.b] 179} -result {60x40+120+0 300x160+0+40} 180test pack-2.15 {x padding and filling} -setup { 181 pack forget .pack.a .pack.b .pack.c .pack.d 182} -body { 183 pack .pack.a -side top -ipadx 5 -padx 10 184 pack .pack.b -expand yes -fill both 185 update 186 list [winfo geometry .pack.a] [winfo geometry .pack.b] 187} -result {30x40+135+0 300x160+0+40} 188test pack-2.16 {x padding and filling} -setup { 189 pack forget .pack.a .pack.b .pack.c .pack.d 190} -body { 191 pack .pack.a -side top -ipadx 5 -padx {5 15} 192 pack .pack.b -expand yes -fill both 193 update 194 list [winfo geometry .pack.a] [winfo geometry .pack.b] 195} -result {30x40+130+0 300x160+0+40} 196test pack-2.17 {x padding and filling} -setup { 197 pack forget .pack.a .pack.b .pack.c .pack.d 198} -body { 199 pack .pack.a -side top -padx 20 -fill x 200 pack .pack.b -expand yes -fill both 201 update 202 list [winfo geometry .pack.a] [winfo geometry .pack.b] 203} -result {260x40+20+0 300x160+0+40} 204test pack-2.18 {x padding and filling} -setup { 205 pack forget .pack.a .pack.b .pack.c .pack.d 206} -body { 207 pack .pack.a -side top -padx {25 15} -fill x 208 pack .pack.b -expand yes -fill both 209 update 210 list [winfo geometry .pack.a] [winfo geometry .pack.b] 211} -result {260x40+25+0 300x160+0+40} 212test pack-2.19 {x padding and filling} -setup { 213 pack forget .pack.a .pack.b .pack.c .pack.d 214} -body { 215 pack .pack.a -side top -ipadx 20 -fill x 216 pack .pack.b -expand yes -fill both 217 update 218 list [winfo geometry .pack.a] [winfo geometry .pack.b] 219} -result {300x40+0+0 300x160+0+40} 220test pack-2.20 {x padding and filling} -setup { 221 pack forget .pack.a .pack.b .pack.c .pack.d 222} -body { 223 pack .pack.a -side top -ipadx 5 -padx 10 -fill x 224 pack .pack.b -expand yes -fill both 225 update 226 list [winfo geometry .pack.a] [winfo geometry .pack.b] 227} -result {280x40+10+0 300x160+0+40} 228test pack-2.21 {x padding and filling} -setup { 229 pack forget .pack.a .pack.b .pack.c .pack.d 230} -body { 231 pack .pack.a -side top -ipadx 5 -padx {5 15} -fill x 232 pack .pack.b -expand yes -fill both 233 update 234 list [winfo geometry .pack.a] [winfo geometry .pack.b] 235} -result {280x40+5+0 300x160+0+40} 236 237test pack-2.22 {x padding and filling} -setup { 238 pack forget .pack.a .pack.b .pack.c .pack.d 239} -body { 240 pack .pack.a -padx 1c 241 set x [pack info .pack.a] 242 set res1 [lindex $x [expr [lsearch -exact $x -padx]+1]] 243 set res2 [winfo pixels .pack 1c] 244 expr {$res1 eq $res2} 245} -result 1 246test pack-2.23 {x padding and filling} -setup { 247 pack forget .pack.a .pack.b .pack.c .pack.d 248} -body { 249 pack .pack.a -ipadx 1c 250 set x [pack info .pack.a] 251 set res1 [lindex $x [expr [lsearch -exact $x -ipadx]+1]] 252 set res2 [winfo pixels .pack 1c] 253 expr {$res1 eq $res2} 254} -result 1 255 256 257test pack-3.1 {y padding and filling} -setup { 258 pack forget .pack.a .pack.b .pack.c .pack.d 259} -body { 260 pack .pack.a -side right -pady 20 261 pack .pack.b -expand yes -fill both 262 update 263 list [winfo geometry .pack.a] [winfo geometry .pack.b] 264} -result {20x40+280+80 280x200+0+0} 265test pack-3.2 {y padding and filling} -setup { 266 pack forget .pack.a .pack.b .pack.c .pack.d 267} -body { 268 pack .pack.a -side right -pady {5 35} 269 pack .pack.b -expand yes -fill both 270 update 271 list [winfo geometry .pack.a] [winfo geometry .pack.b] 272} -result {20x40+280+65 280x200+0+0} 273test pack-3.3 {y padding and filling} -setup { 274 pack forget .pack.a .pack.b .pack.c .pack.d 275} -body { 276 pack .pack.a -side right -pady {40 0} 277 pack .pack.b -expand yes -fill both 278 update 279 list [winfo geometry .pack.a] [winfo geometry .pack.b] 280} -result {20x40+280+100 280x200+0+0} 281test pack-3.4 {y padding and filling} -setup { 282 pack forget .pack.a .pack.b .pack.c .pack.d 283} -body { 284 pack .pack.a -side right -ipady 20 285 pack .pack.b -expand yes -fill both 286 update 287 list [winfo geometry .pack.a] [winfo geometry .pack.b] 288} -result {20x80+280+60 280x200+0+0} 289test pack-3.5 {y padding and filling} -setup { 290 pack forget .pack.a .pack.b .pack.c .pack.d 291} -body { 292 pack .pack.a -side right -ipady 5 -pady 10 293 pack .pack.b -expand yes -fill both 294 update 295 list [winfo geometry .pack.a] [winfo geometry .pack.b] 296} -result {20x50+280+75 280x200+0+0} 297test pack-3.6 {y padding and filling} -setup { 298 pack forget .pack.a .pack.b .pack.c .pack.d 299} -body { 300 pack .pack.a -side right -ipady 5 -pady {5 15} 301 pack .pack.b -expand yes -fill both 302 update 303 list [winfo geometry .pack.a] [winfo geometry .pack.b] 304} -result {20x50+280+70 280x200+0+0} 305test pack-3.7 {y padding and filling} -setup { 306 pack forget .pack.a .pack.b .pack.c .pack.d 307} -body { 308 pack .pack.a -side right -pady 20 -fill y 309 pack .pack.b -expand yes -fill both 310 update 311 list [winfo geometry .pack.a] [winfo geometry .pack.b] 312} -result {20x160+280+20 280x200+0+0} 313test pack-3.8 {y padding and filling} -setup { 314 pack forget .pack.a .pack.b .pack.c .pack.d 315} -body { 316 pack .pack.a -side right -pady {35 5} -fill y 317 pack .pack.b -expand yes -fill both 318 update 319 list [winfo geometry .pack.a] [winfo geometry .pack.b] 320} -result {20x160+280+35 280x200+0+0} 321test pack-3.9 {y padding and filling} -setup { 322 pack forget .pack.a .pack.b .pack.c .pack.d 323} -body { 324 pack .pack.a -side right -ipady 20 -fill y 325 pack .pack.b -expand yes -fill both 326 update 327 list [winfo geometry .pack.a] [winfo geometry .pack.b] 328} -result {20x200+280+0 280x200+0+0} 329test pack-3.10 {y padding and filling} -setup { 330 pack forget .pack.a .pack.b .pack.c .pack.d 331} -body { 332 pack .pack.a -side right -ipady 5 -pady 10 -fill y 333 pack .pack.b -expand yes -fill both 334 update 335 list [winfo geometry .pack.a] [winfo geometry .pack.b] 336} -result {20x180+280+10 280x200+0+0} 337test pack-3.11 {y padding and filling} -setup { 338 pack forget .pack.a .pack.b .pack.c .pack.d 339} -body { 340 pack .pack.a -side right -ipady 5 -pady {0 20} -fill y 341 pack .pack.b -expand yes -fill both 342 update 343 list [winfo geometry .pack.a] [winfo geometry .pack.b] 344} -result {20x180+280+0 280x200+0+0} 345test pack-3.12 {y padding and filling} -setup { 346 pack forget .pack.a .pack.b .pack.c .pack.d 347} -body { 348 pack .pack.a -side top -pady 20 349 pack .pack.b -expand yes -fill both 350 update 351 list [winfo geometry .pack.a] [winfo geometry .pack.b] 352} -result {20x40+140+20 300x120+0+80} 353test pack-3.13 {y padding and filling} -setup { 354 pack forget .pack.a .pack.b .pack.c .pack.d 355} -body { 356 pack .pack.a -side top -pady {40 0} 357 pack .pack.b -expand yes -fill both 358 update 359 list [winfo geometry .pack.a] [winfo geometry .pack.b] 360} -result {20x40+140+40 300x120+0+80} 361test pack-3.14 {y padding and filling} -setup { 362 pack forget .pack.a .pack.b .pack.c .pack.d 363} -body { 364 pack .pack.a -side top -ipady 20 365 pack .pack.b -expand yes -fill both 366 update 367 list [winfo geometry .pack.a] [winfo geometry .pack.b] 368} -result {20x80+140+0 300x120+0+80} 369test pack-3.15 {y padding and filling} -setup { 370 pack forget .pack.a .pack.b .pack.c .pack.d 371} -body { 372 pack .pack.a -side top -ipady 5 -pady 10 373 pack .pack.b -expand yes -fill both 374 update 375 list [winfo geometry .pack.a] [winfo geometry .pack.b] 376} -result {20x50+140+10 300x130+0+70} 377test pack-3.16 {y padding and filling} -setup { 378 pack forget .pack.a .pack.b .pack.c .pack.d 379} -body { 380 pack .pack.a -side top -ipady 5 -pady {3 17} 381 pack .pack.b -expand yes -fill both 382 update 383 list [winfo geometry .pack.a] [winfo geometry .pack.b] 384} -result {20x50+140+3 300x130+0+70} 385test pack-3.17 {y padding and filling} -setup { 386 pack forget .pack.a .pack.b .pack.c .pack.d 387} -body { 388 pack .pack.a -side top -pady 20 -fill y 389 pack .pack.b -expand yes -fill both 390 update 391 list [winfo geometry .pack.a] [winfo geometry .pack.b] 392} -result {20x40+140+20 300x120+0+80} 393test pack-3.18 {y padding and filling} -setup { 394 pack forget .pack.a .pack.b .pack.c .pack.d 395} -body { 396 pack .pack.a -side top -pady {39 1} -fill y 397 pack .pack.b -expand yes -fill both 398 update 399 list [winfo geometry .pack.a] [winfo geometry .pack.b] 400} -result {20x40+140+39 300x120+0+80} 401test pack-3.19 {y padding and filling} -setup { 402 pack forget .pack.a .pack.b .pack.c .pack.d 403} -body { 404 pack .pack.a -side top -ipady 20 -fill y 405 pack .pack.b -expand yes -fill both 406 update 407 list [winfo geometry .pack.a] [winfo geometry .pack.b] 408} -result {20x80+140+0 300x120+0+80} 409test pack-3.20 {y padding and filling} -setup { 410 pack forget .pack.a .pack.b .pack.c .pack.d 411} -body { 412 pack .pack.a -side top -ipady 5 -pady 10 -fill y 413 pack .pack.b -expand yes -fill both 414 update 415 list [winfo geometry .pack.a] [winfo geometry .pack.b] 416} -result {20x50+140+10 300x130+0+70} 417test pack-3.21 {y padding and filling} -setup { 418 pack forget .pack.a .pack.b .pack.c .pack.d 419} -body { 420 pack .pack.a -side top -ipady 5 -pady {1 19} -fill y 421 pack .pack.b -expand yes -fill both 422 update 423 list [winfo geometry .pack.a] [winfo geometry .pack.b] 424} -result {20x50+140+1 300x130+0+70} 425 426test pack-3.22 {y padding and filling} -setup { 427 pack forget .pack.a .pack.b .pack.c .pack.d 428} -body { 429 pack .pack.a -pady 1c 430 set x [pack info .pack.a] 431 set res1 [lindex $x [expr [lsearch -exact $x -pady]+1]] 432 set res2 [winfo pixels .pack 1c] 433 expr {$res1 eq $res2} 434} -result 1 435test pack-3.23 {y padding and filling} -setup { 436 pack forget .pack.a .pack.b .pack.c .pack.d 437} -body { 438 pack .pack.a -ipady 1c 439 set x [pack info .pack.a] 440 set res1 [lindex $x [expr [lsearch -exact $x -ipady]+1]] 441 set res2 [winfo pixels .pack 1c] 442 expr {$res1 eq $res2} 443} -result 1 444 445 446test pack-4.1 {anchors} -setup { 447 pack forget .pack.a .pack.b .pack.c .pack.d 448} -body { 449 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n 450 update 451 winfo geometry .pack.a 452} -result {30x70+135+20} 453test pack-4.2 {anchors} -setup { 454 pack forget .pack.a .pack.b .pack.c .pack.d 455} -body { 456 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne 457 update 458 winfo geometry .pack.a 459} -result {30x70+260+20} 460test pack-4.3 {anchors} -setup { 461 pack forget .pack.a .pack.b .pack.c .pack.d 462} -body { 463 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e 464 update 465 winfo geometry .pack.a 466} -result {30x70+260+65} 467test pack-4.4 {anchors} -setup { 468 pack forget .pack.a .pack.b .pack.c .pack.d 469} -body { 470 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se 471 update 472 winfo geometry .pack.a 473} -result {30x70+260+110} 474test pack-4.5 {anchors} -setup { 475 pack forget .pack.a .pack.b .pack.c .pack.d 476} -body { 477 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s 478 update 479 winfo geometry .pack.a 480} -result {30x70+135+110} 481test pack-4.6 {anchors} -setup { 482 pack forget .pack.a .pack.b .pack.c .pack.d 483} -body { 484 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw 485 update 486 winfo geometry .pack.a 487} -result {30x70+10+110} 488test pack-4.7 {anchors} -setup { 489 pack forget .pack.a .pack.b .pack.c .pack.d 490} -body { 491 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w 492 update 493 winfo geometry .pack.a 494} -result {30x70+10+65} 495test pack-4.8 {anchors} -setup { 496 pack forget .pack.a .pack.b .pack.c .pack.d 497} -body { 498 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw 499 update 500 winfo geometry .pack.a 501} -result {30x70+10+20} 502test pack-4.9 {anchors} -setup { 503 pack forget .pack.a .pack.b .pack.c .pack.d 504} -body { 505 pack .pack.a -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center 506 update 507 winfo geometry .pack.a 508} -result {30x70+135+65} 509 510 511# Repeat above tests, but with a frame that isn't at (0,0), so that 512# we can be sure that the frame offset is being added in correctly. 513 514test pack-5.1 {more anchors} -setup { 515 pack forget .pack.a .pack.b .pack.c .pack.d 516} -body { 517 pack .pack.a -side top 518 pack .pack.c -side left 519 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor n 520 update 521 winfo geometry .pack.b 522} -result {60x60+160+60} 523test pack-5.2 {more anchors} -setup { 524 pack forget .pack.a .pack.b .pack.c .pack.d 525} -body { 526 pack .pack.a -side top 527 pack .pack.c -side left 528 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor ne 529 update 530 winfo geometry .pack.b 531} -result {60x60+230+60} 532test pack-5.3 {more anchors} -setup { 533 pack forget .pack.a .pack.b .pack.c .pack.d 534} -body { 535 pack .pack.a -side top 536 pack .pack.c -side left 537 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor e 538 update 539 winfo geometry .pack.b 540} -result {60x60+230+90} 541test pack-5.4 {more anchors} -setup { 542 pack forget .pack.a .pack.b .pack.c .pack.d 543} -body { 544 pack .pack.a -side top 545 pack .pack.c -side left 546 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor se 547 update 548 winfo geometry .pack.b 549} -result {60x60+230+120} 550test pack-5.5 {more anchors} -setup { 551 pack forget .pack.a .pack.b .pack.c .pack.d 552} -body { 553 pack .pack.a -side top 554 pack .pack.c -side left 555 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor s 556 update 557 winfo geometry .pack.b 558} -result {60x60+160+120} 559test pack-5.6 {more anchors} -setup { 560 pack forget .pack.a .pack.b .pack.c .pack.d 561} -body { 562 pack .pack.a -side top 563 pack .pack.c -side left 564 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor sw 565 update 566 winfo geometry .pack.b 567} -result {60x60+90+120} 568test pack-5.7 {more anchors} -setup { 569 pack forget .pack.a .pack.b .pack.c .pack.d 570} -body { 571 pack .pack.a -side top 572 pack .pack.c -side left 573 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor w 574 update 575 winfo geometry .pack.b 576} -result {60x60+90+90} 577test pack-5.8 {more anchors} -setup { 578 pack forget .pack.a .pack.b .pack.c .pack.d 579} -body { 580 pack .pack.a -side top 581 pack .pack.c -side left 582 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor nw 583 update 584 winfo geometry .pack.b 585} -result {60x60+90+60} 586test pack-5.9 {more anchors} -setup { 587 pack forget .pack.a .pack.b .pack.c .pack.d 588} -body { 589 pack .pack.a -side top 590 pack .pack.c -side left 591 pack .pack.b -side top -ipadx 5 -padx 10 -ipady 15 -pady 20 -expand y -anchor center 592 update 593 winfo geometry .pack.b 594} -result {60x60+160+90} 595 596 597test pack-6.1 {-expand option} -setup { 598 pack forget .pack.a .pack.b .pack.c .pack.d 599} -body { 600 pack .pack.a .pack.b .pack.c .pack.d -side left 601 update 602 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 603 [winfo geometry .pack.c] [winfo geometry .pack.d] 604} -result {20x40+0+80 50x30+20+85 80x80+70+60 40x30+150+85} 605test pack-6.2 {-expand option} -setup { 606 pack forget .pack.a .pack.b .pack.c .pack.d 607} -body { 608 pack .pack.a -side left -expand yes 609 pack .pack.b -side left 610 pack .pack.c .pack.d -side left -expand 1 611 update 612 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 613 [winfo geometry .pack.c] [winfo geometry .pack.d] 614} -result {20x40+18+80 50x30+56+85 80x80+124+60 40x30+241+85} 615test pack-6.3 {-expand option} -setup { 616 pack forget .pack.a .pack.b .pack.c .pack.d 617} -body { 618 pack .pack.a .pack.b .pack.c .pack.d -side top 619 update 620 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 621 [winfo geometry .pack.c] [winfo geometry .pack.d] 622} -result {20x40+140+0 50x30+125+40 80x80+110+70 40x30+130+150} 623test pack-6.4 {-expand option} -setup { 624 pack forget .pack.a .pack.b .pack.c .pack.d 625} -body { 626 pack .pack.a -side top -expand yes 627 pack .pack.b -side top 628 pack .pack.c .pack.d -side top -expand 1 629 update 630 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 631 [winfo geometry .pack.c] [winfo geometry .pack.d] 632} -result {20x40+140+3 50x30+125+46 80x80+110+79 40x30+130+166} 633test pack-6.5 {-expand option} -setup { 634 pack forget .pack.a .pack.b .pack.c .pack.d 635} -body { 636 pack .pack.a .pack.b .pack.c .pack.d -side right 637 update 638 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 639 [winfo geometry .pack.c] [winfo geometry .pack.d] 640} -result {20x40+280+80 50x30+230+85 80x80+150+60 40x30+110+85} 641test pack-6.6 {-expand option} -setup { 642 pack forget .pack.a .pack.b .pack.c .pack.d 643} -body { 644 pack .pack.a -side right -expand yes 645 pack .pack.b -side right 646 pack .pack.c .pack.d -side right -expand 1 647 update 648 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 649 [winfo geometry .pack.c] [winfo geometry .pack.d] 650} -result {20x40+262+80 50x30+194+85 80x80+95+60 40x30+18+85} 651test pack-6.7 {-expand option} -setup { 652 pack forget .pack.a .pack.b .pack.c .pack.d 653} -body { 654 pack .pack.a .pack.b .pack.c .pack.d -side bottom 655 update 656 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 657 [winfo geometry .pack.c] [winfo geometry .pack.d] 658} -result {20x40+140+160 50x30+125+130 80x80+110+50 40x30+130+20} 659test pack-6.8 {-expand option} -setup { 660 pack forget .pack.a .pack.b .pack.c .pack.d 661} -body { 662 pack .pack.a -side bottom -expand yes 663 pack .pack.b -side bottom 664 pack .pack.c .pack.d -side bottom -expand 1 665 update 666 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 667 [winfo geometry .pack.c] [winfo geometry .pack.d] 668} -result {20x40+140+157 50x30+125+124 80x80+110+40 40x30+130+3} 669test pack-6.9 {-expand option} -setup { 670 pack forget .pack.a .pack.b .pack.c .pack.d 671} -body { 672 pack .pack.a -side bottom -expand yes -fill both 673 pack .pack.b -side right 674 pack .pack.c -side top -expand 1 -fill both 675 pack .pack.d -side left 676 update 677 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 678 [winfo geometry .pack.c] [winfo geometry .pack.d] 679} -result {300x65+0+135 50x30+250+52 250x105+0+0 40x30+0+105} 680test pack-6.10 {-expand option} -setup { 681 pack forget .pack.a .pack.b .pack.c .pack.d 682} -body { 683 pack .pack.a -side left -expand yes -fill both 684 pack .pack.b -side top 685 pack .pack.c -side right -expand 1 -fill both 686 pack .pack.d -side bottom 687 update 688 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 689 [winfo geometry .pack.c] [winfo geometry .pack.d] 690} -result {100x200+0+0 50x30+175+0 160x170+140+30 40x30+100+170} 691test pack-6.11 {-expand option} -setup { 692 pack forget .pack.a .pack.b .pack.c .pack.d 693} -body { 694 pack .pack.a -side left -expand yes -fill both 695 pack .pack.b -side top -expand yes -fill both 696 pack .pack.c -side right -expand 1 -fill both 697 pack .pack.d -side bottom -expand yes -fill both 698 update 699 list [winfo geometry .pack.a] [winfo geometry .pack.b] \ 700 [winfo geometry .pack.c] [winfo geometry .pack.d] 701} -result {100x200+0+0 200x100+100+0 160x100+140+100 40x100+100+100} 702 703test pack-6.12 {-expand option} -setup { 704 toplevel .pack2 -height 400 -width 400 705 wm geometry .pack2 +0+0 706 pack propagate .pack2 0 707 foreach i {w1 w2 w3} { 708 frame .pack2.$i -width 30 -height 30 -bd 2 -relief raised 709 label .pack2.$i.l -text $i 710 place .pack2.$i.l -relwidth 1.0 -relheight 1.0 711 } 712} -body { 713 pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 -ipady 6 -expand 1 -side left 714 update 715 list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3] 716} -cleanup { 717 destroy .pack2 718} -result {38x42+47+179 38x42+180+179 38x42+314+179} 719test pack-6.13 {-expand option} -setup { 720 toplevel .pack2 -height 400 -width 400 721 wm geometry .pack2 +0+0 722 pack propagate .pack2 0 723 foreach i {w1 w2 w3} { 724 frame .pack2.$i -width 30 -height 30 -bd 2 -relief raised 725 label .pack2.$i.l -text $i 726 place .pack2.$i.l -relwidth 1.0 -relheight 1.0 727 } 728} -body { 729 pack .pack2.w1 .pack2.w2 .pack2.w3 -padx 5 -ipadx 4 -pady 2 \ 730 -ipady 6 -expand 1 -side top 731 update 732 list [winfo geometry .pack2.w1] [winfo geometry .pack2.w2] [winfo geometry .pack2.w3] 733} -cleanup { 734 destroy .pack2 735} -result {38x42+181+45 38x42+181+178 38x42+181+312} 736 737 738wm geometry .pack {} 739test pack-7.1 {requesting size for parent} -setup { 740 pack forget .pack.a .pack.b .pack.c .pack.d 741} -body { 742 pack .pack.a .pack.b .pack.c .pack.d -side left -padx 5 -pady 10 743 update 744 list [winfo reqwidth .pack] [winfo reqheight .pack] 745} -result {230 100} 746test pack-7.2 {requesting size for parent} -setup { 747 pack forget .pack.a .pack.b .pack.c .pack.d 748} -body { 749 pack .pack.a .pack.b .pack.c .pack.d -side top -padx 5 -pady 10 750 update 751 list [winfo reqwidth .pack] [winfo reqheight .pack] 752} -result {90 260} 753test pack-7.3 {requesting size for parent} -setup { 754 pack forget .pack.a .pack.b .pack.c .pack.d 755} -body { 756 pack .pack.a .pack.b .pack.c .pack.d -side right -padx 5 -pady 10 757 update 758 list [winfo reqwidth .pack] [winfo reqheight .pack] 759} -result {230 100} 760test pack-7.4 {requesting size for parent} -setup { 761 pack forget .pack.a .pack.b .pack.c .pack.d 762} -body { 763 pack .pack.a .pack.b .pack.c .pack.d -side bottom -padx 5 -pady 10 764 update 765 list [winfo reqwidth .pack] [winfo reqheight .pack] 766} -result {90 260} 767test pack-7.5 {requesting size for parent} -setup { 768 pack forget .pack.a .pack.b .pack.c .pack.d 769} -body { 770 pack .pack.a -side top -padx 5 -pady 10 771 pack .pack.b -side right -padx 5 -pady 10 772 pack .pack.c -side bottom -padx 5 -pady 10 773 pack .pack.d -side left -padx 5 -pady 10 774 update 775 list [winfo reqwidth .pack] [winfo reqheight .pack] 776} -result {150 210} 777test pack-7.6 {requesting size for parent} -setup { 778 pack forget .pack.a .pack.b .pack.c .pack.d 779} -body { 780 pack .pack.a -side top 781 pack .pack.c -side left 782 pack .pack.d -side bottom 783 update 784 list [winfo reqwidth .pack] [winfo reqheight .pack] 785} -result {120 120} 786test pack-7.7 {requesting size for parent} -setup { 787 pack forget .pack.a .pack.b .pack.c .pack.d 788} -body { 789 pack .pack.a -side right 790 pack .pack.c -side bottom 791 pack .pack.d -side top 792 update 793 list [winfo reqwidth .pack] [winfo reqheight .pack] 794} -result {100 110} 795 796 797# For the tests below, create a couple of "pad" windows to shrink 798# the available space for the remaining windows. The tests have to 799# be done this way rather than shrinking the whole window, because 800# some window managers like mwm won't let a top-level window get 801# very small. 802 803pack forget .pack.a .pack.b .pack.c .pack.d 804frame .pack.right -width 200 -height 10 -bd 2 -relief raised 805frame .pack.bottom -width 10 -height 150 -bd 2 -relief raised 806pack .pack.right -side right 807pack .pack.bottom -side bottom 808pack .pack.a .pack.b .pack.c -side top 809update 810test pack-8.1 {insufficient space} -body { 811 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 812 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 813 [winfo geometry .pack.c] [winfo ismapped .pack.c] 814} -result {20x40+30+0 1 50x30+15+40 1 80x80+0+70 1} 815wm geom .pack 270x250 816update 817test pack-8.2 {insufficient space} -body { 818 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 819 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 820 [winfo geometry .pack.c] [winfo ismapped .pack.c] 821} -result {20x40+25+0 1 50x30+10+40 1 70x30+0+70 1} 822wm geom .pack 240x220 823update 824test pack-8.3 {insufficient space} -body { 825 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 826 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 827 [winfo geometry .pack.c] [winfo ismapped .pack.c] 828} -result {20x40+10+0 1 40x30+0+40 1 70x30+0+70 0} 829wm geom .pack 350x350 830update 831test pack-8.4 {insufficient space} -body { 832 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 833 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 834 [winfo geometry .pack.c] [winfo ismapped .pack.c] 835} -result {20x40+65+0 1 50x30+50+40 1 80x80+35+70 1} 836wm geom .pack {} 837pack .pack.a -side left 838pack .pack.b -side right 839pack .pack.c -side left 840update 841test pack-8.5 {insufficient space} -body { 842 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 843 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 844 [winfo geometry .pack.c] [winfo ismapped .pack.c] 845} -result {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1} 846wm geom .pack 320x180 847update 848test pack-8.6 {insufficient space} -body { 849 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 850 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 851 [winfo geometry .pack.c] [winfo ismapped .pack.c] 852} -result {20x30+0+0 1 50x30+70+0 1 50x30+20+0 1} 853wm geom .pack 250x180 854update 855test pack-8.7 {insufficient space} -body { 856 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 857 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 858 [winfo geometry .pack.c] [winfo ismapped .pack.c] 859} -result {20x30+0+0 1 30x30+20+0 1 50x30+20+0 0} 860pack forget .pack.b 861update 862test pack-8.8 {insufficient space} -body { 863 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 864 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 865 [winfo geometry .pack.c] [winfo ismapped .pack.c] 866} -result {20x30+0+0 1 30x30+20+0 0 30x30+20+0 1} 867pack .pack.b -side right -after .pack.a 868wm geom .pack {} 869update 870test pack-8.9 {insufficient space} -body { 871 list [winfo geometry .pack.a] [winfo ismapped .pack.a] \ 872 [winfo geometry .pack.b] [winfo ismapped .pack.b] \ 873 [winfo geometry .pack.c] [winfo ismapped .pack.c] 874} -result {20x40+0+20 1 50x30+100+25 1 80x80+20+0 1} 875pack forget .pack.right .pack.bottom 876 877 878test pack-9.1 {window ordering} -setup { 879 pack forget .pack.a .pack.b .pack.c .pack.d 880} -body { 881 pack .pack.a .pack.b .pack.c .pack.d -side top 882 pack .pack.a -after .pack.b 883 pack content .pack 884} -result {.pack.b .pack.a .pack.c .pack.d} 885test pack-9.2 {window ordering} -setup { 886 pack forget .pack.a .pack.b .pack.c .pack.d 887} -body { 888 pack .pack.a .pack.b .pack.c .pack.d -side top 889 pack .pack.a -after .pack.a 890 pack content .pack 891} -result {.pack.a .pack.b .pack.c .pack.d} 892test pack-9.3 {window ordering} -setup { 893 pack forget .pack.a .pack.b .pack.c .pack.d 894} -body { 895 pack .pack.a .pack.b .pack.c .pack.d -side top 896 pack .pack.a -before .pack.d 897 pack content .pack 898} -result {.pack.b .pack.c .pack.a .pack.d} 899test pack-9.4 {window ordering} -setup { 900 pack forget .pack.a .pack.b .pack.c .pack.d 901} -body { 902 pack .pack.a .pack.b .pack.c .pack.d -side top 903 pack .pack.d -before .pack.a 904 pack content .pack 905} -result {.pack.d .pack.a .pack.b .pack.c} 906test pack-9.5 {window ordering} -setup { 907 pack forget .pack.a .pack.b .pack.c .pack.d 908} -body { 909 pack .pack.a .pack.b .pack.c .pack.d -side top 910 pack propagate .pack.c 0 911 pack .pack.a -in .pack.c 912 list [pack content .pack] [pack content .pack.c] 913} -result {{.pack.b .pack.c .pack.d} .pack.a} 914test pack-9.6 {window ordering} -setup { 915 pack forget .pack.a .pack.b .pack.c .pack.d 916} -body { 917 pack .pack.a .pack.b .pack.c .pack.d -side top 918 pack .pack.a -in .pack 919 pack content .pack 920} -result {.pack.b .pack.c .pack.d .pack.a} 921test pack-9.7 {window ordering} -setup { 922 pack forget .pack.a .pack.b .pack.c .pack.d 923} -body { 924 pack .pack.a .pack.b .pack.c .pack.d -side top 925 pack .pack.a -padx 0 926 pack content .pack 927} -result {.pack.a .pack.b .pack.c .pack.d} 928test pack-9.8 {window ordering} -setup { 929 pack forget .pack.a .pack.b .pack.c .pack.d 930} -body { 931 pack .pack.a .pack.b .pack.c 932 pack .pack.d 933 pack content .pack 934} -result {.pack.a .pack.b .pack.c .pack.d} 935test pack-9.9 {window ordering} -setup { 936 pack forget .pack.a .pack.b .pack.c .pack.d 937} -body { 938 pack .pack.a .pack.b .pack.c .pack.d 939 pack .pack.b .pack.d .pack.c -before .pack.a 940 pack content .pack 941} -result {.pack.b .pack.d .pack.c .pack.a} 942test pack-9.10 {window ordering} -setup { 943 pack forget .pack.a .pack.b .pack.c .pack.d 944} -body { 945 pack .pack.a .pack.b .pack.c .pack.d 946 pack .pack.a .pack.c .pack.d .pack.b -after .pack.a 947 pack content .pack 948} -result {.pack.a .pack.c .pack.d .pack.b} 949 950 951test pack-10.1 {retaining/clearing configuration state} -setup { 952 pack forget .pack.a .pack.b .pack.c .pack.d 953} -body { 954 pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \ 955 -fill both -expand 1 956 pack forget .pack.a 957 pack .pack.a 958 pack info .pack.a 959} -result {-in .pack -anchor center -expand 0 -fill none -ipadx 0 -ipady 0 -padx 0 -pady 0 -side top} 960test pack-10.2 {retaining/clearing configuration state} -setup { 961 pack forget .pack.a .pack.b .pack.c .pack.d 962} -body { 963 pack .pack.a -side bottom -anchor n -padx 1 -pady 2 -ipadx 3 -ipady 4 \ 964 -fill both -expand 1 965 pack .pack.a -pady 14 966 pack info .pack.a 967} -result {-in .pack -anchor n -expand 1 -fill both -ipadx 3 -ipady 4 -padx 1 -pady 14 -side bottom} 968test pack-10.3 {bad -in window does not change container window} -setup { 969 pack forget .pack.a .pack.b .pack.c .pack.d 970} -body { 971 set result [list [winfo manager .pack.a]] 972 catch {pack .pack.a -in .pack.a} 973 lappend result [winfo manager .pack.a] 974} -result {{} {}} 975test pack-10.4 {bad -in window does not change container window} -setup { 976 pack forget .pack.a .pack.b .pack.c .pack.d 977} -body { 978 winfo manager .pack.a 979 pack .pack.a -in .pack.a 980} -returnCodes error -result {can't pack .pack.a inside itself} 981test pack-10.5 {prevent management loops} -body { 982 frame .f1 983 frame .f2 984 pack .f1 -in .f2 985 pack .f2 -in .f1 986} -cleanup { 987 destroy .f1 988 destroy .f2 989} -returnCodes error -result {can't put .f2 inside .f1, would cause management loop} 990test pack-10.6 {prevent management loops} -body { 991 frame .f1 992 frame .f2 993 frame .f3 994 pack .f1 -in .f2 995 pack .f2 -in .f3 996 pack .f3 -in .f1 997} -cleanup { 998 destroy .f1 999 destroy .f2 1000 destroy .f3 1001} -returnCodes error -result {can't put .f3 inside .f1, would cause management loop} 1002 1003 1004test pack-11.1 {info option} -setup { 1005 pack forget .pack.a .pack.b .pack.c .pack.d 1006} -body { 1007 pack .pack.a -in .pack 1008 set i [pack info .pack.a] 1009 lindex $i [expr [lsearch -exact $i -in]+1] 1010} -result .pack 1011test pack-11.2 {info option} -setup { 1012 pack forget .pack.a .pack.b .pack.c .pack.d 1013} -body { 1014 pack .pack.a -anchor n 1015 set i [pack info .pack.a] 1016 lindex $i [expr [lsearch -exact $i -anchor]+1] 1017} -result n 1018test pack-11.3 {info option} -setup { 1019 pack forget .pack.a .pack.b .pack.c .pack.d 1020} -body { 1021 pack .pack.a -anchor sw 1022 set i [pack info .pack.a] 1023 lindex $i [expr [lsearch -exact $i -anchor]+1] 1024} -result sw 1025test pack-11.4 {info option} -setup { 1026 pack forget .pack.a .pack.b .pack.c .pack.d 1027} -body { 1028 pack .pack.a -expand yes 1029 set i [pack info .pack.a] 1030 lindex $i [expr [lsearch -exact $i -expand]+1] 1031} -result 1 1032test pack-11.5 {info option} -setup { 1033 pack forget .pack.a .pack.b .pack.c .pack.d 1034} -body { 1035 pack .pack.a -expand no 1036 set i [pack info .pack.a] 1037 lindex $i [expr [lsearch -exact $i -expand]+1] 1038} -result 0 1039test pack-11.6 {info option} -setup { 1040 pack forget .pack.a .pack.b .pack.c .pack.d 1041} -body { 1042 pack .pack.a -fill x 1043 set i [pack info .pack.a] 1044 lindex $i [expr [lsearch -exact $i -fill]+1] 1045} -result x 1046test pack-11.7 {info option} -setup { 1047 pack forget .pack.a .pack.b .pack.c .pack.d 1048} -body { 1049 pack .pack.a -fill y 1050 set i [pack info .pack.a] 1051 lindex $i [expr [lsearch -exact $i -fill]+1] 1052} -result y 1053test pack-11.8 {info option} -setup { 1054 pack forget .pack.a .pack.b .pack.c .pack.d 1055} -body { 1056 pack .pack.a -fill both 1057 set i [pack info .pack.a] 1058 lindex $i [expr [lsearch -exact $i -fill]+1] 1059} -result both 1060test pack-11.9 {info option} -setup { 1061 pack forget .pack.a .pack.b .pack.c .pack.d 1062} -body { 1063 pack .pack.a -fill none 1064 set i [pack info .pack.a] 1065 lindex $i [expr [lsearch -exact $i -fill]+1] 1066} -result none 1067test pack-11.10 {info option} -setup { 1068 pack forget .pack.a .pack.b .pack.c .pack.d 1069} -body { 1070 pack .pack.a -ipadx 14 1071 set i [pack info .pack.a] 1072 lindex $i [expr [lsearch -exact $i -ipadx]+1] 1073} -result 14 1074test pack-11.11 {info option} -setup { 1075 pack forget .pack.a .pack.b .pack.c .pack.d 1076} -body { 1077 pack .pack.a -ipady 22 1078 set i [pack info .pack.a] 1079 lindex $i [expr [lsearch -exact $i -ipady]+1] 1080} -result 22 1081test pack-11.12 {info option} -setup { 1082 pack forget .pack.a .pack.b .pack.c .pack.d 1083} -body { 1084 pack .pack.a -padx 2 1085 set i [pack info .pack.a] 1086 lindex $i [expr [lsearch -exact $i -padx]+1] 1087} -result 2 1088test pack-11.13 {info option} -setup { 1089 pack forget .pack.a .pack.b .pack.c .pack.d 1090} -body { 1091 pack .pack.a -padx {2 9} 1092 set i [pack info .pack.a] 1093 lindex $i [expr [lsearch -exact $i -padx]+1] 1094} -result {2 9} 1095test pack-11.14 {info option} -setup { 1096 pack forget .pack.a .pack.b .pack.c .pack.d 1097} -body { 1098 pack .pack.a -pady 3 1099 set i [pack info .pack.a] 1100 lindex $i [expr [lsearch -exact $i -pady]+1] 1101} -result 3 1102test pack-11.15 {info option} -setup { 1103 pack forget .pack.a .pack.b .pack.c .pack.d 1104} -body { 1105 pack .pack.a -pady {3 11} 1106 set i [pack info .pack.a] 1107 lindex $i [expr [lsearch -exact $i -pady]+1] 1108} -result {3 11} 1109test pack-11.16 {info option} -setup { 1110 pack forget .pack.a .pack.b .pack.c .pack.d 1111} -body { 1112 pack .pack.a -side top 1113 set i [pack info .pack.a] 1114 lindex $i [expr [lsearch -exact $i -side]+1] 1115} -result top 1116test pack-11.17 {info option} -setup { 1117 pack forget .pack.a .pack.b .pack.c .pack.d 1118} -body { 1119 pack .pack.a -side bottom 1120 set i [pack info .pack.a] 1121 lindex $i [expr [lsearch -exact $i -side]+1] 1122} -result bottom 1123test pack-11.18 {info option} -setup { 1124 pack forget .pack.a .pack.b .pack.c .pack.d 1125} -body { 1126 pack .pack.a -side left 1127 set i [pack info .pack.a] 1128 lindex $i [expr [lsearch -exact $i -side]+1] 1129} -result left 1130test pack-11.19 {info option} -setup { 1131 pack forget .pack.a .pack.b .pack.c .pack.d 1132} -body { 1133 pack .pack.a -side right 1134 set i [pack info .pack.a] 1135 lindex $i [expr [lsearch -exact $i -side]+1] 1136} -result right 1137 1138 1139test pack-12.1 {command options and errors} -body { 1140 pack 1141} -returnCodes error -result {wrong # args: should be "pack option arg ?arg ...?"} 1142test pack-12.2 {command options and errors} -body { 1143 pack foo 1144} -returnCodes error -result {wrong # args: should be "pack option arg ?arg ...?"} 1145test pack-12.3 {command options and errors} -body { 1146 pack configure x 1147} -returnCodes error -result {bad argument "x": must be name of window} 1148test pack-12.4 {command options and errors} -setup { 1149 pack forget .pack.a .pack.b .pack.c .pack.d 1150} -body { 1151 pack configure .pack.b .pack.c 1152 pack content .pack 1153} -result {.pack.b .pack.c} 1154test pack-12.5 {command options and errors} -setup { 1155 pack forget .pack.a .pack.b .pack.c .pack.d 1156} -body { 1157 pack .foo 1158} -returnCodes error -result {bad window path name ".foo"} 1159test pack-12.6 {command options and errors} -setup { 1160 pack forget .pack.a .pack.b .pack.c .pack.d 1161} -body { 1162 pack .pack 1163} -returnCodes error -result {can't pack ".pack": it's a top-level window} 1164test pack-12.7 {command options and errors} -setup { 1165 pack forget .pack.a .pack.b .pack.c .pack.d 1166} -body { 1167 pack .pack.a -after .foo 1168} -returnCodes error -result {bad window path name ".foo"} 1169test pack-12.8 {command options and errors} -setup { 1170 pack forget .pack.a .pack.b .pack.c .pack.d 1171} -body { 1172 pack .pack.a -after .pack.b 1173} -returnCodes error -result {window ".pack.b" isn't packed} 1174test pack-12.9 {command options and errors} -setup { 1175 pack forget .pack.a .pack.b .pack.c .pack.d 1176} -body { 1177 pack .pack.a -anchor gorp 1178} -returnCodes error -result {bad anchor "gorp": must be n, ne, e, se, s, sw, w, nw, or center} 1179test pack-12.10 {command options and errors} -setup { 1180 pack forget .pack.a .pack.b .pack.c .pack.d 1181} -body { 1182 pack .pack.a -before gorp 1183} -returnCodes error -result {bad window path name "gorp"} 1184test pack-12.11 {command options and errors} -setup { 1185 pack forget .pack.a .pack.b .pack.c .pack.d 1186} -body { 1187 pack .pack.a -before .pack.b 1188} -returnCodes error -result {window ".pack.b" isn't packed} 1189test pack-12.12 {command options and errors} -setup { 1190 pack forget .pack.a .pack.b .pack.c .pack.d 1191} -body { 1192 pack .pack.a -expand "who cares?" 1193} -returnCodes error -result {expected boolean value but got "who cares?"} 1194test pack-12.13 {command options and errors} -setup { 1195 pack forget .pack.a .pack.b .pack.c .pack.d 1196} -body { 1197 pack .pack.a -fill z 1198} -returnCodes error -result {bad fill style "z": must be none, x, y, or both} 1199test pack-12.14 {command options and errors} -setup { 1200 pack forget .pack.a .pack.b .pack.c .pack.d 1201} -body { 1202 pack .pack.a -in z 1203} -returnCodes error -result {bad window path name "z"} 1204set pad [winfo pixels .pack 1c] 1205test pack-12.15 {command options and errors} -setup { 1206 pack forget .pack.a .pack.b .pack.c .pack.d 1207} -body { 1208 pack .pack.a -padx abc 1209} -returnCodes error -result {bad pad value "abc": must be positive screen distance} 1210test pack-12.16 {command options and errors} -setup { 1211 pack forget .pack.a .pack.b .pack.c .pack.d 1212} -body { 1213 pack .pack.a -padx {5 abc} 1214} -returnCodes error -result {bad 2nd pad value "abc": must be positive screen distance} 1215test pack-12.17 {command options and errors} -setup { 1216 pack forget .pack.a .pack.b .pack.c .pack.d 1217} -body { 1218 pack .pack.a -padx -1 1219} -returnCodes error -result {bad pad value "-1": must be positive screen distance} 1220test pack-12.18 {command options and errors} -setup { 1221 pack forget .pack.a .pack.b .pack.c .pack.d 1222} -body { 1223 pack .pack.a -padx {5 -1} 1224} -returnCodes error -result {bad 2nd pad value "-1": must be positive screen distance} 1225test pack-12.19 {command options and errors} -setup { 1226 pack forget .pack.a .pack.b .pack.c .pack.d 1227} -body { 1228 pack .pack.a -pady abc 1229} -returnCodes error -result {bad pad value "abc": must be positive screen distance} 1230test pack-12.20 {command options and errors} -setup { 1231 pack forget .pack.a .pack.b .pack.c .pack.d 1232} -body { 1233 pack .pack.a -pady {0 abc} 1234} -returnCodes error -result {bad 2nd pad value "abc": must be positive screen distance} 1235test pack-12.21 {command options and errors} -setup { 1236 pack forget .pack.a .pack.b .pack.c .pack.d 1237} -body { 1238 pack .pack.a -pady -1 1239} -returnCodes error -result {bad pad value "-1": must be positive screen distance} 1240test pack-12.22 {command options and errors} -setup { 1241 pack forget .pack.a .pack.b .pack.c .pack.d 1242} -body { 1243 pack .pack.a -pady {0 -1} 1244} -returnCodes error -result {bad 2nd pad value "-1": must be positive screen distance} 1245test pack-12.23 {command options and errors} -setup { 1246 pack forget .pack.a .pack.b .pack.c .pack.d 1247} -body { 1248 pack .pack.a -ipadx abc 1249} -returnCodes error -result {bad ipadx value "abc": must be positive screen distance} 1250test pack-12.24 {command options and errors} -setup { 1251 pack forget .pack.a .pack.b .pack.c .pack.d 1252} -body { 1253 pack .pack.a -ipadx -1 1254} -returnCodes error -result {bad ipadx value "-1": must be positive screen distance} 1255test pack-12.25 {command options and errors} -setup { 1256 pack forget .pack.a .pack.b .pack.c .pack.d 1257} -body { 1258 pack .pack.a -ipadx {5 5} 1259} -returnCodes error -result {bad ipadx value "5 5": must be positive screen distance} 1260test pack-12.26 {command options and errors} -setup { 1261 pack forget .pack.a .pack.b .pack.c .pack.d 1262} -body { 1263 pack .pack.a -ipady abc 1264} -returnCodes error -result {bad ipady value "abc": must be positive screen distance} 1265test pack-12.27 {command options and errors} -setup { 1266 pack forget .pack.a .pack.b .pack.c .pack.d 1267} -body { 1268 pack .pack.a -ipady -1 1269} -returnCodes error -result {bad ipady value "-1": must be positive screen distance} 1270test pack-12.28 {command options and errors} -setup { 1271 pack forget .pack.a .pack.b .pack.c .pack.d 1272} -body { 1273 pack .pack.a -ipady {5 5} 1274} -returnCodes error -result {bad ipady value "5 5": must be positive screen distance} 1275test pack-12.29 {command options and errors} -setup { 1276 pack forget .pack.a .pack.b .pack.c .pack.d 1277} -body { 1278 pack .pack.a -side bac 1279} -returnCodes error -result {bad side "bac": must be top, bottom, left, or right} 1280test pack-12.30 {command options and errors} -setup { 1281 pack forget .pack.a .pack.b .pack.c .pack.d 1282} -body { 1283 pack .pack.a -lousy bac 1284} -returnCodes error -result {bad option "-lousy": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side} 1285test pack-12.31 {command options and errors} -setup { 1286 pack forget .pack.a .pack.b .pack.c .pack.d 1287} -body { 1288 pack .pack.a -padx 1289} -returnCodes error -result {extra option "-padx" (option with no value?)} 1290test pack-12.32 {command options and errors} -setup { 1291 pack forget .pack.a .pack.b .pack.c .pack.d 1292} -body { 1293 pack .pack.a ? 22 1294} -returnCodes error -result {bad option "?": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side} 1295test pack-12.33 {command options and errors} -setup { 1296 pack forget .pack.a .pack.b .pack.c .pack.d 1297} -body { 1298 pack .pack.a -in . 1299} -returnCodes error -result {can't pack .pack.a inside .} 1300test pack-12.34 {command options and errors} -setup { 1301 pack forget .pack.a .pack.b .pack.c .pack.d 1302} -body { 1303 frame .pack.a.a 1304 pack .pack.a.a -in .pack.b 1305} -returnCodes error -result {can't pack .pack.a.a inside .pack.b} 1306test pack-12.35 {command options and errors} -setup { 1307 pack forget .pack.a .pack.b .pack.c .pack.d 1308} -body { 1309 pack .pack.a -in .pack.a 1310} -returnCodes error -result {can't pack .pack.a inside itself} 1311test pack-12.36 {command options and errors} -setup { 1312 pack forget .pack.a .pack.b .pack.c .pack.d 1313} -body { 1314 pack .pack.a .pack.b .pack.c .pack.d 1315 pack forget .pack.a .pack.d 1316 pack content .pack 1317} -result {.pack.b .pack.c} 1318test pack-12.37 {command options and errors} -setup { 1319 pack forget .pack.a .pack.b .pack.c .pack.d 1320} -body { 1321 .pack configure -width 300 -height 200 1322 pack propagate .pack 0 1323 pack .pack.a 1324 update 1325 set result [list [winfo reqwidth .pack] [winfo reqheight .pack]] 1326 pack propagate .pack 1 1327 update 1328 lappend result [winfo reqwidth .pack] [winfo reqheight .pack] 1329 return $result 1330} -result {300 200 20 40} 1331test pack-12.38 {command options and errors} -body { 1332 set result [pack propagate .pack.d] 1333 pack propagate .pack.d 0 1334 lappend result [pack propagate .pack.d] 1335 pack propagate .pack.d 1 1336 lappend result [pack propagate .pack.d] 1337 return $result 1338} -result {1 0 1} 1339test pack-12.39 {command options and errors} -setup { 1340 pack forget .pack.a .pack.b .pack.c .pack.d 1341} -body { 1342 pack propagate .dum 1343} -returnCodes error -result {bad window path name ".dum"} 1344test pack-12.40 {command options and errors} -setup { 1345 pack forget .pack.a .pack.b .pack.c .pack.d 1346} -body { 1347 pack propagate .pack foo 1348} -returnCodes error -result {expected boolean value but got "foo"} 1349test pack-12.41 {command options and errors} -setup { 1350 pack forget .pack.a .pack.b .pack.c .pack.d 1351} -body { 1352 pack propagate .pack foo bar 1353} -returnCodes error -result {wrong # args: should be "pack propagate window ?boolean?"} 1354test pack-12.42 {command options and errors} -setup { 1355 pack forget .pack.a .pack.b .pack.c .pack.d 1356} -body { 1357 pack content 1358} -returnCodes error -result {wrong # args: should be "pack option arg ?arg ...?"} 1359test pack-12.43 {command options and errors} -setup { 1360 pack forget .pack.a .pack.b .pack.c .pack.d 1361} -body { 1362 pack content a b 1363} -returnCodes error -result {wrong # args: should be "pack content window"} 1364test pack-12.44 {command options and errors} -setup { 1365 pack forget .pack.a .pack.b .pack.c .pack.d 1366} -body { 1367 pack content .x 1368} -returnCodes error -result {bad window path name ".x"} 1369test pack-12.45 {command options and errors} -setup { 1370 pack forget .pack.a .pack.b .pack.c .pack.d 1371} -body { 1372 pack content .pack.a 1373} -returnCodes ok -result {} 1374test pack-12.46 {command options and errors} -setup { 1375 pack forget .pack.a .pack.b .pack.c .pack.d 1376} -body { 1377 pack lousy .pack 1378} -returnCodes error -result {bad option "lousy": must be configure, content, forget, info, propagate, or slaves} 1379 1380 1381test pack-13.1 {window deletion} -setup { 1382 pack forget .pack.a .pack.b .pack.c .pack.d .pack.right .pack.bottom 1383} -body { 1384 pack .pack.right -side right 1385 pack .pack.bottom -side bottom 1386 pack .pack.a .pack.d .pack.b .pack.c -side top 1387 update 1388 destroy .pack.d 1389 update 1390 set result [list [pack content .pack] [winfo geometry .pack.a] \ 1391 [winfo geometry .pack.b] [winfo geometry .pack.c]] 1392} -result {{.pack.right .pack.bottom .pack.a .pack.b .pack.c} 20x40+30+0 50x30+15+40 80x80+0+70} 1393 1394 1395test pack-14.1 {respond to changes in expansion} -setup { 1396 pack forget .pack.a .pack.b .pack.c .pack.d .pack.right .pack.bottom 1397} -body { 1398 pack .pack.right -side right 1399 pack .pack.bottom -side bottom 1400 wm geom .pack {} 1401 pack .pack.a 1402 update 1403 set result [winfo geom .pack.a] 1404 wm geom .pack 400x300 1405 update 1406 lappend result [winfo geom .pack.a] 1407 pack .pack.a -expand true -fill both 1408 update 1409 lappend result [winfo geom .pack.a] 1410} -cleanup { 1411 wm geom .pack {} 1412} -result {20x40+0+0 20x40+90+0 200x150+0+0} 1413 1414 1415test pack-15.1 {managing geometry with -in option} -setup { 1416 pack forget .pack.a .pack.b .pack.c .pack.d 1417 destroy .pack.f 1418} -body { 1419 pack .pack.a -side top 1420 frame .pack.f 1421 lower .pack.f 1422 pack .pack.f -side top 1423 frame .pack.f.f2 1424 lower .pack.f.f2 1425 pack .pack.f.f2 -side top 1426 pack .pack.b -in .pack.f.f2 1427 update 1428 set result [winfo geom .pack.b] 1429 pack forget .pack.a 1430 update 1431 lappend result [winfo geom .pack.b] 1432} -cleanup { 1433 destroy .pack.f 1434} -result {50x30+0+40 50x30+0+0} 1435test pack-15.2 {managing geometry with -in option} -setup { 1436 pack forget .pack.a .pack.b .pack.c .pack.d 1437 destroy .pack.f 1438} -body { 1439 frame .pack.f 1440 lower .pack.f 1441 pack .pack.a -in .pack.f -side top 1442 update 1443 set result [winfo ismapped .pack.a] 1444 place .pack.f -x 30 -y 45 1445 update 1446 lappend result [winfo ismapped .pack.a] [winfo geometry .pack.a] 1447 place forget .pack.f 1448 update 1449 lappend result [winfo ismapped .pack.a] 1450} -cleanup { 1451 destroy .pack.f 1452} -result {0 1 20x40+30+45 0} 1453test pack-15.3 {managing geometry with -in option} -setup { 1454 pack forget .pack.a .pack.b .pack.c .pack.d 1455 destroy .pack.f 1456} -body { 1457 pack .pack.a -side top 1458 frame .pack.f 1459 lower .pack.f 1460 pack .pack.f -side top 1461 frame .pack.f.f2 1462 lower .pack.f.f2 1463 pack .pack.f.f2 -side top 1464 pack .pack.b -in .pack.f.f2 1465 update 1466 set result [winfo ismapped .pack.b] 1467 pack forget .pack.f 1468 update 1469 lappend result [winfo ismapped .pack.b] 1470} -cleanup { 1471 destroy .pack.f 1472} -result {1 0} 1473test pack-15.4 {managing geometry with -in option} -setup { 1474 pack forget .pack.a .pack.b .pack.c .pack.d 1475 destroy .pack.f1 .pack.f2 1476} -body { 1477 foreach i {1 2} { 1478 frame .pack.f$i -width 100 -height 40 -bd 2 -relief raised 1479 lower .pack.f$i 1480 pack propagate .pack.f$i 0 1481 pack .pack.f$i -side top 1482 } 1483 pack .pack.b -in .pack.f1 -side right 1484 update 1485 set result {} 1486 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1487 pack .pack.b -in .pack.f2 -side bottom 1488 update 1489 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1490 .pack.f1 configure -width 50 -height 20 1491 update 1492 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1493 pack forget .pack.b 1494 update 1495 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1496} -cleanup { 1497 destroy .pack.f1 .pack.f2 1498} -result {50x30+48+5 1 50x30+25+48 1 50x30+25+28 1 50x30+25+28 0} 1499test pack-15.5 {managing geometry with -in option} -setup { 1500 pack forget .pack.a .pack.b .pack.c .pack.d 1501 destroy .pack.f1 .pack.f2 1502} -body { 1503 foreach i {1 2} { 1504 frame .pack.f$i -width 100 -height 20 -bd 2 -relief raised 1505 lower .pack.f$i 1506 pack propagate .pack.f$i 0 1507 pack .pack.f$i -side top 1508 } 1509 pack .pack.b -in .pack.f2 -side top 1510 update 1511 set result {} 1512 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1513 pack .pack.a -before .pack.b -side top 1514 update 1515 lappend result [winfo geometry .pack.b] [winfo ismapped .pack.b] 1516} -cleanup { 1517 destroy .pack.f1 .pack.f2 1518} -result {50x16+25+22 1 50x16+25+22 0} 1519 1520 1521test pack-16.1 {geometry manager name} -setup { 1522 pack forget .pack.a .pack.b .pack.c .pack.d 1523 set result {} 1524} -body { 1525 lappend result [winfo manager .pack.a] 1526 pack .pack.a 1527 lappend result [winfo manager .pack.a] 1528 pack forget .pack.a 1529 lappend result [winfo manager .pack.a] 1530} -result {{} pack {}} 1531 1532 1533test pack-17.1 {PackLostContentProc procedure} -setup { 1534 pack forget .pack.a .pack.b .pack.c .pack.d 1535} -body { 1536 pack .pack.a 1537 update 1538 place .pack.a -x 40 -y 10 1539 update 1540 list [winfo manager .pack.a] [winfo geometry .pack.a] 1541} -result {place 20x40+40+10} 1542test pack-17.2 {PackLostContentProc procedure} -setup { 1543 pack forget .pack.a .pack.b .pack.c .pack.d 1544} -body { 1545 pack .pack.a 1546 update 1547 place .pack.a -x 40 -y 10 1548 update 1549 winfo manager .pack.a 1550 winfo geometry .pack.a 1551 pack info .pack.a 1552} -returnCodes error -result {window ".pack.a" isn't packed} 1553 1554if {[tk windowingsystem] ne "aqua"} { 1555 proc packUpdate {} { 1556 update 1557 } 1558} else { 1559 proc packUpdate {} { 1560 } 1561} 1562 1563test pack-18.1 {unmap content when container unmapped} -constraints { 1564 tempNotPc failsOnUbuntu failsOnXQuarz 1565} -setup { 1566 eval destroy [winfo child .pack] 1567} -body { 1568 1569 # adjust the position of .pack before test to avoid a screen switch 1570 # that occurs with window managers that have desktops four times as big 1571 # as the screen (screen switch causes scale and other tests to fail). 1572 1573 wm geometry .pack +100+100 1574 1575 # On the PC, when the width/height is configured while the window is 1576 # unmapped, the changes don't take effect until the window is remapped. 1577 # Who knows why? 1578 1579 eval destroy [winfo child .pack] 1580 frame .pack.a -width 100 -height 50 -relief raised -bd 2 1581 pack .pack.a 1582 update idletasks 1583 set result [winfo ismapped .pack.a] 1584 wm iconify .pack 1585 lappend result [winfo ismapped .pack.a] 1586 .pack.a configure -width 200 -height 75 1587 update idletasks 1588 lappend result [winfo width .pack.a ] [winfo height .pack.a] \ 1589 [winfo ismapped .pack.a] 1590 wm deiconify .pack 1591 packUpdate 1592 lappend result [winfo ismapped .pack.a] 1593} -result {1 0 200 75 0 1} 1594 1595test pack-18.2 {unmap content when container unmapped} -constraints {failsOnUbuntu failsOnXQuarz} -setup { 1596 eval destroy [winfo child .pack] 1597} -body { 1598 1599 # adjust the position of .pack before test to avoid a screen switch 1600 # that occurs with window managers that have desktops four times as big 1601 # as the screen (screen switch causes scale and other tests to fail). 1602 1603 wm geometry .pack +100+100 1604 frame .pack.a -relief raised -bd 2 1605 frame .pack.b -width 70 -height 30 -relief sunken -bd 2 1606 pack .pack.a 1607 pack .pack.b -in .pack.a 1608 update idletasks 1609 set result [winfo ismapped .pack.b] 1610 wm iconify .pack 1611 lappend result [winfo ismapped .pack.b] 1612 .pack.b configure -width 100 -height 30 1613 update idletasks 1614 lappend result [winfo width .pack.b ] [winfo height .pack.b] \ 1615 [winfo ismapped .pack.b] 1616 wm deiconify .pack 1617 packUpdate 1618 lappend result [winfo ismapped .pack.b] 1619} -result {1 0 100 30 0 1} 1620 1621 1622test pack-19.1 {test respect for internalborder} -setup { 1623 catch {eval pack forget [pack content .pack]} 1624 destroy .pack.l .pack.lf 1625} -body { 1626 wm geometry .pack 200x200 1627 frame .pack.l -width 15 -height 10 1628 labelframe .pack.lf -labelwidget .pack.l 1629 pack .pack.lf -fill both -expand 1 1630 frame .pack.lf.f 1631 pack .pack.lf.f -fill both -expand 1 1632 update 1633 set res [list [winfo geometry .pack.lf.f]] 1634 .pack.lf configure -labelanchor e -padx 3 -pady 5 1635 update 1636 lappend res [winfo geometry .pack.lf.f] 1637} -cleanup { 1638 destroy .pack.l .pack.lf 1639} -result {196x188+2+10 177x186+5+7} 1640test pack-19.2 {test support for minreqsize} -setup { 1641 catch {eval pack forget [pack content .pack]} 1642 destroy .pack.l .pack.lf 1643} -body { 1644 wm geometry .pack {} 1645 frame .pack.l -width 150 -height 100 1646 labelframe .pack.lf -labelwidget .pack.l 1647 pack .pack.lf -fill both -expand 1 1648 frame .pack.lf.f -width 20 -height 25 1649 pack .pack.lf.f 1650 update 1651 set res [list [winfo geometry .pack.lf]] 1652 .pack.lf configure -labelanchor ws 1653 update 1654 lappend res [winfo geometry .pack.lf] 1655} -cleanup { 1656 destroy .pack.l .pack.lf 1657} -result {162x127+0+0 172x112+0+0} 1658 1659 1660# cleanup 1661cleanupTests 1662return 1663 1664 1665 1666