diff options
author | rjohnson <rjohnson> | 1998-04-01 09:51:44 (GMT) |
---|---|---|
committer | rjohnson <rjohnson> | 1998-04-01 09:51:44 (GMT) |
commit | 066ea7fd88d49cb456f74da71dbe875e4fc0aabb (patch) | |
tree | 8fb30cb152c4dc191be47fa043d2e6f5ea38c7ba /tests/winMenu.test | |
parent | 13242623d2ff3ea02ab6a62bfb48a7dbb5c27e22 (diff) | |
download | tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.zip tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.tar.gz tk-066ea7fd88d49cb456f74da71dbe875e4fc0aabb.tar.bz2 |
Initial revision
Diffstat (limited to 'tests/winMenu.test')
-rw-r--r-- | tests/winMenu.test | 1030 |
1 files changed, 1030 insertions, 0 deletions
diff --git a/tests/winMenu.test b/tests/winMenu.test new file mode 100644 index 0000000..ceeced6 --- /dev/null +++ b/tests/winMenu.test @@ -0,0 +1,1030 @@ +# 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-1996 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: @(#) winMenu.test 1.19 97/07/02 11:29:57 + +if {$tcl_platform(platform) != "windows"} { + return +} + +if {![info exists INTERACTIVE]} { + puts " Some tests were skipped because they could not be performed" + puts " automatically on this platform. If you wish to execute them" + puts " interactively, set the TCL variable INTERACTIVE and re-run" + puts " the test." + set testConfig(menuInteractive) 0 +} else { + set testConfig(menuInteractive) 1 +} + +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 winMenu-1.1 {GetNewID} { + catch {destroy .m1} + list [catch {menu .m1} msg] $msg [destroy .m1] +} {0 .m1 {}} +# Basically impossible to test menu IDs wrapping. + +test winMenu-2.1 {FreeID} { + catch {destroy .m1} + menu .m1 + list [catch {destroy .m1} msg] $msg +} {0 {}} + +test winMenu-3.1 {TkpNewMenu} { + catch {destroy .m1} + list [catch {menu .m1} msg] $msg [catch {destroy .m1} msg2] $msg2 +} {0 .m1 0 {}} +test winMenu-3.2 {TkpNewMenu} { + catch {destroy .m1} + . configure -menu "" + menu .m1 + .m1 add command -label "foo" + list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [catch {destroy .m1} msg2] $msg2 +} {0 {} {} 0 {}} + +test winMenu-4.1 {TkpDestroyMenu} { + catch {destroy .m1} + menu .m1 + list [catch {destroy .m1} msg] $msg +} {0 {}} +test winMenu-4.2 {TkpDestroyMenu - help menu} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -menu .m1.system + . configure -menu .m1 + list [catch {destroy .m1.system} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} + +test winMenu-5.1 {TkpDestroyMenuEntry} { + catch {destroy .m1} + . configure -menu "" + menu .m1 + .m1 add command -label "test" + update idletasks + list [catch {.m1 delete 1} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-6.1 {GetEntryText} { + catch {destroy .m1} + list [catch {menu .m1} msg] $msg [destroy .m1] +} {0 .m1 {}} +test winMenu-6.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 winMenu-6.3 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -bitmap questhead} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.4 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.5 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "foo"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.6 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "This string has one & in it"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.7 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The & should be underlined." -underline 4} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.8 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The * should be underlined." -underline 4} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.9 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "foo" -accel "bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.10 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "This string has one & in it" -accel "bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.11 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The & should be underlined." -underline 4 -accel "bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.12 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The * should be underlined." -underline 4 -accel "bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.13 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "foo" -accel "&bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.14 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "This string has one & in it" -accel "&bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.15 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The & should be underlined." -underline 4 -accel "&bar"} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-6.16 {GetEntryText} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command -label "The * should be underlined." -underline 4 -accel "&bar"} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-7.1 {ReconfigureWindowsMenu - system menu item removal} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -menu .m1.system + menu .m1.system + .m1.system add command -label foo + update idletasks + .m1.system add command -label bar + list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} +test winMenu-7.2 {ReconfigureWindowsMenu - menu item removal} { + catch {destroy .m1} + menu .m1 + .m1 add command -label Hello + update idletasks + .m1 add command -label foo + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.3 {ReconfigureWindowsMenu - zero items} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label Hello + .m1 delete Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.4 {ReconfigureWindowsMenu - one item} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.5 {ReconfigureWindowsMenu - two items} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label One + .m1 add command -label Two + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.6 {ReconfigureWindowsMenu - separator item} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add separator + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.7 {ReconfigureWindowsMenu - non-text item} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.8 {ReconfigureWindowsMenu - disabled item} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label Hello -state disabled + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.9 {ReconfigureWindowsMenu - non-selected checkbutton} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add checkbutton -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.10 {ReconfigureWindowsMenu - non-selected radiobutton} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add radiobutton -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.11 {ReconfigureWindowsMenu - selected checkbutton} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add checkbutton -label Hello + .m1 invoke Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.12 {ReconfigureWindowsMenu - selected radiobutton} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add radiobutton -label Hello + .m1 invoke Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.13 {ReconfigureWindowsMenu - cascade missing} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add cascade -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-7.14 {ReconfigureWindowsMenu - cascade} { + catch {destroy .m1} + catch {destroy .m2} + menu .m1 -tearoff 0 + menu .m2 + .m1 add cascade -menu .m2 -label Hello + list [catch {update idletasks} msg] $msg [destroy .m1] [destroy .m2] +} {0 {} {} {}} +test winMenu-7.15 {ReconfigureWindowsMenu - menubar without system menu} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add cascade -menu .m1.file + menu .m1.file -tearoff 0 + . configure -menu .m1 + list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} +test winMenu-7.16 {ReconfigureWindowsMenu - system menu already created} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add cascade -menu .m1.system + menu .m1.system -tearoff 0 + . configure -menu .m1 + update idletasks + .m1.system add command -label Hello + list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} +test winMenu-7.17 {ReconfigureWindowsMenu - system menu update pending} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add cascade -menu .m1.system + menu .m1.system -tearoff 0 + . configure -menu .m1 + list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} +test winMenu-7.18 {ReconfigureWindowsMenu - system menu update not pending} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add cascade -menu .m1.system + menu .m1.system -tearoff 0 + .m1.system add command -label Hello + update idletasks + . configure -menu .m1 + list [catch {update idletasks} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} +test winMenu-7.19 {ReconfigureWindowsMenu - column break} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label one + .m1 add command -label two -columnbreak 1 + list [catch {update idletasks} msg] $msg [destroy .m1] +} {0 {} {}} + +#Don't know how to generate nested post menus +test winMenu-8.1 {TkpPostMenu} { + catch {destroy .m1} + menu .m1 -postcommand "blork" + list [catch {.m1 post 40 40} msg] $msg [destroy .m1] +} {1 {invalid command name "blork"} {}} +test winMenu-8.2 {TkpPostMenu} { + catch {destroy .m1} + menu .m1 -postcommand "destroy .m1" + list [.m1 post 40 40] [winfo exists .m1] +} {{} 0} +test winMenu-8.3 {TkpPostMenu - popup menu} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-8.3: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} +test winMenu-8.4 {TkpPostMenu - menu button} {menuInteractive} { + catch {destroy .mb} + menubutton .mb -text test -menu .mb.menu + menu .mb.menu + .mb.menu add command -label "winMenu-8.4 - Hit ESCAPE." + pack .mb + list [tkMbPost .mb] [destroy .m1] +} {{} {}} +test winMenu-8.5 {TkpPostMenu - update not pending} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-8.5 - Hit ESCAPE." + update idletasks + list [catch {.m1 post 40 40} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-9.1 {TkpMenuNewEntry} { + catch {destroy .m1} + menu .m1 + list [catch {.m1 add command} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-10.1 {TkwinMenuProc} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-10.1: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} + +# Can't generate a WM_INITMENU without a Tk menu yet. +test winMenu-11.1 {TkWinHandleMenuEvent - WM_INITMENU} {menuInteractive} { + catch {destroy .m1} + catch {unset foo} + menu .m1 -postcommand "set foo test" + .m1 add command -label "winMenu-11.1: Hit ESCAPE." + list [.m1 post 40 40] [set foo] [unset foo] [destroy .m1] +} {test test {} {}} +test winMenu-11.2 {TkWinHandleMenuEvent - WM_COMMAND} {menuInteractive} { + catch {destroy .m1} + catch {unset foo} + menu .m1 + .m1 add checkbutton -variable foo -label "winMenu-11.2: Please select this menu item." + list [.m1 post 40 40] [update] [set foo] [unset foo] [destroy .m1] +} {{} {} 1 {} {}} +# Can't test WM_MENUCHAR +test winMenu-11.3 {TkWinHandleMenuEvent - WM_MEASUREITEM} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-11.3: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} +test winMenu-11.4 {TkWinHandleMenuEvent - WM_MEASUREITEM} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label "winMenu-11.4: Hit ESCAPE" -hidemargin 1 + list [.m1 post 40 40] [destroy .m1] +} {{} {}} +test winMenu-11.5 {TkWinHandleMenuEvent - WM_DRAWITEM} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-11.5: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} +test winMenu-11.6 {TkWinHandleMenuEvent - WM_DRAWITEM - item disabled} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-11.6: Hit ESCAPE." -state disabled + list [.m1 post 40 40] [destroy .m1] +} {{} {}} +test winMenu-11.7 {TkWinHandleMenuEvent - WM_INITMENU - not pending} {menuInteractive} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label "winMenu-11.7: Hit ESCAPE" + update idletasks + list [catch {.m1 post 40 40} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-12.1 {TkpSetWindowMenuBar} { + catch {destroy .m1} + . configure -menu "" + menu .m1 + .m1 add command -label foo + list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [catch {destroy .m1} msg2] $msg2 +} {0 {} {} 0 {}} +test winMenu-12.2 {TkpSetWindowMenuBar} { + catch {destroy .m1} + . configure -menu "" + menu .m1 + .m1 add command -label foo + . configure -menu .m1 + list [catch {. configure -menu ""} msg] $msg [catch {destroy .m1} msg2] $msg2 +} {0 {} 0 {}} +test winMenu-12.3 {TkpSetWindowMenuBar - no update pending} { + catch {destroy .m1} + . configure -menu "" + menu .m1 -tearoff 0 + .m1 add command -label foo + update idletasks + list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1] +} {0 {} {} {}} + +test winMenu-13.1 {TkpSetMainMenubar - nothing to do} {} {} + +test winMenu-14.1 {GetMenuIndicatorGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} +test winMenu-14.2 {GetMenuIndicatorGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo -hidemargin 1 + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} + +test winMenu-15.1 {GetMenuAccelGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -label foo -accel Ctrl+U + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} +test winMenu-15.2 {GetMenuAccelGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} +test winMenu-15.3 {GetMenuAccelGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo -accel "Ctrl+U" + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} + +test winMenu-16.1 {GetTearoffEntryGeometry} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-19.1: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} + +test winMenu-17.1 {GetMenuSeparatorGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add separator + list [catch {tkTearOffMenu .m1 40 40}] [destroy .m1] +} {0 {}} + +# Currently, the only callers to DrawWindowsSystemBitmap want things +# centered vertically, and either centered or right aligned horizontally. +test winMenu-18.1 {DrawWindowsSystemBitmap - center aligned} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo + .m1 invoke foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-18.2 {DrawWindowsSystemBitmap - right aligned} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-19.1 {DrawMenuEntryIndicator - not checkbutton or radiobutton} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-19.2 {DrawMenuEntryIndicator - not selected} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-19.3 {DrawMenuEntryIndicator - checkbutton} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo + .m1 invoke foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-19.4 {DrawMenuEntryIndicator - radiobutton} { + catch {destroy .m1} + menu .m1 + .m1 add radiobutton -label foo + .m1 invoke foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-19.5 {DrawMenuEntryIndicator - disabled} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo + .m1 invoke foo + .m1 entryconfigure foo -state disabled + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-19.6 {DrawMenuEntryIndicator - indicator not on} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label foo -indicatoron 0 + .m1 invoke foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-20.1 {DrawMenuEntryAccelerator - disabled} { + catch {destroy .m1} + menu .m1 -disabledforeground red + .m1 add command -label foo -accel "Ctrl+U" -state disabled + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-20.2 {DrawMenuEntryAccelerator - normal text} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo -accel "Ctrl+U" + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-20.3 {DrawMenuEntryAccelerator - disabled, no disabledforeground} { + catch {destroy .m1} + menu .m1 -disabledforeground "" + .m1 add command -label foo -accel "Ctrl+U" -state disabled + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-20.4 {DrawMenuEntryAccelerator - cascade, drawArrow true} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-20.5 {DrawMenuEntryAccelerator - cascade, drawArrow false} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -label "winMenu-23.5: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} + +test winMenu-21.1 {DrawMenuSeparator} { + catch {destroy .m1} + menu .m1 + .m1 add separator + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-22.1 {DrawMenuUnderline} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo -underline 0 + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-23.1 {Don't know how to test MenuKeyBindProc} {} {} +test winMenu-24.1 {TkpInitializeMenuBindings called at boot time} {} {} + +test winMenu-25.1 {DrawMenuEntryLabel - normal} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-25.2 {DrawMenuEntryLabel - disabled with fg} { + catch {destroy .m1} + menu .m1 -disabledforeground red + .m1 add command -label foo -state disabled + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-25.3 {DrawMenuEntryLabel - disabled with no fg} { + catch {destroy .m1} + menu .m1 -disabledforeground "" + .m1 add command -label foo -state disabled + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-26.1 {TkpComputeMenubarGeometry} { + catch {destroy .m1} + menu .m1 + .m1 add cascade -label File + list [. configure -menu .m1] [. configure -menu ""] [destroy .m1] +} {{} {} {}} + +test winMenu-27.1 {DrawTearoffEntry} {menuInteractive} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "winMenu-24.4: Hit ESCAPE." + list [.m1 post 40 40] [destroy .m1] +} {{} {}} + +test winMenu-28.1 {TkpConfigureMenuEntry - update pending} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label Hello + list [catch {.m1 add command -label Two} msg] $msg [destroy .m1] +} {0 {} {}} +test winMenu-28.2 {TkpConfigureMenuEntry - update not pending} { + catch {destroy .m1} + menu .m1 -tearoff 0 + .m1 add command -label One + update idletasks + list [catch {.m1 add command -label Two} msg] $msg [destroy .m1] +} {0 {} {}} + +test winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.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 winMenu-29.18 {TkpDrawMenuEntry - separator} { + catch {destroy .m1} + menu .m1 + .m1 add separator + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-29.19 {TkpDrawMenuEntry - standard} { + catch {destroy .mb} + menu .m1 + .m1 add command -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-29.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 winMenu-29.21 {TkpDrawMenuEntry - indicator} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label winMenu-31.20 + .m1 invoke winMenu-31.20 + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-29.22 {TkpDrawMenuEntry - indicator} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label winMenu-31.21 -hidemargin 1 + .m1 invoke winMenu-31.21 + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} + +test winMenu-30.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 winMenu-30.2 {GetMenuLabelGeometry - bitmap} { + catch {destroy .m1} + menu .m1 + .m1 add command -bitmap questhead + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-30.3 {GetMenuLabelGeometry - no text} { + catch {destroy .m1} + menu .m1 + .m1 add command + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-30.4 {GetMenuLabelGeometry - text} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "This is a test." + list [update idletasks] [destroy .m1] +} {{} {}} + +test winMenu-31.1 {DrawMenuEntryBackground} { + catch {destroy .m1} + menu .m1 + .m1 add command -label foo + set tearoff [tkTearOffMenu .m1 40 40] + list [update] [destroy .m1] +} {{} {}} +test winMenu-31.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 winMenu-32.1 {TkpComputeStandardMenuGeometry - no entries} { + catch {destroy .m1} + menu .m1 + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.2 {TkpComputeStandardMenuGeometry - one entry} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "one" + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.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 winMenu-32.4 {TkpComputeStandardMenuGeometry - separator} { + catch {destroy .m1} + menu .m1 + .m1 add separator + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.5 {TkpComputeStandardMenuGeometry - tearoff entry} {unixOnly} { + catch {destroy .m1} + menubutton .mb -text "test" -menu .mb.m + menu .mb.m + .mb.m add command -label test + pack .mb + catch {tkMbPost .mb} + list [update] [destroy .mb] +} {{} {}} +test winMenu-32.6 {TkpComputeStandardMenuGeometry - standard label geometry} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "test" + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.7 {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 winMenu-32.8 {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 winMenu-32.9 {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 winMenu-32.10 {TkpComputeStandardMenuGeometry - accelerator} { + catch {destroy .m1} + menu .m1 + .m1 add command -label "test" -accel "Ctrl+S" + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.11 {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 winMenu-32.12 {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 winMenu-32.13 {TkpComputeStandardMenuGeometry - indicator} { + catch {destroy .m1} + menu .m1 + .m1 add checkbutton -label test + .m1 invoke 1 + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.14 {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 winMenu-32.15 {TkpComputeStandardMenuGeometry - second indicator larger } {unixOnly} { + 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 winMenu-32.16 {TkpComputeStandardMenuGeometry - zero sized menus} { + catch {destroy .m1} + menu .m1 -tearoff 0 + list [update idletasks] [destroy .m1] +} {{} {}} +test winMenu-32.17 {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 winMenu-32.18 {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 winMenu-32.19 {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 winMenu-33.1 {TkpNotifyTopLevelCreate - no menu yet} { + catch {destroy .t2} + catch {destroy .m1} + toplevel .t2 -menu .m1 + wm geometry .t2 +0+0 + list [update idletasks] [destroy .t2] +} {{} {}} +test winMenu-33.2 {TkpNotifyTopLevelCreate - menu} { + catch {destroy .t2} + catch {destroy .m1} + menu .m1 + menu .m1.system + .m1 add cascade -menu .m1.system + .m1.system add separator + .m1.system add command -label foo + toplevel .t2 -menu .m1 + wm geometry .t2 +0+0 + list [update idletasks] [destroy .m1] [destroy .t2] +} {{} {} {}} + +test winMenu-34.1 {TkpMenuInit called at boot time} {} {} + +deleteWindows |