summaryrefslogtreecommitdiffstats
path: root/tests/macMenu.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/macMenu.test')
-rw-r--r--tests/macMenu.test1565
1 files changed, 1565 insertions, 0 deletions
diff --git a/tests/macMenu.test b/tests/macMenu.test
new file mode 100644
index 0000000..2c10e86
--- /dev/null
+++ b/tests/macMenu.test
@@ -0,0 +1,1565 @@
+# 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.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+# SCCS: @(#) macMenu.test 1.23 97/07/10 13:35:52
+
+if {$tcl_platform(platform) != "macintosh"} {
+ 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?"
+ return
+}
+
+if {[info procs test] != "test"} {
+ source defs
+}
+
+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} {} {}
+
+deleteWindows
+