1# This file is a Tcl script to test menus in Tk. It is 2# organized in the standard fashion for Tcl tests. This 3# file tests the Macintosh-specific features of the menu 4# system. 5# 6# Copyright (c) 1995-1997 Sun Microsystems, Inc. 7# Copyright (c) 1998-1999 by Scriptics Corporation. 8# All rights reserved. 9# 10# RCS: @(#) $Id: macMenu.test,v 1.7 2002/07/13 20:28:35 dgp Exp $ 11 12package require tcltest 2.1 13namespace import -force tcltest::configure 14namespace import -force tcltest::testsDirectory 15configure -testdir [file join [pwd] [file dirname [info script]]] 16configure -loadfile [file join [testsDirectory] constraints.tcl] 17tcltest::loadTestedCommands 18 19test macMenu-1.0 {TkMacUseMenuID} {macOnly} { 20 # Can't really test TkMacUseMenuID; it's only called on startup. 21} {} 22 23test macMenu-2.1 {GetNewID} {macOnly} { 24 catch {destroy .m1} 25 list [catch {menu .m1} msg] $msg [destroy .m1] 26} {0 .m1 {}} 27test macMenu-2.2 {GetNewID - cascade menu} {macOnly} { 28 catch {destroy .m1} 29 menu .m1 30 .m1 add cascade -menu .m2 31 list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2] 32} {0 .m2 {} {}} 33test macMenu-2.3 {GetNewID - running out of ids} {macOnly} { 34 deleteWindows 35 menu .menu 36 for {set i 0} {$i < 230} {incr i} { 37 menu .m$i 38 .menu add cascade -label ".m$i" -menu .m$i 39 } 40 menu .breaker 41 list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] 42} {1 {No more menus can be allocated.} {}} 43 44test macMenu-3.1 {FreeID} {macOnly} { 45 catch {destroy .m1} 46 menu .m1 47 list [catch {destroy .m1} msg] $msg 48} {0 {}} 49 50# No way to test running out of ids in TkpNewPlatformMenu 51test macMenu-4.1 {TkpNewMenu} {macOnly} { 52 catch {destroy .m1} 53 list [catch {menu .m1} msg] $msg [catch {destroy .m1} msg2] $msg2 54} {0 .m1 0 {}} 55test macMenu-4.2 {TkpNewMenu - checking for help menu when one is there} {macOnly} { 56 catch {destroy .m1} 57 catch {destroy .m2} 58 menu .m1 59 menu .m1.help -tearoff 0 60 .m1.help add command -label Test 61 . configure -menu .m1 62 raise . 63 update 64 list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2] [. configure -menu ""] 65} {0 .m2 {} {} {}} 66test macMenu-4.3 {TkpNewMenu - menubar set but different interp} {macOnly} { 67 catch {interp delete testinterp} 68 catch {destroy .m1} 69 interp create testinterp 70 load {} Tk testinterp 71 interp eval testinterp {raise .} 72 interp eval testinterp {menu .m1} 73 interp eval testinterp {. configure -menu .m1} 74 interp eval testinterp {update} 75 list [catch {menu .m1} msg] $msg [destroy .m1] [interp delete testinterp] 76} {0 .m1 {} {}} 77test macMenu-4.4 {TkpNewMenu - menubar set but new menu has different parent} {macOnly} { 78 catch {destroy .m1} 79 catch {destroy .m2} 80 menu .m1 -tearoff 0 81 .m1 add cascade -menu .m1.help 82 menu .m2 83 .m2 add cascade -menu .m2.help 84 . configure -menu .m1 85 raise . 86 update 87 list [catch {menu .m2.help} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .m2] 88} {0 .m2.help {} {} {}} 89test macMenu-4.5 {TkpNewMenu - menubar set, same parent, not .help} {macOnly} { 90 catch {destroy .m1} 91 menu .m1 -tearoff 0 92 .m1 add cascade -menu .m1.help 93 . configure -menu .m1 94 raise . 95 update 96 list [catch {menu .m1.foo} msg] $msg [. configure -menu ""] [destroy .m1] 97} {0 .m1.foo {} {}} 98test macMenu-4.6 {TkpNewMenu - creating the help menu} {macOnly} { 99 catch {destroy .m1} 100 menu .m1 -tearoff 0 101 .m1 add cascade -menu .m1.help 102 . configure -menu .m1 103 raise . 104 update 105 list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1] 106} {0 .m1.help {} {}} 107 108test macMenu-5.1 {TkpDestroyMenu} {macOnly} { 109 catch {destroy .m1} 110 menu .m1 111 list [catch {destroy .m1} msg] $msg 112} {0 {}} 113test macMenu-5.2 {TkpDestroyMenu - help menu} {macOnly} { 114 catch {destroy .m1} 115 menu .m1 -tearoff 0 116 .m1 add cascade -menu .m1.help 117 . configure -menu .m1 118 menu .m1.help 119 raise . 120 update 121 list [catch {destroy .m1.help} msg] $msg [. configure -menu ""] [destroy .m1] 122} {0 {} {} {}} 123test macMenu-5.3 {TkpDestroyMenu - idle handler pending} {macOnly} { 124 catch {destroy .m1} 125 menu .m1 126 .m1 add command -label test 127 list [catch {destroy .m1} msg] $msg 128} {0 {}} 129test macMenu-5.4 {TkpDestroyMenu - idle handler not pending} {macOnly} { 130 catch {destroy .m1} 131 menu .m1 132 .m1 add command -label test 133 update idletasks 134 list [catch {destroy .m1} msg] $msg 135} {0 {}} 136 137test macMenu-6.1 {SetMenuCascade} {macOnly} { 138 catch {destroy .m1} 139 catch {destroy .m2} 140 menu .m1 141 menu .m2 142 list [catch {.m2 add cascade -menu .m1} msg] $msg [destroy .m1 .m2] 143} {0 {} {}} 144test macMenu-6.2 {SetMenuCascade - running out of ids} {macOnly} { 145 deleteWindows 146 menu .menu 147 for {set i 0} {$i < 230} {incr i} { 148 menu .m$i 149 .menu add cascade -label ".m$i" -menu .m$i 150 } 151 menu .breaker 152 list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] 153} {1 {No more menus can be allocated.} {}} 154 155test macMenu-7.1 {TkpDestroyMenuEntry} {macOnly} { 156 catch {destroy .m1} 157 menu .m1 158 .m1 add command -label "test" 159 list [catch {.m1 delete 1} msg] $msg [destroy .m1] 160} {0 {} {}} 161test macMenu-7.2 {TkpDestroyMenuEntry - help menu} {macOnly} { 162 catch {destroy .m1} 163 menu .m1 164 .m1 add cascade -menu .m1.help 165 menu .m1.help -tearoff 0 166 .m1.help add command -label "test" 167 . configure -menu .m1 168 raise . 169 update 170 list [catch {.m1.help delete test} msg] $msg [. configure -menu ""] [destroy .m1] 171} {0 {} {} {}} 172 173test macMenu-8.1 {GetEntryText} {macOnly} { 174 catch {destroy .m1} 175 list [catch {menu .m1} msg] $msg [destroy .m1] 176} {0 .m1 {}} 177test macMenu-8.2 {GetEntryText} {macOnly testImageType} { 178 catch {destroy .m1} 179 catch {image delete image1} 180 menu .m1 181 image create test image1 182 list [catch {.m1 add command -image image1} msg] $msg [destroy .m1] [image delete image1] 183} {0 {} {} {}} 184test macMenu-8.3 {GetEntryText} {macOnly} { 185 catch {destroy .m1} 186 menu .m1 187 list [catch {.m1 add command -bitmap questhead} msg] $msg [destroy .m1] 188} {0 {} {}} 189test macMenu-8.4 {GetEntryText} {macOnly} { 190 catch {destroy .m1} 191 menu .m1 192 list [catch {.m1 add command} msg] $msg [destroy .m1] 193} {0 {} {}} 194test macMenu-8.5 {GetEntryText} {macOnly} { 195 catch {destroy .m1} 196 menu .m1 197 .m1 add command -label "foo" 198 list [catch {.m1 add command -label "foo"} msg] $msg [destroy .m1] 199} {0 {} {}} 200test macMenu-8.6 {GetEntryText} {macOnly} { 201 catch {destroy .m1} 202 menu .m1 203 list [catch {.m1 add command -label "This is a very long string. 9012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890"} \ 204 msg] $msg [destroy .m1] 205} {0 {} {}} 206test macMenu-8.7 {GetEntryText - elipses character} {macOnly} { 207 catch {destroy .m1} 208 menu .m1 209 list [catch {.m1 add command -label "foo..."} msg] $msg [destroy .m1] 210} {0 {} {}} 211test macMenu-8.8 {GetEntryText - false elipses character} {macOnly} { 212 catch {destroy .m1} 213 menu .m1 214 list [catch {.m1 add command -label "foo."} msg] $msg [destroy .m1] 215} {0 {} {}} 216test macMenu-8.9 {GetEntryText - false elipses character} {macOnly} { 217 catch {destroy .m1} 218 menu .m1 219 list [catch {.m1 add command -label "foo.."} msg] $msg [destroy .m1] 220} {0 {} {}} 221test macMenu-8.10 {GetEntryText - false elipses character} {macOnly} { 222 catch {destroy .m1} 223 menu .m1 224 list [catch {.m1 add command -label "foo.b"} msg] $msg [destroy .m1] 225} {0 {} {}} 226test macMenu-8.11 {GetEntryText - false elipses character} {macOnly} { 227 catch {destroy .m1} 228 menu .m1 229 list [catch {.m1 add command -label "foo..b"} msg] $msg [destroy .m1] 230} {0 {} {}} 231 232 233# test macMenu-9.1 - assumes some fonts 234test macMenu-9.1 {FindMarkCharacter} {macOnly} { 235 catch {destroy .m1} 236 menu .m1 -font "Helvetica 12" -tearoff 0 237 .m1 add checkbutton -label test 238 .m1 invoke test 239 list [catch {update idletasks} msg] $msg [destroy .m1] 240} {0 {} {}} 241# All standard fonts have "�" defined. We can't test further. 242 243test macMenu-10.1 {SetMenuIndicator - cascade entry} {macOnly} { 244 catch {destroy .m1} 245 menu .m1 246 list [catch {.m1 add cascade -label foo} msg] $msg [destroy .m1] 247} {0 {} {}} 248test macMenu-10.2 {SetMenuIndicator - not radio or checkbutton} {macOnly} { 249 catch {destroy .m1} 250 menu .m1 251 list [catch {.m1 add command -label foo} msg] $msg [destroy .m1] 252} {0 {} {}} 253test macMenu-10.3 {SetMenuIndicator - indiatorOn false} {macOnly} { 254 catch {destroy .m1} 255 menu .m1 256 list [catch {.m1 add checkbutton -label foo -indicatoron 0} msg] $msg [destroy .m1] 257} {0 {} {}} 258test macMenu-10.4 {SetMenuIndicator - entry not selected} {macOnly} { 259 catch {destroy .m1} 260 menu .m1 261 list [catch {.m1 add checkbutton -label foo} msg] $msg [destroy .m1] 262} {0 {} {}} 263test macMenu-10.5 {SetMenuIndicator - checkbutton} {macOnly} { 264 catch {destroy .m1} 265 menu .m1 266 .m1 add checkbutton -label foo 267 list [catch {.m1 invoke foo} msg] $msg [destroy .m1] 268} {0 {} {}} 269test macMenu-10.6 {SetMenuIndicator - radio button} {macOnly} { 270 catch {destroy .m1} 271 menu .m1 272 .m1 add radiobutton -label foo 273 list [catch {.m1 invoke foo} msg] $msg [destroy .m1] 274} {0 {} {}} 275 276test macMenu-11.1 {SetMenuTitle} {macOnly} { 277 catch {destroy .m1} 278 catch {destroy .container} 279 menu .container 280 menu .m1 281#previous title is .m1 282 .container add cascade -label "File" -menu .m1 283 list [catch {. configure -menu .container} msg] $msg [. configure -menu ""] [destroy .container .m1] 284} {0 {} {} {}} 285test macMenu-11.2 {SetMenuTitle} {macOnly} { 286 menu .container 287 menu .m1 288 . configure -menu "" 289#previous title is .m1 290 .container add cascade -label "F" -menu .m1 291 list [catch {. configure -menu .container} msg] $msg [. configure -menu ""] [destroy .container .m1] 292} {0 {} {} {}} 293 294test macMenu-12.1 {TkpConfigureMenuEntry} {macOnly} { 295 catch {destroy .m1} 296 . configure -menu "" 297 menu .m1 298 .m1 add cascade -menu .m3 299 list [catch {.m1 entryconfigure 1 -menu .m2} msg] $msg [destroy .m1] 300} {0 {} {}} 301test macMenu-12.2 {TkpConfigureMenuEntry} {macOnly} { 302 catch {destroy .m1} 303 catch {destroy .m2} 304 . configure -menu "" 305 menu .m1 306 .m1 add cascade -menu .m3 307 menu .m2 308 list [catch {.m1 entryconfigure 1 -menu .m2} msg] $msg [destroy .m1 .m2] 309} {0 {} {}} 310test macMenu-12.3 {TkpConfigureMenuEntry - running out of ids} {macOnly} { 311 deleteWindows 312 menu .menu 313 for {set i 0} {$i < 230} {incr i} { 314 menu .m$i 315 .menu add cascade -label ".m$i" -menu .m$i 316 } 317 menu .breaker 318 list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] 319} {1 {No more menus can be allocated.} {}} 320test macMenu-12.4 {TkpConfigureMenuEntry - Control} {macOnly} { 321 catch {destroy .m1} 322 menu .m1 323 list [catch {.m1 add command -accel "Control+S"} msg] $msg [destroy .m1] 324} {0 {} {}} 325test macMenu-12.5 {TkpConfigureMenuEntry - Ctrl} {macOnly} { 326 catch {destroy .m1} 327 menu .m1 328 list [catch {.m1 add command -accel "Ctrl+S"} msg] $msg [destroy .m1] 329} {0 {} {}} 330test macMenu-12.6 {TkpConfigureMenuEntry - Shift} {macOnly} { 331 catch {destroy .m1} 332 menu .m1 333 list [catch {.m1 add command -accel "Shift+S"} msg] $msg [destroy .m1] 334} {0 {} {}} 335test macMenu-12.7 {TkpConfigureMenuEntry - Option} {macOnly} { 336 catch {destroy .m1} 337 menu .m1 338 list [catch {.m1 add command -accel "Opt+S"} msg] $msg [destroy .m1] 339} {0 {} {}} 340test macMenu-12.8 {TkpConfigureMenuEntry - Command} {macOnly} { 341 catch {destroy .m1} 342 menu .m1 343 list [catch {.m1 add command -accel "Command+S"} msg] $msg [destroy .m1] 344} {0 {} {}} 345test macMenu-12.9 {TkpConfigureMenuEntry - Cmd} {macOnly} { 346 catch {destroy .m1} 347 menu .m1 348 list [catch {.m1 add command -accel "Cmd+S"} msg] $msg [destroy .m1] 349} {0 {} {}} 350test macMenu-12.10 {TkpConfigureMenuEntry - Alt} {macOnly} { 351 catch {destroy .m1} 352 menu .m1 353 list [catch {.m1 add command -accel "Alt+S"} msg] $msg [destroy .m1] 354} {0 {} {}} 355test macMenu-12.11 {TkpConfigureMenuEntry - Meta} {macOnly} { 356 catch {destroy .m1} 357 menu .m1 358 list [catch {.m1 add command -accel "Meta+S"} msg] $msg [destroy .m1] 359} {0 {} {}} 360test macMenu-12.12 {TkpConfigureMenuEntry - Two modifiers} {macOnly} { 361 catch {destroy .m1} 362 menu .m1 363 list [catch {.m1 add command -accel "Cmd+Shift+S"} msg] $msg [destroy .m1] 364} {0 {} {}} 365test macMenu-12.13 {TkpConfigureMenuEntry - dash instead of plus} {macOnly} { 366 catch {destroy .m1} 367 menu .m1 368 list [catch {.m1 add command -accel "Command-S"} msg] $msg [destroy .m1] 369} {0 {} {}} 370test macMenu-12.14 {TkpConfigureMenuEntry - idler pending} {macOnly} { 371 catch {destroy .m1} 372 menu .m1 -tearoff 0 373 .m1 add command -label test 374 list [catch {.m1 entryconfigure test -label test2} msg] $msg [destroy .m1] 375} {0 {} {}} 376test macMenu-12.15 {TkpConfigureMenuEntry - idler not pending} {macOnly} { 377 catch {destroy .m1} 378 menu .m1 -tearoff 0 379 .m1 add command -label test 380 update idletasks 381 list [catch {.m1 entryconfigure test -label test2} msg] $msg [destroy .m1] 382} {0 {} {}} 383 384test macMenu-13.1 {ReconfigureIndividualMenu - getting rid of zero items} {macOnly} { 385 catch {destroy .m1} 386 menu .m1 -tearoff 0 387 .m1 add command -label test 388 list [catch {update idletasks} msg] $msg [destroy .m1] 389} {0 {} {}} 390test macMenu-13.2 {ReconfigureIndividualMenu - getting rid of one item} {macOnly} { 391 catch {destroy .m1} 392 menu .m1 -tearoff 0 393 .m1 add command -label test 394 update idletasks 395 .m1 delete test 396 list [catch {update idletasks} msg] $msg [destroy .m1] 397} {0 {} {}} 398test macMenu-13.3 {ReconfigureIndividualMenu - getting rid of more than one} {macOnly} { 399 catch {destroy .m1} 400 menu .m1 -tearoff 0 401 .m1 add command -label test 402 .m1 add command -label test2 403 update idletasks 404 .m1 entryconfigure test2 -label "test two" 405 list [catch {update idletasks} msg] $msg [destroy .m1] 406} {0 {} {}} 407test macMenu-13.4 {ReconfigureIndividualMenu - separator} {macOnly} { 408 catch {destroy .m1} 409 menu .m1 410 .m1 add separator 411 list [catch {update idletasks} msg] $msg [destroy .m1] 412} {0 {} {}} 413test macMenu-13.5 {ReconfigureIndividualMenu - disabled} {macOnly} { 414 catch {destroy .m1} 415 menu .m1 416 .m1 add command 417 .m1 entryconfigure 1 -state disabled 418 list [catch {update idletasks} msg] $msg [destroy .m1] 419} {0 {} {}} 420test macMenu-13.6 {ReconfigureIndividualMenu - active} {macOnly} { 421 catch {destroy .m1} 422 menu .m1 423 .m1 add command 424 .m1 entryconfigure 1 -state active 425 list [catch {update idletasks} msg] $msg [destroy .m1] 426} {0 {} {}} 427test macMenu-13.7 {ReconfigureIndividualMenu - checkbutton not checked} {macOnly} { 428 catch {destroy .m1} 429 menu .m1 430 .m1 add checkbutton -label test 431 list [catch {update idletasks} msg] $msg [destroy .m1] 432} {0 {} {}} 433test macMenu-13.8 {ReconfigureIndividualMenu - checkbutton - indicator off} {macOnly} { 434 catch {destroy .m1} 435 menu .m1 436 .m1 add checkbutton -label test -indicatoron 0 437 .m1 invoke test 438 list [catch {update idletasks} msg] $msg [destroy .m1] 439} {0 {} {}} 440test macMenu-13.9 {ReconfigureIndividualMenu - checkbutton on} {macOnly} { 441 catch {destroy .m1} 442 menu .m1 443 .m1 add checkbutton -label test 444 .m1 invoke test 445 list [catch {update idletasks} msg] $msg [destroy .m1] 446} {0 {} {}} 447test macMenu-13.10 {ReconfigureIndividualMenu - radiobutton not checked} {macOnly} { 448 catch {destroy .m1} 449 menu .m1 450 .m1 add radiobutton -label test 451 list [catch {update idletasks} msg] $msg [destroy .m1] 452} {0 {} {}} 453test macMenu-13.11 {ReconfigureIndividualMenu - radiobutton - indicator off} {macOnly} { 454 catch {destroy .m1} 455 menu .m1 456 .m1 add radiobutton -label test -indicatoron 0 457 .m1 invoke test 458 list [catch {update idletasks} msg] $msg [destroy .m1] 459} {0 {} {}} 460test macMenu-13.12 {ReconfigureIndividualMenu - radiobutton on} {macOnly} { 461 catch {destroy .m1} 462 menu .m1 463 .m1 add radiobutton -label test 464 .m1 invoke test 465 list [catch {update idletasks} msg] $msg [destroy .m1] 466} {0 {} {}} 467test macMenu-13.13 {ReconfigureIndividualMenu} {macOnly} { 468 catch {destroy .m1} 469 . configure -menu "" 470 menu .m1 471 .m1 add cascade -menu .m3 472 .m1 entryconfigure 1 -menu .m2 473 list [catch {update idletasks} msg] $msg [destroy .m1] 474} {0 {} {}} 475test macMenu-13.14 {ReconfigureIndividualMenu} {macOnly} { 476 catch {destroy .m1} 477 catch {destroy .m2} 478 . configure -menu "" 479 menu .m1 480 .m1 add cascade -menu .m3 481 menu .m2 482 .m1 entryconfigure 1 -menu .m2 483 list [catch {update idletasks} msg] $msg [destroy .m1 .m2] 484} {0 {} {}} 485test macMenu-13.15 {ReconfigureIndividualMenu - accelerator} {macOnly} { 486 catch {destroy .m1} 487 menu .m1 488 .m1 add command -accel "Command-S" 489 list [catch {update idletasks} msg] $msg [destroy .m1] 490} {0 {} {}} 491test macMenu-13.16 {ReconfigureIndividualMenu - parent is disabled} {macOnly} { 492 catch {destroy .m1} 493 menu .m1 494 .m1 add cascade -label .m1.edit -label "Edit" -state disabled 495 menu .m1.edit 496 .m1.edit add command -label foo 497 list [catch {update idletasks} msg] $msg [destroy .m1] 498} {0 {} {}} 499test macMenu-13.17 {ReconfigureIndividualMenu - disabling parent} {macOnly} { 500 catch {destroy .m1} 501 menu .m1 502 .m1 add cascade -label .m1.edit -label Edit 503 menu .m1.edit 504 .m1.edit add command -label foo 505 .m1 entryconfigure Edit -state disabled 506 list [catch {update idletasks} msg] $msg [destroy .m1] 507} {0 {} {}} 508 509test macMenu-14.1 {ReconfigureMacintoshMenu - normal menu} {macOnly} { 510 catch {destroy .m1} 511 menu .m1 -tearoff 0 512 .m1 add command -label test 513 list [catch {update idletasks} msg] $msg [destroy .m1] 514} {0 {} {}} 515test macMenu-14.2 {ReconfigureMacintoshMenu - apple menu} {macOnly} { 516 catch {destroy .m1} 517 menu .m1 518 .m1 add cascade -menu .m1.apple 519 menu .m1.apple -tearoff 0 520 .m1.apple add command -label test 521 . configure -menu .m1 522 raise . 523 list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] 524} {0 {} {} {}} 525test macMenu-14.3 {ReconfigureMacintoshMenu - help menu} {macOnly} { 526 catch {destroy .m1} 527 menu .m1 528 .m1 add cascade -menu .m1.help 529 menu .m1.help -tearoff 0 530 .m1.help add command -label test 531 . configure -menu .m1 532 raise . 533 list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] 534} {0 {} {} {}} 535test macMenu-14.4 {ReconfigureMacintoshMenu - menubar} {macOnly} { 536 catch {destroy .m1} 537 menu .m1 538 .m1 add cascade -menu .m1.file -label "foo" 539 menu .m1.file 540 . configure -menu .m1 541 raise . 542 .m1 entryconfigure foo -label "File" 543 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 544} {0 {} {} {}} 545 546test macMenu-15.1 {CompleteIdlers - no idle pending} {macOnly} { 547 catch {destroy .m1} 548 menu .m1 549 .m1 add command -label test 550 update idletasks 551 list [catch {.m1 post 40 40} msg] $msg [destroy .m1] 552} {0 {} {}} 553test macMenu-15.2 {CompleteIdlers - idle pending} {macOnly} { 554 catch {destroy .m1} 555 menu .m1 556 .m1 add command -label test 557 list [catch {.m1 post 40 40} msg] $msg [destroy .m1] 558} {0 {} {}} 559test macMenu-15.3 {CompleteIdlers - recursive} {macOnly} { 560 catch {destroy .m1} 561 menu .m1 562 .m1 add cascade -menu .m1.m2 -label test 563 menu .m1.m2 564 .m1.m2 add command -label test 565 list [catch {.m1 post 40 40} msg] $msg [destroy .m1] 566} {0 {} {}} 567 568#Don't know how to generate nested post menus 569test macMenu-16.1 {TkpPostMenu} {macOnly} { 570 catch {destroy .m1} 571 menu .m1 -postcommand "destroy .m1" 572 list [catch {.m1 post 40 40} msg] $msg 573} {0 {}} 574test macMenu-16.2 {TkpPostMenu} {macOnly} { 575 catch {destroy .m1} 576 menu .m1 -postcommand "blork" 577 list [catch {.m1 post 40 40} msg] $msg [destroy .m1] 578} {1 {invalid command name "blork"} {}} 579# We need to write the interactive test for menu posting. 580 581test macMenu-17.1 {TkpMenuNewEntry - no idle pending} {macOnly} { 582 catch {destroy .m1} 583 menu .m1 584 list [catch {.m1 add command -label test} msg] $msg [destroy .m1] 585} {0 {} {}} 586test macMenu-17.2 {TkpMenuNewEntry - idle pending} {macOnly} { 587 catch {destroy .m1} 588 menu .m1 589 .m1 add command -label test 590 list [catch {.m1 add command -label test2} msg] $msg [destroy .m1] 591} {0 {} {}} 592 593test macMenu-18.1 {DrawMenuBarWhenIdle} {macOnly} { 594 catch {destroy .m1} 595 . configure -menu "" 596 menu .m1 597 . configure -menu .m1 598 list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] 599} {0 {} {} {}} 600test macMenu-18.2 {DrawMenuBarWhenIdle - clearing old apple menu out} {macOnly} { 601 catch {destroy .m1} 602 menu .m1 603 .m1 add cascade -menu .m1.apple 604 menu .m1.apple 605 .m1.apple add command -label test 606 . configure -menu .m1 607 raise . 608 update 609 . configure -menu "" 610 raise . 611 list [catch {update} msg] $msg [destroy .m1] 612} {0 {} {}} 613test macMenu-18.3 {DrawMenuBarWhenIdle - clearing out old help menu} {macOnly} { 614 catch {destroy .m1} 615 menu .m1 616 .m1 add cascade -menu .m1.help 617 menu .m1.help 618 .m1.help add command -label test 619 . configure -menu .m1 620 raise . 621 update 622 . configure -menu "" 623 raise . 624 list [catch {update} msg] $msg [destroy .m1] 625} {0 {} {}} 626test macMenu-18.4 {DrawMenuBarWhenIdle - menu not there} {macOnly} { 627 catch {destroy .m1} 628 . configure -menu .m1 629 raise . 630 list [catch {update} msg] $msg [. configure -menu ""] 631} {0 {} {}} 632test macMenu-18.5 {DrawMenuBarWhenIdle - menu there} {macOnly} { 633 catch {destroy .m1} 634 menu .m1 635 . configure -menu .m1 636 raise . 637 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 638} {0 {} {} {}} 639test macMenu-18.6 {DrawMenuBarWhenIdle - no apple menu} {macOnly} { 640 catch {destroy .m1} 641 menu .m1 642 . configure -menu .m1 643 raise . 644 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 645} {0 {} {} {}} 646test macMenu-18.7 {DrawMenuBarWhenIdle - apple menu references but not there} {macOnly} { 647 catch {destroy .m1} 648 menu .m1 649 .m1 add cascade -menu .m1.apple 650 . configure -menu .m1 651 raise . 652 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 653} {0 {} {} {}} 654test macMenu-18.8 {DrawMenuBarWhenIdle - apple menu there} {macOnly} { 655 catch {destroy .m1} 656 menu .m1 657 .m1 add cascade -menu .m1.apple 658 menu .m1.apple 659 .m1.apple add command -label test 660 . configure -menu .m1 661 raise . 662 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 663} {0 {} {} {}} 664test macMenu-18.9 {DrawMenuBarWhenIdle - apple menu there; no idle handler} {macOnly} { 665 catch {destroy .m1} 666 menu .m1 667 .m1 add cascade -menu .m1.apple 668 menu .m1.apple 669 .m1.apple add command -label test 670 . configure -menu .m1 671 raise . 672 update idletasks 673 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 674} {0 {} {} {}} 675test macMenu-18.10 {DrawMenuBarWhenIdle - no help menu} {macOnly} { 676 catch {destroy .m1} 677 menu .m1 678 . configure -menu .m1 679 raise . 680 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 681} {0 {} {} {}} 682test macMenu-18.11 {DrawMenuBarWhenIdle - help menu referenced but not there} {macOnly} { 683 catch {destroy .m1} 684 menu .m1 685 .m1 add cascade -menu .m1.help 686 . configure -menu .m1 687 raise . 688 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 689} {0 {} {} {}} 690test macMenu-18.12 {DrawMenuBarWhenIdle - help menu there} {macOnly} { 691 catch {destroy .m1} 692 menu .m1 693 .m1 add cascade -menu .m1.help 694 menu .m1.help 695 .m1.help add command -label test 696 . configure -menu .m1 697 raise . 698 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 699} {0 {} {} {}} 700test macMenu-18.13 {DrawMenuBarWhenIdle - help menu there - no idlers} {macOnly} { 701 catch {destroy .m1} 702 menu .m1 703 .m1 add cascade -menu .m1.help 704 menu .m1.help 705 .m1.help add command -label test 706 . configure -menu .m1 707 raise . 708 update idletasks 709 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 710} {0 {} {} {}} 711# Can't generate no menubar clone 712test macMenu-18.14 {DrawMenuBarWhenIdle - apple and help menus in tearoff menubar} {macOnly} { 713 catch {destroy .m1} 714 menu .m1 715 .m1 add cascade -menu .m1.apple 716 .m1 add cascade -menu .m1.help 717 menu .m1.apple 718 menu .m1.help 719 . configure -menu .m1 720 raise . 721 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 722} {0 {} {} {}} 723test macMenu-18.15 {DrawMenuBarWhenIdle - apple and help menus in non-tearoff menubar} {macOnly} { 724 catch {destroy .m1} 725 menu .m1 -tearoff 0 726 .m1 add cascade -menu .m1.apple 727 .m1 add cascade -menu .m1.help 728 menu .m1.apple 729 menu .m1.help 730 . configure -menu .m1 731 raise . 732 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 733} {0 {} {} {}} 734test macMenu-18.16 {DrawMenuBarWhenIdle - no apple menu} {macOnly} { 735 catch {destroy .m1} 736 menu .m1 -tearoff 0 737 . configure -menu .m1 738 raise . 739 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 740} {0 {} {} {}} 741test macMenu-18.17 {DrawMenuBarWhenIdle - apple menu} {macOnly} { 742 catch {destroy .m1} 743 menu .m1 -tearoff 0 744 . configure -menu .m1 745 .m1 add cascade -menu .m1.apple 746 menu .m1.apple 747 .m1.apple add cascade -label test -menu .m1.apple.test 748 menu .m1.apple.test 749 raise . 750 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 751} {0 {} {} {}} 752test macMenu-18.18 {DrawMenuBarWhenIdle - big for loop} {macOnly} { 753 catch {destroy .m1} 754 menu .m1 -tearoff 0 755 menu .m1.apple -tearoff 0 756 menu .m1.help -tearoff 0 757 menu .m1.foo -tearoff 0 758 .m1 add cascade -menu .m1.apple 759 .m1 add cascade -menu .m1.help 760 .m1 add cascade -label Foo -menu .m1.foo 761 . configure -menu .m1 762 raise . 763 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 764} {0 {} {} {}} 765test macMenu-18.19 {DrawMenuBarWhenIdle = disabled menu} {macOnly} { 766 catch {destroy .m1} 767 menu .m1 -tearoff 0 768 menu .m1.edit -tearoff 0 769 .m1 add cascade -menu .m1.edit -label Edit 770 . configure -menu .m1 771 raise . 772 .m1 entryconfigure Edit -state disabled 773 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 774} {0 {} {} {}} 775 776test macMenu-19.1 {RecursivelyInsertMenu} {macOnly} { 777 catch {destroy .m1} 778 catch {destroy .m2} 779 catch {destroy .main} 780 catch {destroy .t2} 781 toplevel .t2 -menu .main 782 wm geometry .t2 +0+0 783 menu .main 784 .main add cascade -menu .m1 -label ".m1" 785 menu .m1 786 .m1 add command -label "Test 2" 787 .m1 add cascade -label ".m2" -menu .m2 788 menu .m2 789 .m2 add command -label "Test 3" 790 list [catch {raise .t2} msg] $msg [destroy .t2 .main .m1 .m2] 791} {0 {} {}} 792test macMenu-19.2 {RecursivelyInsertMenu} {macOnly} { 793 catch {destroy .m1} 794 catch {destroy .m2} 795 catch {destroy .main} 796 catch {destroy .t2} 797 toplevel .t2 -menu .main 798 wm geometry .t2 +0+0 799 menu .main 800 .main add cascade -menu .m1 -label ".m1" 801 menu .m1 802 .m1 add command -label "Test 2" 803 .m1 add cascade -label ".m2" -menu .m2 804 menu .m2 805 .m2 add command -label "Test 3" 806 list [catch {raise .t2} msg] $msg [destroy .t2 .main .m1 .m2] 807} {0 {} {}} 808 809test macMenu-20.1 {SetDefaultMenuBar} {macOnly} { 810 . configure -menu "" 811 raise . 812 list [catch {update} msg] $msg 813} {0 {}} 814 815test macMenu-21.1 {TkpSetMainMenubar - not front window} {macOnly} { 816 catch {destroy .m1} 817 catch {destroy .t2} 818 toplevel .t2 819 wm geometry .t2 +50+50 820 menu .m1 821 raise . 822 update 823 list [catch {.t2 configure -menu .m1} msg] $msg [destroy .t2] [destroy .m1] 824} {0 {} {} {}} 825test macMenu-21.2 {TkpSetMainMenubar - menu null} {macOnly} { 826 . configure -menu "" 827 raise . 828 list [catch {update} msg] $msg 829} {0 {}} 830test macMenu-21.3 {TkpSetMainMenubar - different interps} {macOnly} { 831 catch {destroy .m1} 832 catch {interp delete testinterp} 833 interp create testinterp 834 load {} Tk testinterp 835 menu .m1 836 . configure -menu .m1 837 raise . 838 update 839 interp eval testinterp {menu .m1} 840 interp eval testinterp {. configure -menu .m1} 841 interp eval testinterp {raise .} 842 list [catch {interp eval testinterp {update}} msg] $msg [interp delete testinterp] [. configure -menu ""] [destroy .m1] 843} {0 {} {} {} {}} 844test macMenu-21.4 {TkpSetMainMenubar - different windows} {macOnly} { 845 catch {destroy .m1} 846 catch {destroy .t2} 847 menu .m1 848 . configure -menu .m1 849 toplevel .t2 850 wm geometry .t2 +50+50 851 .t2 configure -menu .m1 852 raise . 853 update 854 raise .t2 855 list [catch {update} msg] $msg [destroy .t2] [. configure -menu ""] [destroy .m1] 856} {0 {} {} {} {}} 857test macMenu-21.5 {TkpSetMainMenubar - old menu was null} {macOnly} { 858 catch {destroy .m1} 859 . configure -menu "" 860 update 861 menu .m1 862 . configure -menu .m1 863 raise . 864 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 865} {0 {} {} {}} 866test macMenu-21.6 {TkpSetMainMenubar - old menu different} {macOnly} { 867 catch {destroy .m1} 868 catch {destroy .m2} 869 menu .m1 870 menu .m2 871 . configure -menu .m1 872 raise . 873 update 874 . configure -menu .m2 875 raise . 876 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .m2] 877} {0 {} {} {} {}} 878test macMenu-21.7 {TkpSetMainMenubar - child window NULL - parent window now} {macOnly} { 879 catch {destroy .m1} 880 catch {destroy .t2} 881 toplevel .t2 882 menu .m1 883 .m1 add cascade -label Foo -menu .m1.foo 884 menu .m1.foo 885 .m1.foo add command -label foo 886 . configure -menu .m1 887 raise .t2 888 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .t2] 889} {0 {} {} {} {}} 890test macMenu-21.8 {TkpSetMainMenubar - tearoff window} {macOnly} { 891 catch {destroy .t2} 892 toplevel .t2 -menu .t2.m1 893 menu .t2.m1 894 .t2.m1 add cascade -label File -menu .t2.m1.foo 895 menu .t2.m1.foo 896 .t2.m1.foo add command -label foo 897 raise .t2 898 tk::TearOffMenu .t2.m1.foo 100 100 899 list [catch {update} msg] $msg [destroy .t2] 900} {0 {} {}} 901 902test macMenu-22.1 {TkSetWindowMenuBar} {macOnly} { 903} {} 904 905test macMenu-23.1 {TkMacDispatchMenuEvent} {macOnly} { 906 # needs to be interactive. 907} {} 908 909test macMenu-24.1 {GetMenuIndicatorGeometry} {macOnly} { 910 catch {destroy .m1} 911 menu .m1 912 .m1 add checkbutton -label foo 913 .m1 invoke foo 914 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 915} {0 {}} 916 917test macMenu-25.1 {GetMenuAccelGeometry - cascade entry} {macOnly} { 918 catch {destroy .m1} 919 menu .m1 920 .m1 add cascade -label foo 921 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 922} {0 {}} 923test macMenu-25.2 {GetMenuAccelGeometry - no accel} {macOnly} { 924 catch {destroy .m1} 925 menu .m1 926 .m1 add command 927 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 928} {0 {}} 929test macMenu-25.3 {GetMenuAccelGeometry - no special chars - arbitrary string} {macOnly} { 930 catch {destroy .m1} 931 menu .m1 932 .m1 add command -accel "Test" 933 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 934} {0 {}} 935test macMenu-25.4 {GetMenuAccelGeometry - Command} {macOnly} { 936 catch {destroy .m1} 937 menu .m1 938 .m1 add command -label foo -accel "Cmd+S" 939 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 940} {0 {}} 941test macMenu-25.5 {GetMenuAccelGeometry - Control} {macOnly} { 942 catch {destroy .m1} 943 menu .m1 944 .m1 add command -label foo -accel "Ctrl+S" 945 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 946} {0 {}} 947test macMenu-25.6 {GetMenuAccelGeometry - Shift} {macOnly} { 948 catch {destroy .m1} 949 menu .m1 950 .m1 add command -label foo -accel "Shift+S" 951 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 952} {0 {}} 953test macMenu-25.7 {GetMenuAccelGeometry - Option} {macOnly} { 954 catch {destroy .m1} 955 menu .m1 956 .m1 add command -label foo -accel "Opt+S" 957 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 958} {0 {}} 959test macMenu-25.8 {GetMenuAccelGeometry - Combination} {macOnly} { 960 catch {destroy .m1} 961 menu .m1 962 .m1 add command -label foo -accel "Cmd+Shift+S" 963 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 964} {0 {}} 965test macMenu-25.9 {GetMenuAccelGeometry - extra text} {macOnly} { 966 catch {destroy .m1} 967 menu .m1 968 .m1 add command -label foo -accel "Command+Delete" 969 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 970} {0 {}} 971 972test macMenu-26.1 {GetTearoffEntryGeometry} {macOnly} { 973 # can't call this on power mac. 974} {} 975 976test macMenu-27.1 {GetMenuSeparatorGeometry} {macOnly} { 977 catch {destroy .m1} 978 menu .m1 979 .m1 add separator 980 list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] 981} {0 {}} 982 983test macMenu-28.1 {DrawMenuEntryIndicator - non-checkbutton} {macOnly} { 984 catch {destroy .m1} 985 menu .m1 986 .m1 add command -label foo 987 set tearoff [tk::TearOffMenu .m1 40 40] 988 list [catch {update} msg] $msg [destroy .m1] 989} {0 {} {}} 990test macMenu-28.2 {DrawMenuEntryIndicator - indicator off} {macOnly} { 991 catch {destroy .m1} 992 menu .m1 993 .m1 add checkbutton -label foo -indicatoron 0 994 .m1 invoke foo 995 set tearoff [tk::TearOffMenu .m1 40 40] 996 list [catch {update} msg] $msg [destroy .m1] 997} {0 {} {}} 998test macMenu-28.3 {DrawMenuEntryIndicator - not selected} {macOnly} { 999 catch {destroy .m1} 1000 menu .m1 1001 .m1 add checkbutton -label foo 1002 set tearoff [tk::TearOffMenu .m1 40 40] 1003 list [catch {update} msg] $msg [destroy .m1] 1004} {0 {} {}} 1005test macMenu-28.4 {DrawMenuEntryIndicator - checkbutton} {macOnly} { 1006 catch {destroy .m1} 1007 menu .m1 1008 .m1 add checkbutton -label foo 1009 .m1 invoke foo 1010 set tearoff [tk::TearOffMenu .m1 40 40] 1011 list [catch {update} msg] $msg [destroy .m1] 1012} {0 {} {}} 1013test macMenu-28.5 {DrawMenuEntryIndicator - radiobutton} {macOnly} { 1014 catch {destroy .m1} 1015 menu .m1 1016 .m1 add radiobutton -label foo 1017 .m1 invoke foo 1018 set tearoff [tk::TearOffMenu .m1 40 40] 1019 list [catch {update} msg] $msg [destroy .m1] 1020} {0 {} {}} 1021 1022# Cannot reproduce resources missing or color allocation failing easily. 1023test macMenu-29.1 {DrawSICN} {macOnly} { 1024 catch {destroy .m1} 1025 menu .m1 1026 .m1 add command -label foo -accel "Cmd+S" 1027 set tearoff [tk::TearOffMenu .m1 40 40] 1028 list [catch {update} msg] $msg [destroy .m1] 1029} {0 {} {}} 1030 1031# Cannot reproduce resources missing 1032test macMenu-30.1 {DrawMenuEntryAccelerator - cascade entry} {macOnly} { 1033 catch {destroy .m1} 1034 menu .m1 1035 .m1 add cascade -label foo 1036 set tearoff [tk::TearOffMenu .m1 40 40] 1037 list [catch {update} msg] $msg [destroy .m1] 1038} {0 {} {}} 1039test macMenu-30.2 {DrawMenuEntryAccelerator - no accel string} {macOnly} { 1040 catch {destroy .m1} 1041 menu .m1 1042 .m1 add command -label foo 1043 set tearoff [tk::TearOffMenu .m1 40 40] 1044 list [catch {update} msg] $msg [destroy .m1] 1045} {0 {} {}} 1046test macMenu-30.3 {DrawMenuEntryAccelerator - random accel string} {macOnly} { 1047 catch {destroy .m1} 1048 menu .m1 1049 .m1 add command -label foo -accel foo 1050 set tearoff [tk::TearOffMenu .m1 40 40] 1051 list [catch {update} msg] $msg [destroy .m1] 1052} {0 {} {}} 1053test macMenu-30.4 {DrawMenuEntryAccelerator - Command} {macOnly} { 1054 catch {destroy .m1} 1055 menu .m1 1056 .m1 add command -label foo -accel "Cmd+S" 1057 set tearoff [tk::TearOffMenu .m1 40 40] 1058 list [catch {update} msg] $msg [destroy .m1] 1059} {0 {} {}} 1060test macMenu-30.5 {DrawMenuEntryAccelerator - Option} {macOnly} { 1061 catch {destroy .m1} 1062 menu .m1 1063 .m1 add command -label foo -accel "Opt+S" 1064 set tearoff [tk::TearOffMenu .m1 40 40] 1065 list [catch {update} msg] $msg [destroy .m1] 1066} {0 {} {}} 1067test macMenu-30.6 {DrawMenuEntryAccelerator - Shift} {macOnly} { 1068 catch {destroy .m1} 1069 menu .m1 1070 .m1 add command -label foo -accel "Shift+S" 1071 set tearoff [tk::TearOffMenu .m1 40 40] 1072 list [catch {update} msg] $msg [destroy .m1] 1073} {0 {} {}} 1074test macMenu-30.7 {DrawMenuEntryAccelerator - Control} {macOnly} { 1075 catch {destroy .m1} 1076 menu .m1 1077 .m1 add command -label foo -accel "Ctrl+S" 1078 set tearoff [tk::TearOffMenu .m1 40 40] 1079 list [catch {update} msg] $msg [destroy .m1] 1080} {0 {} {}} 1081test macMenu-30.8 {DrawMenuEntryAccelerator - combination} {macOnly} { 1082 catch {destroy .m1} 1083 menu .m1 1084 .m1 add command -label foo -accel "Cmd+Shift+S" 1085 set tearoff [tk::TearOffMenu .m1 40 40] 1086 list [catch {update} msg] $msg [destroy .m1] 1087} {0 {} {}} 1088 1089test macMenu-31.1 {DrawMenuSeparator} {macOnly} { 1090 catch {destroy .m1} 1091 menu .m1 1092 .m1 add separator 1093 set tearoff [tk::TearOffMenu .m1 40 40] 1094 list [catch {update} msg] $msg [destroy .m1] 1095} {0 {} {}} 1096 1097test macMenu-32.1 {TkpDrawMenuEntryLabel} {macOnly} { 1098 catch {destroy .m1} 1099 menu .m1 1100 .m1 add command -label foo 1101 set tearoff [tk::TearOffMenu .m1 40 40] 1102 list [catch {update} msg] $msg [destroy .m1] 1103} {0 {} {}} 1104 1105test macMenu-33.1 {MenuDefProc - No way to test automatically.} {} {} 1106test macMenu-34.1 {TkMacHandleTearoffMenu - no way to test automatically} {} {} 1107test macMenu-35.1 {TkpInitializeMenuBindings - nothing to do} {} {} 1108 1109test macMenu-36.1 {TkpComputeMenubarGeometry} {macOnly} { 1110 catch {destroy .m1} 1111 menu .m1 1112 .m1 add cascade -label foo 1113 . configure -menu .m1 1114 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] 1115} {0 {} {} {}} 1116 1117test macMenu-37.1 {DrawTearoffEntry - can't do automatically} {} {} 1118test macMenu-38.1 {TkMacSetHelpMenuItemCount - called at boot time} {} {} 1119test macMenu-39.1 {TkMacMenuClick - can't do automatically} {} {} 1120 1121test macMenu-40.1 {TkpDrawMenuEntry - gc for active and not strict motif} {macOnly} { 1122 catch {destroy .m1} 1123 menu .m1 1124 .m1 add command -label foo 1125 set tearoff [tk::TearOffMenu .m1 40 40] 1126 .m1 entryconfigure 1 -state active 1127 list [update] [destroy .m1] 1128} {{} {}} 1129test macMenu-40.2 {TkpDrawMenuEntry - gc for active menu item with its own gc} {macOnly} { 1130 catch {destroy .m1} 1131 menu .m1 1132 .m1 add command -label foo -activeforeground red 1133 set tearoff [tk::TearOffMenu .m1 40 40] 1134 .m1 entryconfigure 1 -state active 1135 list [update] [destroy .m1] 1136} {{} {}} 1137test macMenu-40.3 {TkpDrawMenuEntry - gc for active and strict motif} {macOnly} { 1138 catch {destroy .m1} 1139 menu .m1 1140 set tk_strictMotif 1 1141 .m1 add command -label foo 1142 set tearoff [tk::TearOffMenu .m1 40 40] 1143 .m1 entryconfigure 1 -state active 1144 list [update] [destroy .m1] [set tk_strictMotif 0] 1145} {{} {} 0} 1146test macMenu-40.4 {TkpDrawMenuEntry - gc for disabled with disabledfg and custom entry} {macOnly} { 1147 catch {destroy .m1} 1148 menu .m1 -disabledforeground blue 1149 .m1 add command -label foo -state disabled -background red 1150 set tearoff [tk::TearOffMenu .m1 40 40] 1151 list [update] [destroy .m1] 1152} {{} {}} 1153test macMenu-40.5 {TkpDrawMenuEntry - gc for disabled with disabledFg} {macOnly} { 1154 catch {destroy .m1} 1155 menu .m1 -disabledforeground blue 1156 .m1 add command -label foo -state disabled 1157 set tearoff [tk::TearOffMenu .m1 40 40] 1158 list [update] [destroy .m1] 1159} {{} {}} 1160test macMenu-40.6 {TkpDrawMenuEntry - gc for disabled - no disabledFg} {macOnly} { 1161 catch {destroy .m1} 1162 menu .m1 -disabledforeground "" 1163 .m1 add command -label foo -state disabled 1164 set tearoff [tk::TearOffMenu .m1 40 40] 1165 list [update] [destroy .m1] 1166} {{} {}} 1167test macMenu-40.7 {TkpDrawMenuEntry - gc for normal - custom entry} {macOnly} { 1168 catch {destroy .m1} 1169 menu .m1 1170 .m1 add command -label foo -foreground red 1171 set tearoff [tk::TearOffMenu .m1 40 40] 1172 list [update] [destroy .m1] 1173} {{} {}} 1174test macMenu-40.8 {TkpDrawMenuEntry - gc for normal} {macOnly} { 1175 catch {destroy .m1} 1176 menu .m1 1177 .m1 add command -label foo 1178 set tearoff [tk::TearOffMenu .m1 40 40] 1179 list [update] [destroy .m1] 1180} {{} {}} 1181test macMenu-40.9 {TkpDrawMenuEntry - gc for indicator - custom entry} {macOnly} { 1182 catch {destroy .m1} 1183 menu .m1 1184 .m1 add checkbutton -label foo -selectcolor orange 1185 .m1 invoke 1 1186 set tearoff [tk::TearOffMenu .m1 40 40] 1187 list [update] [destroy .m1] 1188} {{} {}} 1189test macMenu-40.10 {TkpDrawMenuEntry - gc for indicator} {macOnly} { 1190 catch {destroy .m1} 1191 menu .m1 1192 .m1 add checkbutton -label foo 1193 .m1 invoke 1 1194 set tearoff [tk::TearOffMenu .m1 40 40] 1195 list [update] [destroy .m1] 1196} {{} {}} 1197test macMenu-40.11 {TkpDrawMenuEntry - border - custom entry} {macOnly} { 1198 catch {destroy .m1} 1199 menu .m1 1200 .m1 add command -label foo -activebackground green 1201 set tearoff [tk::TearOffMenu .m1 40 40] 1202 .m1 entryconfigure 1 -state active 1203 list [update] [destroy .m1] 1204} {{} {}} 1205test macMenu-40.12 {TkpDrawMenuEntry - border} {macOnly} { 1206 catch {destroy .m1} 1207 menu .m1 1208 .m1 add command -label foo 1209 set tearoff [tk::TearOffMenu .m1 40 40] 1210 .m1 entryconfigure 1 -state active 1211 list [update] [destroy .m1] 1212} {{} {}} 1213test macMenu-40.13 {TkpDrawMenuEntry - active border - strict motif} {macOnly} { 1214 catch {destroy .m1} 1215 set tk_strictMotif 1 1216 menu .m1 1217 .m1 add command -label foo 1218 set tearoff [tk::TearOffMenu .m1 40 40] 1219 .m1 entryconfigure 1 -state active 1220 list [update] [destroy .m1] [set tk_strictMotif 0] 1221} {{} {} 0} 1222test macMenu-40.14 {TkpDrawMenuEntry - active border - custom entry} {macOnly} { 1223 catch {destroy .m1} 1224 menu .m1 1225 .m1 add command -label foo -activeforeground yellow 1226 set tearoff [tk::TearOffMenu .m1 40 40] 1227 .m1 entryconfigure 1 -state active 1228 list [update] [destroy .m1] 1229} {{} {}} 1230test macMenu-40.15 {TkpDrawMenuEntry - active border} {macOnly} { 1231 catch {destroy .m1} 1232 menu .m1 1233 .m1 add command -label foo 1234 set tearoff [tk::TearOffMenu .m1 40 40] 1235 .m1 entryconfigure 1 -state active 1236 list [update] [destroy .m1] 1237} {{} {}} 1238test macMenu-40.16 {TkpDrawMenuEntry - font - custom entry} {macOnly} { 1239 catch {destroy .m1} 1240 menu .m1 1241 .m1 add command -label foo -font "Helvectica 72" 1242 set tearoff [tk::TearOffMenu .m1 40 40] 1243 list [update] [destroy .m1] 1244} {{} {}} 1245test macMenu-40.17 {TkpDrawMenuEntry - font} {macOnly} { 1246 catch {destroy .m1} 1247 menu .m1 -font "Courier 72" 1248 .m1 add command -label foo 1249 set tearoff [tk::TearOffMenu .m1 40 40] 1250 list [update] [destroy .m1] 1251} {{} {}} 1252test macMenu-40.18 {TkpDrawMenuEntry - separator} {macOnly} { 1253 catch {destroy .m1} 1254 menu .m1 1255 .m1 add separator 1256 set tearoff [tk::TearOffMenu .m1 40 40] 1257 list [update] [destroy .m1] 1258} {{} {}} 1259test macMenu-40.19 {TkpDrawMenuEntry - standard} {macOnly} { 1260 catch {destroy .mb} 1261 menu .m1 1262 .m1 add command -label foo 1263 set tearoff [tk::TearOffMenu .m1 40 40] 1264 list [update] [destroy .m1] 1265} {{} {}} 1266test macMenu-40.20 {TkpDrawMenuEntry - disabled cascade item} {macOnly} { 1267 catch {destroy .m1} 1268 menu .m1 1269 .m1 add cascade -label File -menu .m1.file 1270 menu .m1.file 1271 .m1.file add command -label foo 1272 .m1 entryconfigure File -state disabled 1273 set tearoff [tk::TearOffMenu .m1 40 40] 1274 list [update] [destroy .m1] 1275} {{} {}} 1276test macMenu-40.21 {TkpDrawMenuEntry - indicator} {macOnly} { 1277 catch {destroy .m1} 1278 menu .m1 1279 .m1 add checkbutton -label macMenu-40.20 1280 .m1 invoke 0 1281 set tearoff [tk::TearOffMenu .m1 40 40] 1282 list [update] [destroy .m1] 1283} {{} {}} 1284test macMenu-40.22 {TkpDrawMenuEntry - indicator - hideMargin} {macOnly} { 1285 catch {destroy .m1} 1286 menu .m1 1287 .m1 add checkbutton -label macMenu-40.21 -hidemargin 1 1288 .m1 invoke 0 1289 set tearoff [tk::TearOffMenu .m1 40 40] 1290 list [update] [destroy .m1] 1291} {{} {}} 1292 1293test macMenu-41.1 {TkpComputeStandardMenuGeometry - no entries} {macOnly} { 1294 catch {destroy .m1} 1295 menu .m1 1296 list [update idletasks] [destroy .m1] 1297} {{} {}} 1298test macMenu-41.2 {TkpComputeStandardMenuGeometry - one entry} {macOnly} { 1299 catch {destroy .m1} 1300 menu .m1 1301 .m1 add command -label "one" 1302 list [update idletasks] [destroy .m1] 1303} {{} {}} 1304test macMenu-41.3 {TkpComputeStandardMenuGeometry - more than one entry} {macOnly} { 1305 catch {destroy .m1} 1306 menu .m1 1307 .m1 add command -label "one" 1308 .m1 add command -label "two" 1309 list [update idletasks] [destroy .m1] 1310} {{} {}} 1311test macMenu-41.4 {TkpComputeStandardMenuGeometry - separator} {macOnly} { 1312 catch {destroy .m1} 1313 menu .m1 1314 .m1 add separator 1315 list [update idletasks] [destroy .m1] 1316} {{} {}} 1317test macMenu-41.5 {TkpComputeStandardMenuGeometry - standard label geometry} {macOnly} { 1318 catch {destroy .m1} 1319 menu .m1 1320 .m1 add command -label "test" 1321 list [update idletasks] [destroy .m1] 1322} {{} {}} 1323test macMenu-41.6 {TkpComputeStandardMenuGeometry - different font for entry} {macOnly} { 1324 catch {destroy .m1} 1325 menu .m1 -font "Helvetica 12" 1326 .m1 add command -label "test" -font "Courier 12" 1327 list [update idletasks] [destroy .m1] 1328} {{} {}} 1329test macMenu-41.7 {TkpComputeStandardMenuGeometry - second entry larger} {macOnly} { 1330 catch {destroy .m1} 1331 menu .m1 1332 .m1 add command -label "test" 1333 .m1 add command -label "test test" 1334 list [update idletasks] [destroy .m1] 1335} {{} {}} 1336test macMenu-41.8 {TkpComputeStandardMenuGeometry - first entry larger} {macOnly} { 1337 catch {destroy .m1} 1338 menu .m1 1339 .m1 add command -label "test test" 1340 .m1 add command -label "test" 1341 list [update idletasks] [destroy .m1] 1342} {{} {}} 1343test macMenu-41.9 {TkpComputeStandardMenuGeometry - accelerator} {macOnly} { 1344 catch {destroy .m1} 1345 menu .m1 1346 .m1 add command -label "test" -accel "Ctrl+S" 1347 list [update idletasks] [destroy .m1] 1348} {{} {}} 1349test macMenu-41.10 {TkpComputeStandardMenuGeometry - second accel larger} {macOnly} { 1350 catch {destroy .m1} 1351 menu .m1 1352 .m1 add command -label "test" -accel "1" 1353 .m1 add command -label "test" -accel "1 1" 1354 list [update idletasks] [destroy .m1] 1355} {{} {}} 1356test macMenu-41.11 {TkpComputeStandardMenuGeometry - second accel smaller} {macOnly} { 1357 catch {destroy .m1} 1358 menu .m1 1359 .m1 add command -label "test" -accel "1 1" 1360 .m1 add command -label "test" -accel "1" 1361 list [update idletasks] [destroy .m1] 1362} {{} {}} 1363test macMenu-41.12 {TkpComputeStandardMenuGeometry - indicator} {macOnly} { 1364 catch {destroy .m1} 1365 menu .m1 1366 .m1 add checkbutton -label test 1367 .m1 invoke 1 1368 list [update idletasks] [destroy .m1] 1369} {{} {}} 1370test macMenu-41.13 {TkpComputeStandardMenuGeometry - second indicator less or equal } {macOnly testImageType} { 1371 catch {destroy .m1} 1372 catch {image delete image1} 1373 image create test image1 1374 menu .m1 1375 .m1 add checkbutton -image image1 1376 .m1 invoke 1 1377 .m1 add checkbutton -label test 1378 .m1 invoke 2 1379 list [update idletasks] [destroy .m1] [image delete image1] 1380} {{} {} {}} 1381test macMenu-41.14 {TkpComputeStandardMenuGeometry - hidden margin} {macOnly} { 1382 catch {destroy .m1} 1383 menu .m1 1384 .m1 add checkbutton -label macMenu-41.15 -hidemargin 1 1385 .m1 invoke macMenu-41.15 1386 list [update idletasks] [destroy .m1] 1387} {{} {}} 1388test macMenu-41.15 {TkpComputeStandardMenuGeometry - zero sized menus} {macOnly} { 1389 catch {destroy .m1} 1390 menu .m1 -tearoff 0 1391 list [update idletasks] [destroy .m1] 1392} {{} {}} 1393test macMenu-41.16 {TkpComputeStandardMenuGeometry - first column bigger} {macOnly} { 1394 catch {destroy .m1} 1395 menu .m1 1396 .m1 add command -label one 1397 .m1 add command -label two 1398 .m1 add command -label three -columnbreak 1 1399 list [update idletasks] [destroy .m1] 1400} {{} {}} 1401test macMenu-41.17 {TkpComputeStandardMenuGeometry - second column bigger} {macOnly} { 1402 catch {destroy .m1} 1403 menu .m1 -tearoff 0 1404 .m1 add command -label one 1405 .m1 add command -label two -columnbreak 1 1406 .m1 add command -label three 1407 list [update idletasks] [destroy .m1] 1408} {{} {}} 1409test macMenu-41.18 {TkpComputeStandardMenuGeometry - three columns} {macOnly} { 1410 catch {destroy .m1} 1411 menu .m1 -tearoff 0 1412 .m1 add command -label one 1413 .m1 add command -label two -columnbreak 1 1414 .m1 add command -label three 1415 .m1 add command -label four 1416 .m1 add command -label five -columnbreak 1 1417 .m1 add command -label six 1418 list [update idletasks] [destroy .m1] 1419} {{} {}} 1420test macMenu-41.19 {TkpComputeStandardMenuGeometry - entry without accel long} {macOnly} { 1421 catch {destroy .m1} 1422 menu .m1 -tearoff 0 1423 .m1 add command -label "This is a long item with no accel." 1424 .m1 add command -label foo -accel "Cmd+S" 1425 list [update idletasks] [destroy .m1] 1426} {{} {}} 1427test macMenu-41.20 {TkpComputeStandardMenuGeometry - entry with accel long} {macOnly} { 1428 catch {destroy .m1} 1429 menu .m1 -tearoff 0 1430 .m1 add command -label foo 1431 .m1 add command -label "This is a long label with an accel." -accel "Cmd+W" 1432 list [update idletasks] [destroy .m1] 1433} {{} {}} 1434 1435test macMenu-42.1 {DrawMenuEntryLabel - setting indicatorSpace} {macOnly} { 1436 catch {destroy .m1} 1437 menu .m1 1438 .m1 add command -label "foo" 1439 set tearoff [tk::TearOffMenu .m1] 1440 list [update idletasks] [destroy .m1] 1441} {{} {}} 1442test macMenu-42.2 {DrawMenuEntryLabel - drawing image} {macOnly testImageType} { 1443 catch {destroy .m1} 1444 catch {image delete image1} 1445 image create test image1 1446 menu .m1 1447 .m1 add command -image image1 1448 set tearoff [tk::TearOffMenu .m1] 1449 list [update idletasks] [destroy .m1] [image delete image1] 1450} {{} {} {}} 1451test macMenu-42.3 {DrawMenuEntryLabel - drawing select image} {macOnly testImageType} { 1452 catch {destroy .m1} 1453 catch {eval image delete [image names]} 1454 image create test image1 1455 image create test image2 1456 menu .m1 1457 .m1 add checkbutton -image image1 -selectimage image2 1458 .m1 invoke 1 1459 set tearoff [tk::TearOffMenu .m1] 1460 list [update idletasks] [destroy .m1] [eval image delete [image names]] 1461} {{} {} {}} 1462test macMenu-42.4 {DrawMenuEntryLabel - drawing a bitmap} {macOnly} { 1463 catch {destroy .m1} 1464 menu .m1 1465 .m1 add command -bitmap questhead 1466 set tearoff [tk::TearOffMenu .m1] 1467 list [update idletasks] [destroy .m1] 1468} {{} {}} 1469test macMenu-42.5 {DrawMenuEntryLabel - drawing null label} {macOnly} { 1470 catch {destroy .m1} 1471 menu .m1 1472 .m1 add command 1473 set tearoff [tk::TearOffMenu .m1] 1474 list [update idletasks] [destroy .m1] 1475} {{} {}} 1476test macMenu-42.6 {DrawMenuEntryLabel - drawing real label} {macOnly} { 1477 catch {destroy .m1} 1478 menu .m1 1479 .m1 add command -label "This is a long label" -underline 3 1480 set tearoff [tk::TearOffMenu .m1] 1481 list [update idletasks] [destroy .m1] 1482} {{} {}} 1483test macMenu-42.7 {DrawMenuEntryLabel - drawing disabled label} {macOnly} { 1484 catch {destroy .m1} 1485 menu .m1 -disabledforeground "" 1486 .m1 add command -label "This is a long label" -state disabled 1487 set tearoff [tk::TearOffMenu .m1] 1488 list [update idletasks] [destroy .m1] 1489} {{} {}} 1490test macMenu-42.8 {DrawMenuEntryLabel - disabled images} {macOnly testImageType} { 1491 catch {destroy .m1} 1492 catch {image delete image1} 1493 image create test image1 1494 menu .m1 1495 .m1 add command -image image1 -state disabled 1496 set tearoff [tk::TearOffMenu .m1 100 100] 1497 list [update idletasks] [destroy .m1] [image delete image1] 1498} {{} {} {}} 1499 1500test macMenu-43.1 {GetMenuLabelGeometry - image} {macOnly testImageType} { 1501 catch {destroy .m1} 1502 catch {image delete image1} 1503 menu .m1 1504 image create test image1 1505 .m1 add command -image image1 1506 list [update idletasks] [destroy .m1] [image delete image1] 1507} {{} {} {}} 1508test macMenu-43.2 {GetMenuLabelGeometry - bitmap} {macOnly} { 1509 catch {destroy .m1} 1510 menu .m1 1511 .m1 add command -bitmap questhead 1512 list [update idletasks] [destroy .m1] 1513} {{} {}} 1514test macMenu-43.3 {GetMenuLabelGeometry - no text} {macOnly} { 1515 catch {destroy .m1} 1516 menu .m1 1517 .m1 add command 1518 list [update idletasks] [destroy .m1] 1519} {{} {}} 1520test macMenu-43.4 {GetMenuLabelGeometry - text} {macOnly} { 1521 catch {destroy .m1} 1522 menu .m1 1523 .m1 add command -label "This is a test." 1524 list [update idletasks] [destroy .m1] 1525} {{} {}} 1526 1527test macMenu-44.1 {DrawMenuEntryBackground} {macOnly} { 1528 catch {destroy .m1} 1529 menu .m1 1530 .m1 add command -label foo 1531 set tearoff [tk::TearOffMenu .m1 40 40] 1532 list [update] [destroy .m1] 1533} {{} {}} 1534test macMenu-44.2 {DrawMenuEntryBackground} {macOnly} { 1535 catch {destroy .m1} 1536 menu .m1 1537 .m1 add command -label foo 1538 set tearoff [tk::TearOffMenu .m1 40 40] 1539 $tearoff activate 0 1540 list [update] [destroy .m1] 1541} {{} {}} 1542 1543test macMenu-45.1 {TkpMenuInit - called at boot time} {macOnly} { 1544} {} 1545 1546# cleanup 1547deleteWindows 1548::tcltest::cleanupTests 1549return 1550