# This file is a Tcl script to test menus in Tk. It is # organized in the standard fashion for Tcl tests. This # file tests the Macintosh-specific features of the menu # system. # # Copyright (c) 1995-1997 Sun Microsystems, Inc. # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # # RCS: @(#) $Id$ if {[lsearch [namespace children] ::tcltest] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] } if {$tcl_platform(platform) != "macintosh"} { puts "skipping: Mac only tests..." ::tcltest::cleanupTests return } if {[lsearch [image types] test] < 0} { puts "This application hasn't been compiled with the \"test\" image" puts "type, so I can't run this test. Are you sure you're using" puts "tktest instead of wish?" ::tcltest::cleanupTests return } proc deleteWindows {} { foreach i [winfo children .] { catch [destroy $i] } } deleteWindows wm geometry . {} raise . test macMenu-1.0 {TkMacUseMenuID} {} { # Can't really test TkMacUseMenuID; it's only called on startup. } {} test macMenu-2.1 {GetNewID} { catch {destroy .m1} list [catch {menu .m1} msg] $msg [destroy .m1] } {0 .m1 {}} test macMenu-2.2 {GetNewID - cascade menu} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m2 list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2] } {0 .m2 {} {}} test macMenu-2.3 {GetNewID - running out of ids} { deleteWindows menu .menu for {set i 0} {$i < 230} {incr i} { menu .m$i .menu add cascade -label ".m$i" -menu .m$i } menu .breaker list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] } {1 {No more menus can be allocated.} {}} test macMenu-3.1 {FreeID} { catch {destroy .m1} menu .m1 list [catch {destroy .m1} msg] $msg } {0 {}} # No way to test running out of ids in TkpNewPlatformMenu test macMenu-4.1 {TkpNewMenu} { catch {destroy .m1} list [catch {menu .m1} msg] $msg [catch {destroy .m1} msg2] $msg2 } {0 .m1 0 {}} test macMenu-4.2 {TkpNewMenu - checking for help menu when one is there} { catch {destroy .m1} catch {destroy .m2} menu .m1 menu .m1.help -tearoff 0 .m1.help add command -label Test . configure -menu .m1 raise . update list [catch {menu .m2} msg] $msg [destroy .m1] [destroy .m2] [. configure -menu ""] } {0 .m2 {} {} {}} test macMenu-4.3 {TkpNewMenu - menubar set but different interp} { catch {interp delete testinterp} catch {destroy .m1} interp create testinterp load {} Tk testinterp interp eval testinterp {raise .} interp eval testinterp {menu .m1} interp eval testinterp {. configure -menu .m1} interp eval testinterp {update} list [catch {menu .m1} msg] $msg [destroy .m1] [interp delete testinterp] } {0 .m1 {} {}} test macMenu-4.4 {TkpNewMenu - menubar set but new menu has different parent} { catch {destroy .m1} catch {destroy .m2} menu .m1 -tearoff 0 .m1 add cascade -menu .m1.help menu .m2 .m2 add cascade -menu .m2.help . configure -menu .m1 raise . update list [catch {menu .m2.help} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .m2] } {0 .m2.help {} {} {}} test macMenu-4.5 {TkpNewMenu - menubar set, same parent, not .help} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add cascade -menu .m1.help . configure -menu .m1 raise . update list [catch {menu .m1.foo} msg] $msg [. configure -menu ""] [destroy .m1] } {0 .m1.foo {} {}} test macMenu-4.6 {TkpNewMenu - creating the help menu} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add cascade -menu .m1.help . configure -menu .m1 raise . update list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1] } {0 .m1.help {} {}} test macMenu-5.1 {TkpDestroyMenu} { catch {destroy .m1} menu .m1 list [catch {destroy .m1} msg] $msg } {0 {}} test macMenu-5.2 {TkpDestroyMenu - help menu} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add cascade -menu .m1.help . configure -menu .m1 menu .m1.help raise . update list [catch {destroy .m1.help} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-5.3 {TkpDestroyMenu - idle handler pending} { catch {destroy .m1} menu .m1 .m1 add command -label test list [catch {destroy .m1} msg] $msg } {0 {}} test macMenu-5.4 {TkpDestroyMenu - idle handler not pending} { catch {destroy .m1} menu .m1 .m1 add command -label test update idletasks list [catch {destroy .m1} msg] $msg } {0 {}} test macMenu-6.1 {SetMenuCascade} { catch {destroy .m1} catch {destroy .m2} menu .m1 menu .m2 list [catch {.m2 add cascade -menu .m1} msg] $msg [destroy .m1 .m2] } {0 {} {}} test macMenu-6.2 {SetMenuCascade - running out of ids} { deleteWindows menu .menu for {set i 0} {$i < 230} {incr i} { menu .m$i .menu add cascade -label ".m$i" -menu .m$i } menu .breaker list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] } {1 {No more menus can be allocated.} {}} test macMenu-7.1 {TkpDestroyMenuEntry} { catch {destroy .m1} menu .m1 .m1 add command -label "test" list [catch {.m1 delete 1} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-7.2 {TkpDestroyMenuEntry - help menu} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help menu .m1.help -tearoff 0 .m1.help add command -label "test" . configure -menu .m1 raise . update list [catch {.m1.help delete test} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-8.1 {GetEntryText} { catch {destroy .m1} list [catch {menu .m1} msg] $msg [destroy .m1] } {0 .m1 {}} test macMenu-8.2 {GetEntryText} { catch {destroy .m1} catch {image delete image1} menu .m1 image create test image1 list [catch {.m1 add command -image image1} msg] $msg [destroy .m1] [image delete image1] } {0 {} {} {}} test macMenu-8.3 {GetEntryText} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -bitmap questhead} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.4 {GetEntryText} { catch {destroy .m1} menu .m1 list [catch {.m1 add command} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.5 {GetEntryText} { catch {destroy .m1} menu .m1 .m1 add command -label "foo" list [catch {.m1 add command -label "foo"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.6 {GetEntryText} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "This is a very long string. 9012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890"} \ msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.7 {GetEntryText - elipses character} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "foo..."} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.8 {GetEntryText - false elipses character} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "foo."} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.9 {GetEntryText - false elipses character} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "foo.."} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.10 {GetEntryText - false elipses character} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "foo.b"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-8.11 {GetEntryText - false elipses character} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label "foo..b"} msg] $msg [destroy .m1] } {0 {} {}} # test macMenu-9.1 - assumes some fonts test macMenu-9.1 {FindMarkCharacter} { catch {destroy .m1} menu .m1 -font "Helvetica 12" -tearoff 0 .m1 add checkbutton -label test .m1 invoke test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} # All standard fonts have "¥" defined. We can't test further. test macMenu-10.1 {SetMenuIndicator - cascade entry} { catch {destroy .m1} menu .m1 list [catch {.m1 add cascade -label foo} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-10.2 {SetMenuIndicator - not radio or checkbutton} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label foo} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-10.3 {SetMenuIndicator - indiatorOn false} { catch {destroy .m1} menu .m1 list [catch {.m1 add checkbutton -label foo -indicatoron 0} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-10.4 {SetMenuIndicator - entry not selected} { catch {destroy .m1} menu .m1 list [catch {.m1 add checkbutton -label foo} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-10.5 {SetMenuIndicator - checkbutton} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo list [catch {.m1 invoke foo} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-10.6 {SetMenuIndicator - radio button} { catch {destroy .m1} menu .m1 .m1 add radiobutton -label foo list [catch {.m1 invoke foo} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-11.1 {SetMenuTitle} { catch {destroy .m1} catch {destroy .container} menu .container menu .m1 #previous title is .m1 .container add cascade -label "File" -menu .m1 list [catch {. configure -menu .container} msg] $msg [. configure -menu ""] [destroy .container .m1] } {0 {} {} {}} test macMenu-11.2 {SetMenuTitle} { menu .container menu .m1 . configure -menu "" #previous title is .m1 .container add cascade -label "F" -menu .m1 list [catch {. configure -menu .container} msg] $msg [. configure -menu ""] [destroy .container .m1] } {0 {} {} {}} test macMenu-12.1 {TkpConfigureMenuEntry} { catch {destroy .m1} . configure -menu "" menu .m1 .m1 add cascade -menu .m3 list [catch {.m1 entryconfigure 1 -menu .m2} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.2 {TkpConfigureMenuEntry} { catch {destroy .m1} catch {destroy .m2} . configure -menu "" menu .m1 .m1 add cascade -menu .m3 menu .m2 list [catch {.m1 entryconfigure 1 -menu .m2} msg] $msg [destroy .m1 .m2] } {0 {} {}} test macMenu-12.3 {TkpConfigureMenuEntry - running out of ids} { deleteWindows menu .menu for {set i 0} {$i < 230} {incr i} { menu .m$i .menu add cascade -label ".m$i" -menu .m$i } menu .breaker list [catch {.menu add cascade -menu .breaker} msg] $msg [deleteWindows] } {1 {No more menus can be allocated.} {}} test macMenu-12.4 {TkpConfigureMenuEntry - Control} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Control+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.5 {TkpConfigureMenuEntry - Ctrl} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Ctrl+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.6 {TkpConfigureMenuEntry - Shift} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Shift+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.7 {TkpConfigureMenuEntry - Option} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Opt+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.8 {TkpConfigureMenuEntry - Command} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Command+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.9 {TkpConfigureMenuEntry - Cmd} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Cmd+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.10 {TkpConfigureMenuEntry - Alt} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Alt+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.11 {TkpConfigureMenuEntry - Meta} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Meta+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.12 {TkpConfigureMenuEntry - Two modifiers} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Cmd+Shift+S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.13 {TkpConfigureMenuEntry - dash instead of plus} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -accel "Command-S"} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.14 {TkpConfigureMenuEntry - idler pending} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test list [catch {.m1 entryconfigure test -label test2} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-12.15 {TkpConfigureMenuEntry - idler not pending} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test update idletasks list [catch {.m1 entryconfigure test -label test2} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.1 {ReconfigureIndividualMenu - getting rid of zero items} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.2 {ReconfigureIndividualMenu - getting rid of one item} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test update idletasks .m1 delete test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.3 {ReconfigureIndividualMenu - getting rid of more than one} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test .m1 add command -label test2 update idletasks .m1 entryconfigure test2 -label "test two" list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.4 {ReconfigureIndividualMenu - separator} { catch {destroy .m1} menu .m1 .m1 add separator list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.5 {ReconfigureIndividualMenu - disabled} { catch {destroy .m1} menu .m1 .m1 add command .m1 entryconfigure 1 -state disabled list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.6 {ReconfigureIndividualMenu - active} { catch {destroy .m1} menu .m1 .m1 add command .m1 entryconfigure 1 -state active list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.7 {ReconfigureIndividualMenu - checkbutton not checked} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.8 {ReconfigureIndividualMenu - checkbutton - indicator off} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label test -indicatoron 0 .m1 invoke test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.9 {ReconfigureIndividualMenu - checkbutton on} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label test .m1 invoke test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.10 {ReconfigureIndividualMenu - radiobutton not checked} { catch {destroy .m1} menu .m1 .m1 add radiobutton -label test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.11 {ReconfigureIndividualMenu - radiobutton - indicator off} { catch {destroy .m1} menu .m1 .m1 add radiobutton -label test -indicatoron 0 .m1 invoke test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.12 {ReconfigureIndividualMenu - radiobutton on} { catch {destroy .m1} menu .m1 .m1 add radiobutton -label test .m1 invoke test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.13 {ReconfigureIndividualMenu} { catch {destroy .m1} . configure -menu "" menu .m1 .m1 add cascade -menu .m3 .m1 entryconfigure 1 -menu .m2 list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.14 {ReconfigureIndividualMenu} { catch {destroy .m1} catch {destroy .m2} . configure -menu "" menu .m1 .m1 add cascade -menu .m3 menu .m2 .m1 entryconfigure 1 -menu .m2 list [catch {update idletasks} msg] $msg [destroy .m1 .m2] } {0 {} {}} test macMenu-13.15 {ReconfigureIndividualMenu - accelerator} { catch {destroy .m1} menu .m1 .m1 add command -accel "Command-S" list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.16 {ReconfigureIndividualMenu - parent is disabled} { catch {destroy .m1} menu .m1 .m1 add cascade -label .m1.edit -label "Edit" -state disabled menu .m1.edit .m1.edit add command -label foo list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-13.17 {ReconfigureIndividualMenu - disabling parent} { catch {destroy .m1} menu .m1 .m1 add cascade -label .m1.edit -label Edit menu .m1.edit .m1.edit add command -label foo .m1 entryconfigure Edit -state disabled list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-14.1 {ReconfigureMacintoshMenu - normal menu} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label test list [catch {update idletasks} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-14.2 {ReconfigureMacintoshMenu - apple menu} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple menu .m1.apple -tearoff 0 .m1.apple add command -label test . configure -menu .m1 raise . list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-14.3 {ReconfigureMacintoshMenu - help menu} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help menu .m1.help -tearoff 0 .m1.help add command -label test . configure -menu .m1 raise . list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-14.4 {ReconfigureMacintoshMenu - menubar} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.file -label "foo" menu .m1.file . configure -menu .m1 raise . .m1 entryconfigure foo -label "File" list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-15.1 {CompleteIdlers - no idle pending} { catch {destroy .m1} menu .m1 .m1 add command -label test update idletasks list [catch {.m1 post 40 40} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-15.2 {CompleteIdlers - idle pending} { catch {destroy .m1} menu .m1 .m1 add command -label test list [catch {.m1 post 40 40} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-15.3 {CompleteIdlers - recursive} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.m2 -label test menu .m1.m2 .m1.m2 add command -label test list [catch {.m1 post 40 40} msg] $msg [destroy .m1] } {0 {} {}} #Don't know how to generate nested post menus test macMenu-16.1 {TkpPostMenu} { catch {destroy .m1} menu .m1 -postcommand "destroy .m1" list [catch {.m1 post 40 40} msg] $msg } {0 {}} test macMenu-16.2 {TkpPostMenu} { catch {destroy .m1} menu .m1 -postcommand "blork" list [catch {.m1 post 40 40} msg] $msg [destroy .m1] } {1 {invalid command name "blork"} {}} # We need to write the interactive test for menu posting. test macMenu-17.1 {TkpMenuNewEntry - no idle pending} { catch {destroy .m1} menu .m1 list [catch {.m1 add command -label test} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-17.2 {TkpMenuNewEntry - idle pending} { catch {destroy .m1} menu .m1 .m1 add command -label test list [catch {.m1 add command -label test2} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-18.1 {DrawMenuBarWhenIdle} { catch {destroy .m1} . configure -menu "" menu .m1 . configure -menu .m1 list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.2 {DrawMenuBarWhenIdle - clearing old apple menu out} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple menu .m1.apple .m1.apple add command -label test . configure -menu .m1 raise . update . configure -menu "" raise . list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-18.3 {DrawMenuBarWhenIdle - clearing out old help menu} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help menu .m1.help .m1.help add command -label test . configure -menu .m1 raise . update . configure -menu "" raise . list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-18.4 {DrawMenuBarWhenIdle - menu not there} { catch {destroy .m1} . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] } {0 {} {}} test macMenu-18.5 {DrawMenuBarWhenIdle - menu there} { catch {destroy .m1} menu .m1 . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.6 {DrawMenuBarWhenIdle - no apple menu} { catch {destroy .m1} menu .m1 . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.7 {DrawMenuBarWhenIdle - apple menu references but not there} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.8 {DrawMenuBarWhenIdle - apple menu there} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple menu .m1.apple .m1.apple add command -label test . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.9 {DrawMenuBarWhenIdle - apple menu there; no idle handler} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple menu .m1.apple .m1.apple add command -label test . configure -menu .m1 raise . update idletasks list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.10 {DrawMenuBarWhenIdle - no help menu} { catch {destroy .m1} menu .m1 . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.11 {DrawMenuBarWhenIdle - help menu referenced but not there} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.12 {DrawMenuBarWhenIdle - help menu there} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help menu .m1.help .m1.help add command -label test . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.13 {DrawMenuBarWhenIdle - help menu there - no idlers} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.help menu .m1.help .m1.help add command -label test . configure -menu .m1 raise . update idletasks list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} # Can't generate no menubar clone test macMenu-18.14 {DrawMenuBarWhenIdle - apple and help menus in tearoff menubar} { catch {destroy .m1} menu .m1 .m1 add cascade -menu .m1.apple .m1 add cascade -menu .m1.help menu .m1.apple menu .m1.help . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.15 {DrawMenuBarWhenIdle - apple and help menus in non-tearoff menubar} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add cascade -menu .m1.apple .m1 add cascade -menu .m1.help menu .m1.apple menu .m1.help . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.16 {DrawMenuBarWhenIdle - no apple menu} { catch {destroy .m1} menu .m1 -tearoff 0 . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.17 {DrawMenuBarWhenIdle - apple menu} { catch {destroy .m1} menu .m1 -tearoff 0 . configure -menu .m1 .m1 add cascade -menu .m1.apple menu .m1.apple .m1.apple add cascade -label test -menu .m1.apple.test menu .m1.apple.test raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.18 {DrawMenuBarWhenIdle - big for loop} { catch {destroy .m1} menu .m1 -tearoff 0 menu .m1.apple -tearoff 0 menu .m1.help -tearoff 0 menu .m1.foo -tearoff 0 .m1 add cascade -menu .m1.apple .m1 add cascade -menu .m1.help .m1 add cascade -label Foo -menu .m1.foo . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-18.19 {DrawMenuBarWhenIdle = disabled menu} { catch {destroy .m1} menu .m1 -tearoff 0 menu .m1.edit -tearoff 0 .m1 add cascade -menu .m1.edit -label Edit . configure -menu .m1 raise . .m1 entryconfigure Edit -state disabled list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-19.1 {RecursivelyInsertMenu} { catch {destroy .m1} catch {destroy .m2} catch {destroy .main} catch {destroy .t2} toplevel .t2 -menu .main wm geometry .t2 +0+0 menu .main .main add cascade -menu .m1 -label ".m1" menu .m1 .m1 add command -label "Test 2" .m1 add cascade -label ".m2" -menu .m2 menu .m2 .m2 add command -label "Test 3" list [catch {raise .t2} msg] $msg [destroy .t2 .main .m1 .m2] } {0 {} {}} test macMenu-19.2 {RecursivelyInsertMenu} { catch {destroy .m1} catch {destroy .m2} catch {destroy .main} catch {destroy .t2} toplevel .t2 -menu .main wm geometry .t2 +0+0 menu .main .main add cascade -menu .m1 -label ".m1" menu .m1 .m1 add command -label "Test 2" .m1 add cascade -label ".m2" -menu .m2 menu .m2 .m2 add command -label "Test 3" list [catch {raise .t2} msg] $msg [destroy .t2 .main .m1 .m2] } {0 {} {}} test macMenu-20.1 {SetDefaultMenuBar} { . configure -menu "" raise . list [catch {update} msg] $msg } {0 {}} test macMenu-21.1 {TkpSetMainMenubar - not front window} { catch {destroy .m1} catch {destroy .t2} toplevel .t2 wm geometry .t2 +50+50 menu .m1 raise . update list [catch {.t2 configure -menu .m1} msg] $msg [destroy .t2] [destroy .m1] } {0 {} {} {}} test macMenu-21.2 {TkpSetMainMenubar - menu null} { . configure -menu "" raise . list [catch {update} msg] $msg } {0 {}} test macMenu-21.3 {TkpSetMainMenubar - different interps} { catch {destroy .m1} catch {interp delete testinterp} interp create testinterp load {} tk testinterp menu .m1 . configure -menu .m1 raise . update interp eval testinterp {menu .m1} interp eval testinterp {. configure -menu .m1} interp eval testinterp {raise .} list [catch {interp eval testinterp {update}} msg] $msg [interp delete testinterp] [. configure -menu ""] [destroy .m1] } {0 {} {} {} {}} test macMenu-21.4 {TkpSetMainMenubar - different windows} { catch {destroy .m1} catch {destroy .t2} menu .m1 . configure -menu .m1 toplevel .t2 wm geometry .t2 +50+50 .t2 configure -menu .m1 raise . update raise .t2 list [catch {update} msg] $msg [destroy .t2] [. configure -menu ""] [destroy .m1] } {0 {} {} {} {}} test macMenu-21.5 {TkpSetMainMenubar - old menu was null} { catch {destroy .m1} . configure -menu "" update menu .m1 . configure -menu .m1 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-21.6 {TkpSetMainMenubar - old menu different} { catch {destroy .m1} catch {destroy .m2} menu .m1 menu .m2 . configure -menu .m1 raise . update . configure -menu .m2 raise . list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .m2] } {0 {} {} {} {}} test macMenu-21.7 {TkpSetMainMenubar - child window NULL - parent window now} { catch {destroy .m1} catch {destroy .t2} toplevel .t2 menu .m1 .m1 add cascade -label Foo -menu .m1.foo menu .m1.foo .m1.foo add command -label foo . configure -menu .m1 raise .t2 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .t2] } {0 {} {} {} {}} test macMenu-21.8 {TkpSetMainMenubar - tearoff window} { catch {destroy .t2} toplevel .t2 -menu .t2.m1 menu .t2.m1 .t2.m1 add cascade -label File -menu .t2.m1.foo menu .t2.m1.foo .t2.m1.foo add command -label foo raise .t2 tkTearOffMenu .t2.m1.foo 100 100 list [catch {update} msg] $msg [destroy .t2] } {0 {} {}} test macMenu-22.1 {TkSetWindowMenuBar} { } {} test macMenu-23.1 {TkMacDispatchMenuEvent} { # needs to be interactive. } {} test macMenu-24.1 {GetMenuIndicatorGeometry} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo .m1 invoke foo list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.1 {GetMenuAccelGeometry - cascade entry} { catch {destroy .m1} menu .m1 .m1 add cascade -label foo list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.2 {GetMenuAccelGeometry - no accel} { catch {destroy .m1} menu .m1 .m1 add command list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.3 {GetMenuAccelGeometry - no special chars - arbitrary string} { catch {destroy .m1} menu .m1 .m1 add command -accel "Test" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.4 {GetMenuAccelGeometry - Command} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Cmd+S" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.5 {GetMenuAccelGeometry - Control} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Ctrl+S" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.6 {GetMenuAccelGeometry - Shift} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Shift+S" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.7 {GetMenuAccelGeometry - Option} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Opt+S" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.8 {GetMenuAccelGeometry - Combination} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Cmd+Shift+S" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-25.9 {GetMenuAccelGeometry - extra text} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Command+Delete" list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-26.1 {GetTearoffEntryGeometry} { # can't call this on power mac. } {} test macMenu-27.1 {GetMenuSeparatorGeometry} { catch {destroy .m1} menu .m1 .m1 add separator list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] } {0 {}} test macMenu-28.1 {DrawMenuEntryIndicator - non-checkbutton} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-28.2 {DrawMenuEntryIndicator - indicator off} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo -indicatoron 0 .m1 invoke foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-28.3 {DrawMenuEntryIndicator - not selected} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-28.4 {DrawMenuEntryIndicator - checkbutton} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo .m1 invoke foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-28.5 {DrawMenuEntryIndicator - radiobutton} { catch {destroy .m1} menu .m1 .m1 add radiobutton -label foo .m1 invoke foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} # Cannot reproduce resources missing or color allocation failing easily. test macMenu-29.1 {DrawSICN} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Cmd+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} # Cannot reproduce resources missing test macMenu-30.1 {DrawMenuEntryAccelerator - cascade entry} { catch {destroy .m1} menu .m1 .m1 add cascade -label foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.2 {DrawMenuEntryAccelerator - no accel string} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.3 {DrawMenuEntryAccelerator - random accel string} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.4 {DrawMenuEntryAccelerator - Command} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Cmd+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.5 {DrawMenuEntryAccelerator - Option} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Opt+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.6 {DrawMenuEntryAccelerator - Shift} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Shift+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.7 {DrawMenuEntryAccelerator - Control} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Ctrl+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-30.8 {DrawMenuEntryAccelerator - combination} { catch {destroy .m1} menu .m1 .m1 add command -label foo -accel "Cmd+Shift+S" set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-31.1 {DrawMenuSeparator} { catch {destroy .m1} menu .m1 .m1 add separator set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-32.1 {TkpDrawMenuEntryLabel} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [catch {update} msg] $msg [destroy .m1] } {0 {} {}} test macMenu-33.1 {MenuDefProc - No way to test automatically.} {} {} test macMenu-34.1 {TkMacHandleTearoffMenu - no way to test automatically} {} {} test macMenu-35.1 {TkpInitializeMenuBindings - nothing to do} {} {} test macMenu-36.1 {TkpComputeMenubarGeometry} { catch {destroy .m1} menu .m1 .m1 add cascade -label foo . configure -menu .m1 list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1] } {0 {} {} {}} test macMenu-37.1 {DrawTearoffEntry - can't do automatically} {} {} test macMenu-38.1 {TkMacSetHelpMenuItemCount - called at boot time} {} {} test macMenu-39.1 {TkMacMenuClick - can't do automatically} {} {} test macMenu-40.1 {TkpDrawMenuEntry - gc for active and not strict motif} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.2 {TkpDrawMenuEntry - gc for active menu item with its own gc} { catch {destroy .m1} menu .m1 .m1 add command -label foo -activeforeground red set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.3 {TkpDrawMenuEntry - gc for active and strict motif} { catch {destroy .m1} menu .m1 set tk_strictMotif 1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] [set tk_strictMotif 0] } {{} {} 0} test macMenu-40.4 {TkpDrawMenuEntry - gc for disabled with disabledfg and custom entry} { catch {destroy .m1} menu .m1 -disabledforeground blue .m1 add command -label foo -state disabled -background red set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.5 {TkpDrawMenuEntry - gc for disabled with disabledFg} { catch {destroy .m1} menu .m1 -disabledforeground blue .m1 add command -label foo -state disabled set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.6 {TkpDrawMenuEntry - gc for disabled - no disabledFg} { catch {destroy .m1} menu .m1 -disabledforeground "" .m1 add command -label foo -state disabled set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.7 {TkpDrawMenuEntry - gc for normal - custom entry} { catch {destroy .m1} menu .m1 .m1 add command -label foo -foreground red set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.8 {TkpDrawMenuEntry - gc for normal} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.9 {TkpDrawMenuEntry - gc for indicator - custom entry} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo -selectcolor orange .m1 invoke 1 set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.10 {TkpDrawMenuEntry - gc for indicator} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label foo .m1 invoke 1 set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.11 {TkpDrawMenuEntry - border - custom entry} { catch {destroy .m1} menu .m1 .m1 add command -label foo -activebackground green set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.12 {TkpDrawMenuEntry - border} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.13 {TkpDrawMenuEntry - active border - strict motif} { catch {destroy .m1} set tk_strictMotif 1 menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] [set tk_strictMotif 0] } {{} {} 0} test macMenu-40.14 {TkpDrawMenuEntry - active border - custom entry} { catch {destroy .m1} menu .m1 .m1 add command -label foo -activeforeground yellow set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.15 {TkpDrawMenuEntry - active border} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] .m1 entryconfigure 1 -state active list [update] [destroy .m1] } {{} {}} test macMenu-40.16 {TkpDrawMenuEntry - font - custom entry} { catch {destroy .m1} menu .m1 .m1 add command -label foo -font "Helvectica 72" set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.17 {TkpDrawMenuEntry - font} { catch {destroy .m1} menu .m1 -font "Courier 72" .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.18 {TkpDrawMenuEntry - separator} { catch {destroy .m1} menu .m1 .m1 add separator set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.19 {TkpDrawMenuEntry - standard} { catch {destroy .mb} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.20 {TkpDrawMenuEntry - disabled cascade item} { catch {destroy .m1} menu .m1 .m1 add cascade -label File -menu .m1.file menu .m1.file .m1.file add command -label foo .m1 entryconfigure File -state disabled set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.21 {TkpDrawMenuEntry - indicator} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label macMenu-40.20 .m1 invoke 0 set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-40.22 {TkpDrawMenuEntry - indicator - hideMargin} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label macMenu-40.21 -hidemargin 1 .m1 invoke 0 set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-41.1 {TkpComputeStandardMenuGeometry - no entries} { catch {destroy .m1} menu .m1 list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.2 {TkpComputeStandardMenuGeometry - one entry} { catch {destroy .m1} menu .m1 .m1 add command -label "one" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.3 {TkpComputeStandardMenuGeometry - more than one entry} { catch {destroy .m1} menu .m1 .m1 add command -label "one" .m1 add command -label "two" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.4 {TkpComputeStandardMenuGeometry - separator} { catch {destroy .m1} menu .m1 .m1 add separator list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.5 {TkpComputeStandardMenuGeometry - standard label geometry} { catch {destroy .m1} menu .m1 .m1 add command -label "test" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.6 {TkpComputeStandardMenuGeometry - different font for entry} { catch {destroy .m1} menu .m1 -font "Helvetica 12" .m1 add command -label "test" -font "Courier 12" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.7 {TkpComputeStandardMenuGeometry - second entry larger} { catch {destroy .m1} menu .m1 .m1 add command -label "test" .m1 add command -label "test test" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.8 {TkpComputeStandardMenuGeometry - first entry larger} { catch {destroy .m1} menu .m1 .m1 add command -label "test test" .m1 add command -label "test" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.9 {TkpComputeStandardMenuGeometry - accelerator} { catch {destroy .m1} menu .m1 .m1 add command -label "test" -accel "Ctrl+S" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.10 {TkpComputeStandardMenuGeometry - second accel larger} { catch {destroy .m1} menu .m1 .m1 add command -label "test" -accel "1" .m1 add command -label "test" -accel "1 1" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.11 {TkpComputeStandardMenuGeometry - second accel smaller} { catch {destroy .m1} menu .m1 .m1 add command -label "test" -accel "1 1" .m1 add command -label "test" -accel "1" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.12 {TkpComputeStandardMenuGeometry - indicator} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label test .m1 invoke 1 list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.13 {TkpComputeStandardMenuGeometry - second indicator less or equal } { catch {destroy .m1} catch {image delete image1} image create test image1 menu .m1 .m1 add checkbutton -image image1 .m1 invoke 1 .m1 add checkbutton -label test .m1 invoke 2 list [update idletasks] [destroy .m1] [image delete image1] } {{} {} {}} test macMenu-41.14 {TkpComputeStandardMenuGeometry - hidden margin} { catch {destroy .m1} menu .m1 .m1 add checkbutton -label macMenu-41.15 -hidemargin 1 .m1 invoke macMenu-41.15 list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.15 {TkpComputeStandardMenuGeometry - zero sized menus} { catch {destroy .m1} menu .m1 -tearoff 0 list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.16 {TkpComputeStandardMenuGeometry - first column bigger} { catch {destroy .m1} menu .m1 .m1 add command -label one .m1 add command -label two .m1 add command -label three -columnbreak 1 list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.17 {TkpComputeStandardMenuGeometry - second column bigger} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label one .m1 add command -label two -columnbreak 1 .m1 add command -label three list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.18 {TkpComputeStandardMenuGeometry - three columns} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label one .m1 add command -label two -columnbreak 1 .m1 add command -label three .m1 add command -label four .m1 add command -label five -columnbreak 1 .m1 add command -label six list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.19 {TkpComputeStandardMenuGeometry - entry without accel long} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label "This is a long item with no accel." .m1 add command -label foo -accel "Cmd+S" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-41.20 {TkpComputeStandardMenuGeometry - entry with accel long} { catch {destroy .m1} menu .m1 -tearoff 0 .m1 add command -label foo .m1 add command -label "This is a long label with an accel." -accel "Cmd+W" list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.1 {DrawMenuEntryLabel - setting indicatorSpace} { catch {destroy .m1} menu .m1 .m1 add command -label "foo" set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.2 {DrawMenuEntryLabel - drawing image} { catch {destroy .m1} catch {image delete image1} image create test image1 menu .m1 .m1 add command -image image1 set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] [image delete image1] } {{} {} {}} test macMenu-42.3 {DrawMenuEntryLabel - drawing select image} { catch {destroy .m1} catch {eval image delete [image names]} image create test image1 image create test image2 menu .m1 .m1 add checkbutton -image image1 -selectimage image2 .m1 invoke 1 set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] [eval image delete [image names]] } {{} {} {}} test macMenu-42.4 {DrawMenuEntryLabel - drawing a bitmap} { catch {destroy .m1} menu .m1 .m1 add command -bitmap questhead set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.5 {DrawMenuEntryLabel - drawing null label} { catch {destroy .m1} menu .m1 .m1 add command set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.6 {DrawMenuEntryLabel - drawing real label} { catch {destroy .m1} menu .m1 .m1 add command -label "This is a long label" -underline 3 set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.7 {DrawMenuEntryLabel - drawing disabled label} { catch {destroy .m1} menu .m1 -disabledforeground "" .m1 add command -label "This is a long label" -state disabled set tearoff [tkTearOffMenu .m1] list [update idletasks] [destroy .m1] } {{} {}} test macMenu-42.8 {DrawMenuEntryLabel - disabled images} { catch {destroy .m1} catch {image delete image1} image create test image1 menu .m1 .m1 add command -image image1 -state disabled set tearoff [tkTearOffMenu .m1 100 100] list [update idletasks] [destroy .m1] [image delete image1] } {{} {} {}} test macMenu-43.1 {GetMenuLabelGeometry - image} { catch {destroy .m1} catch {image delete image1} menu .m1 image create test image1 .m1 add command -image image1 list [update idletasks] [destroy .m1] [image delete image1] } {{} {} {}} test macMenu-43.2 {GetMenuLabelGeometry - bitmap} { catch {destroy .m1} menu .m1 .m1 add command -bitmap questhead list [update idletasks] [destroy .m1] } {{} {}} test macMenu-43.3 {GetMenuLabelGeometry - no text} { catch {destroy .m1} menu .m1 .m1 add command list [update idletasks] [destroy .m1] } {{} {}} test macMenu-43.4 {GetMenuLabelGeometry - text} { catch {destroy .m1} menu .m1 .m1 add command -label "This is a test." list [update idletasks] [destroy .m1] } {{} {}} test macMenu-44.1 {DrawMenuEntryBackground} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] list [update] [destroy .m1] } {{} {}} test macMenu-44.2 {DrawMenuEntryBackground} { catch {destroy .m1} menu .m1 .m1 add command -label foo set tearoff [tkTearOffMenu .m1 40 40] $tearoff activate 0 list [update] [destroy .m1] } {{} {}} test macMenu-45.1 {TkpMenuInit - called at boot time} {} {} # cleanup deleteWindows ::tcltest::cleanupTests return