# This file is a Tcl script to test menus in Tk. It is # organized in the standard fashion for Tcl tests. It tests # the common implementation of Macintosh and Windows menus. # # Copyright (c) 1995-1996 Sun Microsystems, Inc. # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # # RCS: @(#) $Id: macWinMenu.test,v 1.4 2002/07/13 20:28:35 dgp Exp $ package require tcltest 2.1 namespace import -force tcltest::configure namespace import -force tcltest::testsDirectory configure -testdir [file join [pwd] [file dirname [info script]]] configure -loadfile [file join [testsDirectory] constraints.tcl] tcltest::loadTestedCommands test macWinMenu-1.1 {PreprocessMenu} {macOrPc nonUnixUserInteraction} { catch {destroy .m1} menu .m1 -postcommand "destroy .m1" .m1 add command -label "macWinMenu-1.1: Hit Escape" list [catch {.m1 post 40 40} msg] $msg } {0 {}} test macWinMenu-1.2 {PreprocessMenu} {macOrPc nonUnixUserInteraction} { catch {destroy .m1} catch {destroy .m2} set foo1 foo set foo2 foo menu .m1 -postcommand "set foo1 .m1" .m1 add cascade -menu .m2 -label "macWinMenu-1.2: Hit Escape" menu .m2 -postcommand "set foo2 .m2" update idletasks list [catch {.m1 post 40 40} msg] $msg [set foo1] [set foo2] \ [destroy .m1 .m2] [catch {unset foo1}] [catch {unset foo2}] } {0 .m2 .m1 .m2 {} 0 0} test macWinMenu-1.3 {PreprocessMenu} {macOrPc nonUnixUserInteraction} { catch {destroy .l1} catch {destroy .m1} catch {destroy .m2} catch {destroy .m3} label .l1 -text "Preparing menus..." pack .l1 update idletasks menu .m1 -postcommand ".l1 configure -text \"Destroying .m1...\"; update idletasks; destroy .m1" menu .m2 -postcommand ".l1 configure -text \"Destroying .m2...\"; update idletasks; destroy .m2" menu .m3 -postcommand ".l1 configure -text \"Destroying .m3...\"; update idletasks; destroy .m3" .m1 add cascade -menu .m2 -label "macWinMenu-1.3: Hit Escape (.m2)" .m1 add cascade -menu .m3 -label ".m3" update idletasks list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3] } {0 {} {}} test macWinMenu-1.4 {PreprocessMenu} {macOrPc} { catch {destroy .l1} catch {destroy .m1} catch {destroy .m2} catch {destroy .m3} catch {destroy .m4} label .l1 -text "Preparing menus..." pack .l1 update idletasks menu .m1 -postcommand ".l1 configure -text \"Destroying .m1...\"; update idletasks; destroy .m1" .m1 add cascade -menu .m2 -label "macWinMenu-1.4: Hit Escape (.m2)" .m1 add cascade -menu .m3 -label ".m3" menu .m2 -postcommand ".l1 configure -text \"Destroying .m2...\"; update idletasks; destroy .m2" .m2 add cascade -menu .m4 -label ".m4" menu .m3 -postcommand ".l1 configure -text \"Destroying .m3...\"; update idletasks; destroy .m3" menu .m4 -postcommand ".l1 configure -text \"Destroying .m4...\"; update idletasks; destroy .m4" update idletasks list [catch {.m1 post 40 40} msg] $msg [destroy .l1 .m2 .m3 .m4] } {0 {} {}} test macWinMenu-1.5 {PreprocessMenu} {macOrPc} { catch {destroy .m1} catch {destroy .m2} menu .m1 .m1 add cascade -menu .m2 -label "You may need to hit Escape to get this menu to go away." menu .m2 -postcommand glorp list [catch {.m1 post 40 40} msg] $msg [destroy .m1 .m2] } {1 {invalid command name "glorp"} {}} test macWinMenu-2.1 {TkPreprocessMenu} {macOrPc nonUnixUserInteraction} { catch {destroy .m1} set foo test menu .m1 -postcommand "set foo 2.1" .m1 add command -label "macWinMenu-2.1: Hit Escape" list [catch {.m1 post 40 40} msg] $msg [set foo] [destroy .m1] [unset foo] } {0 2.1 2.1 {} {}} # cleanup deleteWindows ::tcltest::cleanupTests return