URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [insight/] [tk/] [tests/] [menu.test] - Rev 1782
Go to most recent revision | Compare with Previous | Blame | View Log
# This file is a Tcl script to test menus in Tk. It is# organized in the standard fashion for Tcl tests.## 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.## RCS: @(#) $Id: menu.test,v 1.1.1.1 2002-01-16 10:25:59 markom Exp $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}if {$tcl_platform(platform) == "windows" && ![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}proc deleteWindows {} {foreach i [winfo children .] {catch [destroy $i]}}deleteWindowswm geometry . {}raise .test menu-1.1 {Tk_MenuCmd procedure} {list [catch menu msg] $msg} {1 {wrong # args: should be "menu pathName ?options?"}}test menu-1.2 {Tk_MenuCmd procedure} {list [catch "menu bogus" msg] $msg} {1 {bad window path name "bogus"}}test menu-1.3 {Tk_MenuCmd procedure} {list [catch "menu .m1 foo" msg] $msg} {1 {unknown option "foo"}}test menu-1.4 {Tk_MenuCmd procedure} {catch {destroy .m1}list [catch {menu .m1} msg] $msg [destroy .m1]} {0 .m1 {}}test menu-1.5 {Tk_MenuCmd - creating menubar} {catch {destroy .m1}menu .m1.m1 add cascade -label Test -menu ""list [. configure -menu .m1] [. configure -menu ""] [destroy .m1]} {{} {} {}}test menu-1.6 {Tk_MenuCmd procedure menu ref no cascade} {catch {destroy .t2}catch {destroy .m1}toplevel .t2 -menu .m1wm geometry .t2 +0+0list [catch {menu .m1} msg] $msg [destroy .m1 .t2]} {0 .m1 {}}test menu-1.7 {Tk_MenuCmd procedure one clone cascade} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}toplevel .t2 -menu .m1wm geometry .t2 +0+0menu .m1.m1 add cascade -menu .m2list [catch {menu .m2} msg] $msg [destroy .t2 .m1 .m2]} {0 .m2 {}}test menu-1.8 {Tk_MenuCmd procedure two clone cascades} {catch {destroy .m1}catch {destroy .t2}catch {destroy .t3}catch {destroy .m2}menu .m1.m1 add cascade -menu .m2toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {menu .m2} msg] $msg [destroy .t2 .t3 .m1 .m2]} {0 .m2 {}}test menu-1.9 {Tk_MenuCmd procedure two clone cascades different order} {catch {destroy .t2}catch {destroy .m1}catch {destroy .t3}catch {destroy .m2}toplevel .t2 -menu .m1wm geometry .t2 +0+0menu .m1.m1 add cascade -menu .m2toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {menu .m2} msg] $msg [destroy .t2 .t3 .m1 .m2]} {0 .m2 {}}test menu-1.10 {Tk_MenuCmd procedure two clone cascades menus last} {catch {destroy .t2}catch {destroy .t3}catch {destroy .m1}catch {destroy .m2}toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0menu .m1.m1 add cascade -menu .m2list [catch {menu .m2} msg] $msg [destroy .t2 .t3 .m1 .m2]} {0 .m2 {}}test menu-1.11 {Tk_MenuCmd procedure three clones cascades} {catch {destroy .t2}catch {destroy .t3}catch {destroy .t4}catch {destroy .m1}catch {destroy .m2}toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0toplevel .t4 -menu .m1wm geometry .t4 +0+0menu .m1.m1 add cascade -menu .m2list [catch {menu .m2} msg] $msg [destroy .t2 .t3 .t4 .m1 .m2]} {0 .m2 {}}test menu-1.12 {Tk_MenuCmd procedure} {catch {destroy .t2}catch {destroy .m1}toplevel .t2 -menu .m1wm geometry .t2 +0+0list [catch {menu .m1} msg] $msg [destroy .t2 .m1]} {0 .m1 {}}test menu-1.13 {Tk_MenuCmd procedure} {catch {destroy .t2}catch {destroy .t3}catch {destroy .m1}toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {menu .m1} msg] $msg [destroy .t2 .t3 .m1]} {0 .m1 {}}test menu-1.14 {Tk_MenuCmd procedure} {catch {destroy .t2}catch {destroy .t3}catch {destroy .t4}catch {destroy .m1}toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0toplevel .t4 -menu .m1wm geometry .t4 +0+0list [catch {menu .m1} msg] $msg [destroy .t2 .t3 .t4 .m1]} {0 .m1 {}}catch {destroy .m1}menu .m1set i 1foreach test {{-activebackground #012345 #012345 non-existent{unknown color name "non-existent"}}{-activeborderwidth 1.3 1 badValue {bad screen distance "badValue"}}{-activeforeground #ff0000 #ff0000 non-existent{unknown color name "non-existent"}}{-background #ff0000 #ff0000 non-existent{unknown color name "non-existent"}}{-bg #110022 #110022 bogus {unknown color name "bogus"}}{-borderwidth 1.3 1 badValue {bad screen distance "badValue"}}{-cursor arrow arrow badValue {bad cursor spec "badValue"}}{-disabledforeground #00ff00 #00ff00 xyzzy {unknown color name "xyzzy"}}{-fg #110022 #110022 bogus {unknown color name "bogus"}}{-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* {}{font "" doesn't exist}}{-foreground #110022 #110022 bogus {unknown color name "bogus"}}{-postcommand "any old string" "any old string" {} {}}{-relief groove groove 1.5 {bad relief type "1.5": must be flat, groove, raised, ridge, solid, or sunken}}{-selectcolor #110022 #110022 bogus {unknown color name "bogus"}}{-takefocus "any string" "any string" {} {}}{-tearoff 0 0}{-tearoff 1 1}{-tearoffcommand "any old string" "any old string" {} {}}} {set name [lindex $test 0]test menu-2.$i {configuration options} {.m1 configure $name [lindex $test 1]lindex [.m1 configure $name] 4} [lindex $test 2]incr iif {[lindex $test 3] != ""} {test menu-2.$i {configuration options} {list [catch {.m1 configure $name [lindex $test 3]} msg] $msg} [list 1 [lindex $test 4]]}.m1 configure $name [lindex [.m1 configure $name] 3]incr i}destroy .m1# We need to test all of the options with all of the different types of# menu entries. The following code sets up .m1 with 6 items. It then# runs through the big table below it.# index 0 is tearoff, 1 command, 2 cascade, 3 separator, 4 checkbutton,# 5 radiobuttonmenu .m1.m1 add command -label "command"menu .m2.m2 add command -label "test".m1 add cascade -label "cascade" -menu .m2.m1 add separator.m1 add checkbutton -label "checkbutton" -variable check -onvalue on -offvalue off.m1 add radiobutton -label "radiobutton" -variable radioimage create photo image1 -file [file join $tk_library demos images earth.gif]foreach test {{-activebackground{{#012345{{unknown option "-activebackground"} #012345 #012345{unknown option "-activebackground"} #012345 #012345}}{non-existent{{unknown option "-activebackground"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown option "-activebackground"}{unknown color name "non-existent"}{unknown color name "non-existent"}}}}}{-activeforeground{{#ff0000{{unknown option "-activeforeground"}#ff0000 #ff0000 {unknown option "-activeforeground"} #ff0000 #ff0000}}{non-existent{{unknown option "-activeforeground"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown option "-activeforeground"}{unknown color name "non-existent"}{unknown color name "non-existent"}}}}}{-accelerator{{"Ctrl+S"{{unknown option "-accelerator"}"Ctrl+S" "Ctrl+S" {unknown option "-accelerator"}"Ctrl+S" "Ctrl+S"}}}}{-background{{#ff0000{#ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000}}{non-existent{{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown color name "non-existent"}}}}}{-bitmap{{questhead{{unknown option "-bitmap"} questhead questhead{unknown option "-bitmap"} questhead questhead}}{badValue{{unknown option "-bitmap"}{bitmap "badValue" not defined}{bitmap "badValue" not defined}{unknown option "-bitmap"}{bitmap "badValue" not defined}{bitmap "badValue" not defined}}}}}{-columnbreak{{1{{unknown option "-columnbreak"} 1 1 {unknown option "-columnbreak"} 1 1}}}}{-command{{beep{{unknown option "-command"} beep beep{unknown option "-command"} beep beep}}}}{-font{{-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*{{unknown option "-font"}-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*{unknown option "-font"}-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*}}{{kill rock stars}{{unknown option "-font"}{expected integer but got "rock"}{expected integer but got "rock"}{unknown option "-font"}{expected integer but got "rock"}{expected integer but got "rock"}}}}}{-foreground{{#110022{{unknown option "-foreground"} #110022 #110022{unknown option "-foreground"} #110022 #110022}}{non-existent{{unknown option "-foreground"}{unknown color name "non-existent"}{unknown color name "non-existent"}{unknown option "-foreground"}{unknown color name "non-existent"}{unknown color name "non-existent"}}}}}{-image{{image1{{unknown option "-image"} image1 image1{unknown option "-image"} image1 image1}}{bogus{{unknown option "-image"}{image "bogus" doesn't exist}{image "bogus" doesn't exist}{unknown option "-image"}{image "bogus" doesn't exist}{image "bogus" doesn't exist}}}{""{{unknown option "-image"}{}{}{unknown option "-image"}{}{}}}}}{-indicatoron{{1{{unknown option "-indicatoron"}{unknown option "-indicatoron"}{unknown option "-indicatoron"}{unknown option "-indicatoron"} 1 1}}}}{-label{{test{{unknown option "-label"} test test{unknown option "-label"} test test}}}}{-menu{{.m2{{unknown option "-menu"}{unknown option "-menu"} .m2{unknown option "-menu"}{unknown option "-menu"}{unknown option "-menu"}}}}}{-offvalue{{off{{unknown option "-offvalue"}{unknown option "-offvalue"}{unknown option "-offvalue"}{unknown option "-offvalue"}off{unknown option "-offvalue"}}}}}{-onvalue{{on{{unknown option "-onvalue"}{unknown option "-onvalue"}{unknown option "-onvalue"}{unknown option "-onvalue"}on{unknown option "-onvalue"}}}}}{-selectcolor{{#110022{{unknown option "-selectcolor"}{unknown option "-selectcolor"}{unknown option "-selectcolor"}{unknown option "-selectcolor"}#110022#110022}}{non-existent{{unknown option "-selectcolor"}{unknown option "-selectcolor"}{unknown option "-selectcolor"}{unknown option "-selectcolor"}{unknown color name "non-existent"}{unknown color name "non-existent"}}}}}{-selectimage{{image1{{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"} image1 image1}}{bogus{{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"}{image "bogus" doesn't exist}{image "bogus" doesn't exist}}}{""{{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"}{unknown option "-selectimage"}{}{}}}}}{-state{{normal{normal normal normal{unknown option "-state"} normal normal}}}}{-value{{"any string"{{unknown option "-value"}{unknown option "-value"}{unknown option "-value"}{unknown option "-value"}{unknown option "-value"} "any string"}}}}{-variable{{"any string"{{unknown option "-variable"}{unknown option "-variable"}{unknown option "-variable"}{unknown option "-variable"}"any string""any string"}}}}{-underline{{0{{unknown option "-underline"} 0 0{unknown option "-underline"} 0 0}}{3p{{unknown option "-underline"}{expected integer but got "3p"}{expected integer but got "3p"}{unknown option "-underline"}{expected integer but got "3p"}{expected integer but got "3p"}}}}}} {set name [lindex $test 0]foreach attempt [lindex $test 1] {set value [lindex $attempt 0]set options [lindex $attempt 1]foreach item {0 1 2 3 4 5} {catch {unset msg}test menu-2.$i [list entry configuration options $name $item $value] {set result [catch {.m1 entryconfigure $item $name $value} msg]if {$result == 1} {set msg} else {lindex [.m1 entryconfigure $item $name] 4}} [lindex $options $item]incr i}}}image delete image1destroy .m1destroy .m2test menu-3.1 {MenuWidgetCmd procedure} {catch {destroy .m1}menu .m1list [catch {.m1} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 option ?arg arg ...?"} {}}test menu-3.2 {MenuWidgetCmd, Tcl_Preserve and Tcl_Release} {menuInteractive} {catch {destroy .m1}menu .m1 -postcommand "destroy .m1".m1 add command -label "menu-3.2: Hit Escape"list [catch {.m1 post 40 40} msg] $msg} {0 {}}test menu-3.3 {MenuWidgetCmd procedure, "activate" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 activate} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 activate index"} {}}test menu-3.4 {MenuWidgetCmd procedure, "activate" option} {catch {destroy .m1}menu .m1list [catch {.m1 activate "foo"} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.5 {MenuWidgetCmd procedure, "activate" option} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add separatorlist [catch {.m1 activate 2} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.6 {MenuWidgetCmd procedure, "activate" option} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 entryconfigure 1 -state disabledlist [catch {.m1 activate 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.7 {MenuWidgetCmd procedure, "activate" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 activate 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.8 {MenuWidgetCmd procedure, "add" option} {catch {destroy .m1}menu .m1list [catch {.m1 add} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 add type ?options?"} {}}test menu-3.9 {MenuWidgetCmd procedure, "add" option} {catch {destroy .m1}menu .m1list [catch {.m1 add foo} msg] $msg [destroy .m1]} {1 {bad menu entry type "foo": must be cascade, checkbutton, command, radiobutton, or separator} {}}test menu-3.10 {MenuWidgetCmd procedure, "add" option} {catch {destroy .m1}menu .m1list [catch {.m1 add separator} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.11 {MenuWidgetCmd procedure, "cget" option} {catch {destroy .m1}menu .m1list [catch {.m1 cget} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 cget option"} {}}test menu-3.12 {MenuWidgetCmd procedure, "cget" option} {catch {destroy .m1}menu .m1list [catch {.m1 cget -gorp} msg] $msg [destroy .m1]} {1 {unknown option "-gorp"} {}}test menu-3.13 {MenuWidgetCmd procedure, "cget" option} {catch {destroy .m1}menu .m1.m1 configure -postcommand "Some string"list [catch {.m1 cget -postcommand} msg] $msg [destroy .m1]} {0 {Some string} {}}test menu-3.14 {MenuWidgetCmd procedure, "clone" option} {catch {destroy .m1}menu .m1list [catch {.m1 clone} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 clone newMenuName ?menuType?"} {}}test menu-3.15 {MenuWidgetCmd procedure, "clone" option} {catch {destroy .m1}menu .m1list [catch {.m1 clone a b c d} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 clone newMenuName ?menuType?"} {}}test menu-3.16 {MenuWidgetCmd procedure, "clone" option} {catch {destroy .m1}menu .m1list [catch {.m1 clone .m1.clone1} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.17 {MenuWidgetCmd procedure, "clone" option} {catch {destroy .m1}menu .m1list [catch {.m1 clone .m1.clone1 tearoff} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.18 {MenuWidgetCmd procedure, "configure" option} {catch {destroy .m1}menu .m1list [catch {llength [.m1 configure]} msg] $msg [destroy .m1]} {0 20 {}}test menu-3.19 {MenuWidgetCmd procedure, "configure" option} {catch {destroy .m1}menu .m1list [catch {.m1 configure -gorp} msg] $msg [destroy .m1]} {1 {unknown option "-gorp"} {}}test menu-3.20 {MenuWidgetCmd procedure, "configure" option} {catch {destroy .m1}menu .m1list [catch {.m1 configure -postcommand "A random String"} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.21 {MenuWidgetCmd procedure, "configure" option} {catch {destroy .m1}menu .m1.m1 configure -postcommand "Another string"list [catch {lindex [.m1 configure -postcommand] 4} msg] $msg [destroy .m1]} {0 {Another string} {}}test menu-3.22 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1list [catch {.m1 delete} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 delete first ?last?"} {}}test menu-3.23 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1list [catch {.m1 delete foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.24 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1list [catch {.m1 delete 0 "foo"} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.25 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1list [catch {.m1 delete 0} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.26 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1.m1 add command -label "foo"list [catch {.m1 delete 1 0} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.27 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1.m1 add command -label "1".m1 add command -label "2".m1 add command -label "3"list [catch {.m1 delete 1 3} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.28 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1.m1 add command -label "1".m1 add command -label "2".m1 add command -label "3".m1 activate 2list [catch {.m1 delete 1 3} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.29 {MenuWidgetCmd procedure, "delete" option} {catch {destroy .m1}menu .m1.m1 add command -label "1".m1 add command -label "2".m1 add command -label "3".m1 activate 3list [catch {.m1 delete 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.30 {MenuWidgetCmd procedure, "entrycget" option} {catch {destroy .m1}menu .m1list [catch {.m1 entrycget} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 entrycget index option"} {}}test menu-3.31 {MenuWidgetCmd procedure, "entrycget" option} {catch {destroy .m1}menu .m1list [catch {.m1 entrycget index option foo} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 entrycget index option"} {}}test menu-3.32 {MenuWidgetCmd procedure, "entrycget" option} {catch {destroy .m1}menu .m1list [catch {.m1 entrycget foo -label} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.33 {MenuWidgetCmd procedure, "entrycget" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 entrycget 1 -label} msg] $msg [destroy .m1]} {0 test {}}test menu-3.34 {MenuWidgetCmd procedure, "entryconfigure" option} {catch {destroy .m1}menu .m1list [catch {.m1 entryconfigure} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 entryconfigure index ?option value ...?"} {}}test menu-3.35 {MenuWidgetCmd procedure, "entryconfigure" option} {catch {destroy .m1}menu .m1list [catch {.m1 entryconfigure foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.36 {MenuWidgetCmd procedure, "entryconfigure" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {llength [.m1 entryconfigure 1]} msg] $msg [destroy .m1]} {0 14 {}}test menu-3.37 {MenuWidgetCmd procedure, "entryconfigure" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {lindex [.m1 entryconfigure 1 -label] 4} msg] $msg [destroy .m1]} {0 test {}}test menu-3.38 {MenuWidgetCmd procedure, "entryconfigure" option} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 entryconfigure 1 -label "changed"list [catch {lindex [.m1 entryconfigure 1 -label] 4} msg] $msg [destroy .m1]} {0 changed {}}test menu-3.39 {MenuWidgetCmd procedure, "index" option} {catch {destroy .m1}menu .m1list [catch {.m1 index} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 index string"} {}}test menu-3.40 {MenuWidgetCmd procedure, "index" option} {catch {destroy .m1}menu .m1list [catch {.m1 index foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.41 {MenuWidgetCmd procedure, "index" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 index "test"} msg] $msg [destroy .m1]} {0 1 {}}test menu-3.42 {MenuWidgetCmd procedure, "insert" option} {catch {destroy .m1}menu .m1list [catch {.m1 insert} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 insert index type ?options?"} {}}test menu-3.43 {MenuWidgetCmd procedure, "insert" option} {catch {destroy .m1}menu .m1.m1 insert 1 command -label "test"list [catch {.m1 entrycget 1 -label} msg] $msg [destroy .m1]} {0 test {}}test menu-3.44 {MenuWidgetCmd procedure, "invoke" option} {catch {destroy .m1}menu .m1list [catch {.m1 invoke} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 invoke index"} {}}test menu-3.45 {MenuWidgetCmd procedure, "invoke" option} {catch {destroy .m1}menu .m1list [catch {.m1 invoke foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.46 {MenuWidgetCmd procedure, "invoke" option} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add command -label "set foo" -command "set foo hello"list [catch {.m1 invoke 1} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 hello 0 hello 0 {} {}}test menu-3.47 {MenuWidgetCmd procedure, "post" option} {catch {destroy .m1}menu .m1.m1 add command -label "On Windows, hit Escape to get this menu to go away"list [catch {.m1 post} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 post x y"} {}}test menu-3.48 {MenuWidgetCmd procedure, "post" option} {catch {destroy .m1}menu .m1list [catch {.m1 post foo 40} msg] $msg [destroy .m1]} {1 {expected integer but got "foo"} {}}test menu-3.49 {MenuWidgetCmd procedure, "post" option} {catch {destroy .m1}menu .m1list [catch {.m1 post 40 bar} msg] $msg [destroy .m1]} {1 {expected integer but got "bar"} {}}test menu-3.50 {MenuWidgetCmd procedure, "post" option} {menuInteractive} {catch {destroy .m1}menu .m1.m1 add command -label "menu-3.53: hit Escape" -command "puts hello"list [catch {.m1 post 40 40} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.51 {MenuWidgetCmd procedure, "postcascade" option} {catch {destroy .m1}menu .m1list [catch {.m1 postcascade} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 postcascade index"} {}}test menu-3.52 {MenuWidgetCmd procedure, "postcascade" option} {catch {destroy .m1}menu .m1list [catch {.m1 postcascade foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.53 {MenuWidgetCmd procedure, "postcascade" option} {menuInteractive} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label "menu-3.56 - hit Escape"menu .m2.m1 post 40 40.m1 add cascade -menu .m2list [catch {.m1 postcascade 1} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-3.54 {MenuWidgetCmd procedure, "postcascade" option} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2 -label "menu-3.57 - hit Escape".m1 postcascade 1list [catch {.m1 postcascade none} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-3.55 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1list [catch {.m1 type} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 type index"} {}}test menu-3.56 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1list [catch {.m1 type foo} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-3.57 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 type 1} msg] $msg [destroy .m1]} {0 command {}}test menu-3.58 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1.m1 add separatorlist [catch {.m1 type 1} msg] $msg [destroy .m1]} {0 separator {}}test menu-3.59 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1.m1 add checkbutton -label "test"list [catch {.m1 type 1} msg] $msg [destroy .m1]} {0 checkbutton {}}test menu-3.60 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1.m1 add radiobutton -label "test"list [catch {.m1 type 1} msg] $msg [destroy .m1]} {0 radiobutton {}}test menu-3.61 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1.m1 add cascade -label "test"list [catch {.m1 type 1} msg] $msg [destroy .m1]} {0 cascade {}}test menu-3.62 {MenuWidgetCmd procedure, "type" option} {catch {destroy .m1}menu .m1list [catch {.m1 type 0} msg] $msg [destroy .m1]} {0 tearoff {}}test menu-3.63 {MenuWidgetCmd procedure, "unpost" option} {catch {destroy .m1}menu .m1list [catch {.m1 unpost foo} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 unpost"} {}}test menu-3.64 {MenuWidgetCmd procedure, "unpost" option} {menuInteractive} {catch {destroy .m1}menu .m1.m1 add command -label "menu-3.68 - hit Escape".m1 post 40 40list [catch {.m1 unpost} msg] $msg [destroy .m1]} {0 {} {}}test menu-3.65 {MenuWidgetCmd procedure, "yposition" option} {catch {destroy .m1}menu .m1list [catch {.m1 yposition} msg] $msg [destroy .m1]} {1 {wrong # args: should be ".m1 yposition index"} {}}test menu-3.66 {MenuWidgetCmd procedure, "yposition" option} {catch {destroy .m1}menu .m1list [catch {.m1 yposition 1}] [destroy .m1]} {0 {}}test menu-3.67 {MenuWidgetCmd procedure, bad option} {catch {destroy .m1}menu .m1list [catch {.m1 foo} msg] $msg [destroy .m1]} {1 {bad option "foo": must be activate, add, cget, clone, configure, delete, entrycget, entryconfigure, index, insert, invoke, post, postcascade, type, unpost, or yposition} {}}test menu-4.1 {TkInvokeMenu} {catch {destroy .m1}menu .m1list [catch {.m1 invoke 0} msg] [destroy .m1]} {0 {}}test menu-4.2 {TkInvokeMenu} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add checkbutton -label "test" -variable foo -onvalue on -offvalue offlist [catch {.m1 invoke 1} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 {} 0 on 0 {} {}}test menu-4.3 {TkInvokeMenu} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add checkbutton -label "test" -variable foo -onvalue on -offvalue off.m1 invoke 1list [catch {.m1 invoke 1} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 {} 0 off 0 {} {}}test menu-4.4 {TkInvokeMenu} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add radiobutton -label "1" -variable foo -value one.m1 add radiobutton -label "2" -variable foo -value two.m1 add radiobutton -label "3" -variable foo -value threelist [catch {.m1 invoke 1} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 {} 0 one 0 {} {}}test menu-4.5 {TkInvokeMenu} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add radiobutton -label "1" -variable foo -value one.m1 add radiobutton -label "2" -variable foo -value two.m1 add radiobutton -label "3" -variable foo -value threelist [catch {.m1 invoke 2} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 {} 0 two 0 {} {}}test menu-4.6 {TkInvokeMenu} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add radiobutton -label "1" -variable foo -value one.m1 add radiobutton -label "2" -variable foo -value two.m1 add radiobutton -label "3" -variable foo -value threelist [catch {.m1 invoke 3} msg] $msg [catch {set foo} msg2] $msg2 [catch {unset foo} msg3] $msg3 [destroy .m1]} {0 {} 0 three 0 {} {}}test menu-4.7 {TkInvokeMenu} {catch {destroy .m1}catch {unset menu_test}menu .m1.m1 add command -label "test" -command "set menu_test menu-4.8"list [catch {.m1 invoke 1} msg] $msg [catch {set menu_test} msg2] $msg2 [catch {unset menu_test} msg3] $msg3 [destroy .m1]} {0 menu-4.8 0 menu-4.8 0 {} {}}test menu-4.8 {TkInvokeMenu} {catch {destroy .m1}menu .m1.m1 add cascade -label "test" -menu .m1.m2list [catch {.m1 invoke 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-4.9 {TkInvokeMenu} {catch {destroy .m1}menu .m1.m1 add command -label "test" -command ".m1 delete 1"list [catch {.m1 invoke 1} msg] $msg [catch {.m1 type "test"} msg2] $msg2 [destroy .m1]} {0 {} 1 {bad menu entry index "test"} {}}test menu-5.1 {DestroyMenuInstance} {catch {destroy .m1}menu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-5.2 {DestroyMenuInstance - cascade menu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add cascade -menu .m2menu .m2list [catch {destroy .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-5.3 {DestroyMenuInstance - multiple cascade parents} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 add cascade -menu .m3menu .m2.m2 add cascade -menu .m3menu .m3list [catch {destroy .m3} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-5.4 {DestroyMenuInstance - multiple cascade parents} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1.m1 add cascade -menu .m4menu .m2.m2 add cascade -menu .m4menu .m3.m3 add cascade -menu .m4menu .m4list [catch {destroy .m4} msg] $msg [destroy .m1 .m2 .m3]} {0 {} {}}test menu-5.5 {DestroyMenuInstance - cascades of cloned menus} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2. configure -menu .m1list [catch {destroy .m2} msg] $msg [.m1 entrycget 1 -menu] [. configure -menu ""] [destroy .m1]} {0 {} .m2 {} {}}test menu-5.6 {DestroyMenuInstance - cascades of cloned menus} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}menu .m1.m1 add cascade -menu .m2menu .m2. configure -menu .m1toplevel .t2wm geometry .t2 +0+0.t2 configure -menu .m1list [catch {destroy .m2} msg] $msg [. configure -menu ""] [destroy .t2 .m1]} {0 {} {} {}}test menu-5.7 {DestroyMenuInstance - basic clones} {catch {destroy .m1}menu .m1set tearoff [tkTearOffMenu .m1]list [catch {destroy $tearoff} msg] $msg [destroy .m1]} {0 {} {}}test menu-5.8 {DestroyMenuInstance - multiple clones} {catch {destroy .m1}menu .m1set tearoff1 [tkTearOffMenu .m1]set tearoff2 [tkTearOffMenu .m1]list [catch {destroy $tearoff1} msg] $msg [destroy .m1]} {0 {} {}}test menu-5.9 {DestroyMenuInstace - master menu} {catch {destroy .m1}menu .m1tkTearOffMenu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-5.10 {DestroyMenuInstance - freeing entries} {catch {destroy .m1}menu .m1.m1 add command -label "foo"list [catch {destroy .m1} msg] $msg} {0 {}}test menu-5.11 {DestroyMenuInstace - no entries} {catch {destroy .m1}menu .m1.m1 configure -tearoff 0list [catch {destroy .m1} msg] $msg} {0 {}}test menu-5.12 {DestroyMenuInstance - platform data} {catch {destroy .m1}menu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-5.13 {DestroyMenuInstance - clones when mismatched tearoffs} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2set tearoff [tkTearOffMenu .m1 40 40]list [destroy .m2] [destroy .m1]} {{} {}}test menu-6.1 {TkDestroyMenu} {catch {destroy .m1}menu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-6.2 {TkDestroyMenu - reentrancy} {catch {destroy .m1}catch {destroy .m2}menu .m1bind .m1 <Destroy> {destroy .m1}menu .m2bind .m2 <Destroy> {destroy .m2}list [catch {destroy .m1} msg] $msg [destroy .m2]} {0 {} {}}test menu-6.3 {TkDestroyMenu - reentrancy} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1bind .m1 <Destroy> {destroy .m2}.m1 clone .m2.m1 clone .m3list [catch {destroy .m1} msg] $msg [winfo exists .m2]} {0 {} 0}test menu-6.4 {TkDestroyMenu - reentrancy - clones} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2.m1 clone .m1.m3list [catch {destroy .m1} msg] $msg} {0 {}}test menu-6.5 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2destroy .m1winfo exists .m2} {0}test menu-6.6 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2 tearofflist [catch {destroy .m1} msg] $msg} {0 {}}test menu-6.7 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2destroy .m2list [catch {destroy .m1} msg] $msg} {0 {}}test menu-6.8 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m1 clone .m3destroy .m1list [winfo exists .m2] [winfo exists .m3]} {0 0}test menu-6.9 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m1 clone .m3list [catch {destroy .m2} msg] $msg [catch {destroy .m3} msg2] $msg2 [catch {destroy .m1} msg3] $msg3} {0 {} 0 {} 0 {}}test menu-6.10 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m1 clone .m3list [catch {destroy .m3} msg] $msg [catch {destroy .m1} msg2] $msg2} {0 {} 0 {}}test menu-6.11 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1.m1 clone .m2.m1 clone .m3.m1 clone .m4list [catch {destroy .m2} msg1] $msg1 [catch {destroy .m1} msg2] $msg2} {0 {} 0 {}}test menu-6.12 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1.m1 clone .m2.m1 clone .m3.m1 clone .m4list [catch {destroy .m3} msg1] $msg1 [catch {destroy .m1} msg2] $msg2} {0 {} 0 {}}test menu-6.13 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1.m1 clone .m2.m1 clone .m3.m1 clone .m4list [catch {destroy .m4} msg1] $msg1 [catch {destroy .m1} msg2] $msg2} {0 {} 0 {}}test menu-6.14 {TkDestroyMenu} {catch {destroy .m1}menu .m1. configure -menu .m1list [catch {destroy .m1} msg] $msg [. configure -menu ""]} {0 {} {}}test menu-6.15 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .t2}menu .m1toplevel .t2wm geometry .t2 +0+0. configure -menu .m1.t2 configure -menu .m1list [catch {destroy .m1} msg] $msg [destroy .t2] [. configure -menu ""]} {0 {} {} {}}test menu-6.16 {TkDestroyMenu} {catch {destroy .m1}catch {destroy .t2}catch {destroy .t3}menu .m1toplevel .t2wm geometry .t2 +0+0toplevel .t3wm geometry .t3 +0+0. configure -menu .m1.t2 configure -menu .m1.t3 configure -menu .m1list [catch {destroy .m1} msg] $msg [destroy .t2] [destroy .t3] [. configure -menu ""]} {0 {} {} {} {}}test menu-7.1 {UnhookCascadeEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {destroy .m1} msg] $msg} {0 {}}test menu-7.2 {UnhookCascadeEntry} {catch {destroy .m1}menu .m1.m1 add cascade -menu .m2list [catch {destroy .m1} msg] $msg} {0 {}}test menu-7.3 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m2 add cascade -menu .cascade.m1 add cascade -menu .cascadelist [catch {destroy .m1} msg] $msg [destroy .m2]} {0 {} {}}test menu-7.4 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .cascade.m2 add cascade -menu .cascadelist [catch {destroy .m1} msg] $msg [destroy .m2]} {0 {} {}}test menu-7.5 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1menu .m2menu .m3.m1 add cascade -menu .cascade.m2 add cascade -menu .cascade.m3 add cascade -menu .cascadelist [catch {destroy .m1} msg] $msg [destroy .m2 .m3]} {0 {} {}}test menu-7.6 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1menu .m2menu .m3.m1 add cascade -menu .cascade.m2 add cascade -menu .cascade.m3 add cascade -menu .cascadelist [catch {destroy .m2} msg] $msg [destroy .m1 .m3]} {0 {} {}}test menu-7.7 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1menu .m2menu .m3.m1 add cascade -menu .cascade.m2 add cascade -menu .cascade.m3 add cascade -menu .cascadelist [catch {destroy .m3} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-7.8 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2list [catch {destroy .m1} msg] $msg [destroy .m2]} {0 {} {}}test menu-7.9 {UnhookCascadeEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2destroy .m1list [catch {destroy .m2} msg] $msg} {0 {}}test menu-8.1 {DestroyMenuEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2.m1 add cascade -menu .m2list [catch {.m1 delete 1} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-8.2 {DestroyMenuEntry} {catch {image delete image1a}catch {destroy .m1}image create photo image1a -file [file join $tk_library demos images earth.gif]menu .m1.m1 add command -image image1alist [catch {.m1 delete 1} msg] $msg [destroy .m1] [image delete image1a]} {0 {} {} {}}test menu-8.3 {DestroyMenuEntry} {catch {eval image delete [image names]}catch {destroy .m1}image create test image1image create test image2menu .m1.m1 add checkbutton -image image1 -selectimage image2.m1 invoke 1list [catch {.m1 delete 1} msg] $msg [destroy .m1] [eval image delete [image names]]} {0 {} {} {}}test menu-8.4 {DestroyMenuEntry} {catch {destroy .m1}menu .m1.m1 add checkbutton -variable foolist [catch {.m1 delete 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-8.5 {DestroyMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 delete 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-8.6 {DestroyMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "one".m1 add command -label "two"list [catch {.m1 delete 1} msg] $msg [.m1 entrycget 1 -label] [destroy .m1]} {0 {} two {}}test menu-8.7 {DestroyMenuEntry} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label "one".m1 clone .m2 tearofflist [catch {.m2 delete 0} msg] $msg [destroy .m1]} {0 {} {}}# test menu-9 - Can only change when fonts change on system, which cannot# be done from tcl.test menu-9.1 {ConfigureMenu} {catch {destroy .m1}menu .m1list [catch {.m1 configure -postcommand "beep"} msg] $msg [.m1 cget -postcommand] [destroy .m1]} {0 {} beep {}}test menu-9.2 {ConfigureMenu} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 configure -tearoff 0} msg] $msg [.m1 entrycget 1 -label] [destroy .m1]} {0 {} test {}}test menu-9.3 {ConfigureMenu} {catch {destroy .m1}menu .m1list [catch {.m1 configure -postcommand "beep"} msg] $msg [.m1 cget -postcommand] [destroy .m1]} {0 {} beep {}}test menu-9.4 {ConfigureMenu} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 configure -fg red} msg] $msg [destroy .m1]} {0 {} {}}test menu-9.5 {ConfigureMenu} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "two"list [catch {.m1 configure -fg red} msg] $msg [destroy .m1]} {0 {} {}}test menu-9.6 {ConfigureMenu} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "two".m1 add command -label "three"list [catch {.m1 configure -fg red} msg] $msg [destroy .m1]} {0 {} {}}test menu-9.7 {ConfigureMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2 tearofflist [catch {.m1 configure -fg red} msg] $msg [.m2 cget -fg] [destroy .m1]} {0 {} red {}}test menu-9.8 {ConfigureMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2 tearofflist [catch {.m2 configure -fg red} msg] $msg [.m1 cget -fg] [destroy .m1]} {0 {} red {}}test menu-9.9 {ConfigureMenu} {catch {destroy .m1}menu .m1list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-10.1 {ConfigureMenuEntry} {catch {destroy .m1}catch {unset foo}menu .m1.m1 add checkbutton -variable foo -onvalue on -offvalue off -label "Nonsense"list [catch {.m1 entryconfigure 1 -variable bar} msg] $msg [.m1 entrycget 1 -variable] [destroy .m1]} {0 {} bar {}}test menu-10.2 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 entryconfigure 1 -label ""} msg] $msg [.m1 entrycget 1 -label] [destroy .m1]} {0 {} {} {}}test menu-10.3 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add commandlist [catch {.m1 entryconfigure 1 -label "test"} cmd] $cmd [.m1 entrycget 1 -label] [destroy .m1]} {0 {} test {}}test menu-10.4 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add commandlist [catch {.m1 entryconfigure 1 -accel "S"} msg] $msg [.m1 entrycget 1 -accel] [destroy .m1]} {0 {} S {}}test menu-10.5 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add commandlist [catch {.m1 entryconfigure 1 -label "test"} msg] $msg [.m1 entrycget 1 -label] [destroy .m1]} {0 {} test {}}test menu-10.6 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add commandlist [catch {.m1 entryconfigure 1 -label "test"} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.7 {ConfigureMenuEntry} {catch {destroy .m1}catch {destroy .m2}menu .m2menu .m1.m1 add cascadelist [catch {.m1 entryconfigure 1 -label "test" -menu .m2} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-10.8 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add cascadelist [catch {.m1 entryconfigure 1 -label "test" -menu .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.9 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add cascade -menu .m3list [catch {.m1 entryconfigure 1 -label "test" -menu .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.10 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add cascadelist [catch {.m1 entryconfigure 1 -label "test" -menu .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.11 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add cascade -menu .m2list [catch {.m1 entryconfigure 1 -label "test" -menu .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.12 {ConfigureMenuEntry} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}catch {destroy .m5}menu .m1menu .m2.m2 add cascade -menu .m1menu .m3.m3 add cascade -menu .m1menu .m4.m4 add cascade -menu .m1menu .m5.m5 add cascadelist [catch {.m5 entryconfigure 1 -label "test" -menu .m1} msg] $msg [destroy .m1 .m2 .m3 .m4 .m5]} {0 {} {}}test menu-10.13 {ConfigureMenuEntry} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1menu .m2.m2 add cascade -menu .m1menu .m3.m3 add cascade -menu .m1menu .m4.m4 add cascade -menu .m1list [catch {.m3 entryconfigure 1 -label "test" -menu .m1} msg] $msg [destroy .m1 .m2 .m3 .m4]} {0 {} {}}test menu-10.14 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add checkbuttonlist [catch {.m1 entryconfigure 1 -variable "test"} msg] $msg [.m1 entrycget 1 -variable] [destroy .m1]} {0 {} test {}}test menu-10.15 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1list [catch {.m1 add checkbutton -label "test"} msg] $msg [.m1 entrycget 1 -variable] [destroy .m1]} {0 {} test {}}test menu-10.16 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1list [catch {.m1 add radiobutton -label "test"} msg] $msg [destroy .m1]} {0 {} {}}test menu-10.17 {ConfigureMenuEntry} {catch {destroy .m1}menu .m1.m1 add checkbuttonlist [catch {.m1 entryconfigure 1 -onvalue "test"} msg] $msg [.m1 entrycget 1 -onvalue] [destroy .m1]} {0 {} test {}}test menu-10.18 {ConfigureMenuEntry} {catch {destroy .m1}catch {image delete image1}menu .m1.m1 add commandimage create test image1list [catch {.m1 entryconfigure 1 -image image1} msg] $msg [destroy .m1] [image delete image1]} {0 {} {} {}}test menu-10.19 {ConfigureMenuEntry} {catch {destroy .m1}catch {image delete image1}catch {image delete image2}image create test image1image create photo image2 -file [file join $tk_library demos images earth.gif]menu .m1.m1 add command -image image1list [catch {.m1 entryconfigure 1 -image image2} msg] $msg [destroy .m1] [image delete image1] [image delete image2]} {0 {} {} {} {}}test menu-10.20 {ConfigureMenuEntry} {catch {destroy .m1}catch {image delete image1}catch {image delete image2}image create photo image1 -file [file join $tk_library demos images earth.gif]image create test image2menu .m1.m1 add checkbutton -image image1list [catch {.m1 entryconfigure 1 -selectimage image2} msg] $msg [destroy .m1] [image delete image1] [image delete image2]} {0 {} {} {} {}}test menu-10.21 {ConfigureMenuEntry} {catch {destroy .m1}catch {image delete image1}catch {image delete image2}catch {image delete image3}image create photo image1 -file [file join $tk_library demos images earth.gif]image create test image2image create test image3menu .m1.m1 add checkbutton -image image1 -selectimage image2list [catch {.m1 entryconfigure 1 -selectimage image3} msg] $msg [destroy .m1] [image delete image1] [image delete image2] [image delete image3]} {0 {} {} {} {} {}}test menu-11.1 {ConfigureMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m2 configure -tearoff 0.m1 clone .m3.m1 add command -label "test".m1 add command -label "test2"list [list [catch {.m1 entryconfigure 1 -gork "foo"} msg] $msg] [destroy .m1]} {{1 {unknown option "-gork"}} {}}test menu-11.2 {ConfigureMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}catch {destroy .m4}menu .m1.m1 clone .m2menu .m3.m1 add cascade -menu .m3menu .m4list [catch {.m1 entryconfigure 1 -menu .m4} msg] $msg [destroy .m1] [destroy .m3] [destroy .m4]} {0 {} {} {} {}}test menu-11.3 {ConfigureMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 clone .m2.m1 add cascade -label dummylist [catch {.m1 entryconfigure dummy -menu .m3} msg] $msg [destroy .m1]} {0 {} {}}test menu-12.1 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "active".m1 add command -label "test2".m1 add command -label "test3".m1 activate 2list [catch {.m1 entrycget active -label} msg] $msg [destroy .m1]} {0 test2 {}}test menu-12.2 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "last".m1 add command -label "test2".m1 add command -label "test3".m1 activate 2list [catch {.m1 entrycget last -label} msg] $msg [destroy .m1]} {0 test3 {}}test menu-12.3 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "last".m1 add command -label "test2".m1 add command -label "test3".m1 activate 2list [catch {.m1 entrycget end -label} msg] $msg [destroy .m1]} {0 test3 {}}test menu-12.4 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 insert last command -label "test2"} msg] $msg [.m1 entrycget last -label] [destroy .m1]} {0 {} test2 {}}test menu-12.5 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 insert end command -label "test2"} msg] $msg [.m1 entrycget end -label] [destroy .m1]} {0 {} test2 {}}test menu-12.6 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "active".m1 add command -label "test2".m1 add command -label "test3".m1 activate 2list [catch {.m1 entrycget none -label} msg] $msg [destroy .m1]} {0 {} {}}#test menu-13.7 - Need to add @test here.test menu-12.7 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "active".m1 add command -label "test2".m1 add command -label "test3"list [catch {.m1 entrycget 1 -label} msg] $msg [destroy .m1]} {0 active {}}test menu-12.8 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "active"list [catch {.m1 entrycget -1 -label} msg] $msg [destroy .m1]} {1 {bad menu entry index "-1"} {}}test menu-12.9 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "test2"list [catch {.m1 entrycget 999 -label} msg] $msg [destroy .m1]} {0 test2 {}}test menu-12.10 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 insert 999 command -label "test"list [catch {.m1 entrycget 1 -label} msg] $msg [destroy .m1]} {0 test {}}test menu-12.11 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "1test"list [catch {.m1 entrycget 1test -label} msg] $msg [destroy .m1]} {0 1test {}}test menu-12.12 {TkGetMenuIndex} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "test2" -command "beep".m1 add command -label "test3"list [catch {.m1 entrycget test2 -command} msg] $msg [destroy .m1]} {0 beep {}}test menu-13.1 {MenuCmdDeletedProc} {catch {destroy .m1}menu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-13.2 {MenuCmdDeletedProc} {catch {destroy .m1}menu .m1.m1 clone .m2list [catch {destroy .m1} msg] $msg} {0 {}}test menu-14.1 {MenuNewEntry} {catch {destroy .m1}menu .m1list [catch {.m1 add command -label "test"} msg] $msg [destroy .m1]} {0 {} {}}test menu-14.2 {MenuNewEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "test3"list [catch {.m1 insert 2 command -label "test2"} msg] $msg [destroy .m1]} {0 {} {}}test menu-14.3 {MenuNewEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 add command -label "test2"} msg] $msg [destroy .m1]} {0 {} {}}test menu-14.4 {MenuNewEntry} {catch {destroy .m1}menu .m1list [catch {.m1 add command -label "test"} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.1 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 insert foo command -label "test"} msg] $msg [destroy .m1]} {1 {bad menu entry index "foo"} {}}test menu-15.2 {MenuAddOrInsert} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 insert test command -label "foo"} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.3 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 insert -1 command -label "test"} msg] $msg [destroy .m1]} {1 {bad menu entry index "-1"} {}}test menu-15.4 {MenuAddOrInsert} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 insert 0 command -label "test2"list [catch {.m1 entrycget 1 -label} msg] $msg [destroy .m1]} {0 test2 {}}test menu-15.5 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add cascade} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.6 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add checkbutton} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.7 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add command} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.8 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add radiobutton} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.9 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add separator} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.10 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add blork} msg] $msg [destroy .m1]} {1 {bad menu entry type "blork": must be cascade, checkbutton, command, radiobutton, or separator} {}}test menu-15.11 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add command} msg] $msg [destroy .m1]} {0 {} {}}test menu-15.12 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m2 clone .m3list [catch {.m2 add command -label "test"} msg1] $msg1 [catch {.m1 entrycget 1 -label} msg2] $msg2 [catch {.m3 entrycget 1 -label} msg3] $msg3 [destroy .m1]} {0 {} 0 test 0 test {}}test menu-15.13 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2.m2 clone .m3list [catch {.m3 add command -label "test"} msg1] $msg1 [catch {.m1 entrycget 1 -label} msg2] $msg2 [catch {.m2 entrycget 1 -label} msg3] $msg3 [destroy .m1]} {0 {} 0 test 0 test {}}test menu-15.14 {MenuAddOrInsert} {catch {destroy .m1}menu .m1list [catch {.m1 add command -blork} msg] $msg [destroy .m1]} {1 {unknown option "-blork"} {}}test menu-15.15 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .container}menu .m1.m1 add command -label "File"menu .container. configure -menu .containerlist [catch {.container add cascade -label "File" -menu .m1} msg] $msg [. configure -menu ""] [destroy .container .m1]} {0 {} {} {}}test menu-15.16 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2set tearoff [tkTearOffMenu .m2]list [catch {.m2 add cascade -menu .m1} msg] $msg [$tearoff unpost] [catch {destroy .m1} msg2] $msg2 [catch {destroy .m2} msg3] $msg3} {0 {} {} 0 {} 0 {}}test menu-15.17 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .container}menu .m1menu .container. configure -menu .containerset tearoff [tkTearOffMenu .container]list [catch {.container add cascade -label "File" -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1 .container]} {0 {} {} {}}test menu-15.18 {MenuAddOrInsert} {catch {destroy .m1}catch {destroy .container}menu .m1menu .container.container add cascade -menu .m1. configure -menu .containerlist [catch {.container add cascade -label "File" -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1 .container]} {0 {} {} {}}test menu-15.19 {MenuAddOrInsert - Insert a cascade deep into the tree} {catch {destroy .menubar}menu .menubarmenu .menubar.test -tearoff 0.menubar add cascade -label Test -underline 0 -menu .menubar.testmenu .menubar.test.cascade -tearoff 0.menubar.test.cascade add command -label SubItem -command "puts SubItemSelected". configure -menu .menubarlist [catch {.menubar.test add cascade -label SubMenu \-menu .menubar.test.cascade} msg] \[info commands .\#menubar.\#menubar\#test.\#menubar\#test\#cascade] \[. configure -menu ""] [destroy .menubar]} {0 .#menubar.#menubar#test.#menubar#test#cascade {} {}}test menu-16.1 {MenuVarProc} {catch {destroy .m1}catch {unset foo}menu .m1set foo "hello"list [catch {.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye} msg] $msg [catch {unset foo} msg2] $msg2 [destroy .m1]} {0 {} 0 {} {}}# menu-17.2 - Don't know how to generate the flags in the iftest menu-16.2 {MenuVarProc} {catch {destroy .m1}catch {unset foo}menu .m1list [catch {.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye} msg] $msg [set foo ""] [destroy .m1]} {0 {} {} {}}test menu-16.3 {MenuVarProc} {catch {destroy .m1}catch {unset foo}menu .m1set foo "hello"list [catch {.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye} msg] $msg [set foo "hello"] [destroy .m1] [catch {unset foo} msg2] $msg2} {0 {} hello {} 0 {}}test menu-16.4 {MenuVarProc} {catch {destroy .m1}menu .m1set foo "goodbye"list [catch {.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye} msg] $msg [set foo "hello"] [destroy .m1] [catch {unset foo} msg2] $msg2} {0 {} hello {} 0 {}}test menu-16.5 {MenuVarProc} {catch {destroy .m1}menu .m1set foo "hello"list [catch {.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye} msg] $msg [set foo "goodbye"] [destroy .m1] [catch {unset foo} msg2] $msg2} {0 {} goodbye {} 0 {}}test menu-17.1 {TkActivateMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 activate 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-17.2 {TkActivateMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test"list [catch {.m1 activate 0} msg] $msg [destroy .m1]} {0 {} {}}test menu-17.3 {TkActivateMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "test2".m1 activate 1list [catch {.m1 activate 2} msg] $msg [destroy .m1]} {0 {} {}}test menu-17.4 {TkActivateMenuEntry} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 add command -label "test2".m1 activate 1list [catch {.m1 activate 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-18.1 {TkPostCommand} {menuInteractive} {catch {destroy .m1}menu .m1 -postcommand "set menu_test menu-19.1".m1 add command -label "menu-19.1 - hit Escape"list [catch {.m1 post 40 40} msg] $msg [.m1 unpost] [set menu_test] [destroy .m1]} {0 menu-19.1 {} menu-19.1 {}}test menu-18.2 {TkPostCommand} {menuInteractive} {catch {destroy .m1}menu .m1.m1 add command -label "menu-19.2 - hit Escape"list [catch {.m1 post 40 40} msg] $msg [.m1 unpost] [destroy .m1]} {0 {} {} {}}test menu-19.1 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2} msg1] $msg1 [destroy .m1]} {0 {} {}}test menu-19.2 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2 normal} msg1] $msg1 [destroy .m1]} {0 {} {}}test menu-19.3 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2 tearoff} msg1] $msg1 [destroy .m1]} {0 {} {}}test menu-19.4 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2 menubar} msg1] $msg1 [destroy .m1]} {0 {} {}}test menu-19.5 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2 foo} msg1] $msg1 [destroy .m1]} {1 {bad menu type - must be normal, tearoff, or menubar} {}}test menu-19.6 {CloneMenu - hooking up bookeeping ptrs} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2} msg] $msg [destroy .m1]} {0 {} {}}test menu-19.7 {CloneMenu - hooking up bookeeping ptrs - multiple children} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}menu .m1.m1 clone .m2list [catch {.m1 clone .m3} msg] $msg [destroy .m1]} {0 {} {}}test menu-19.8 {CloneMenu - cascade entries} {catch {destroy .m1}catch {destroy .foo}menu .m1.m1 add cascade -menu .m2list [catch {.m1 clone .foo} msg] $msg [destroy .m1]} {0 {} {}}test menu-19.9 {CloneMenu - cascades entries} {catch {destroy .m1}catch {destroy .m2}catch {destroy .foo}menu .m1.m1 add cascade -menu .m2menu .m2list [catch {.m1 clone .foo} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-19.10 {CloneMenu - tearoff fields} {catch {destroy .m1}catch {destroy .m2}menu .m1list [catch {.m1 clone .m2 normal} msg1] $msg1 [catch {.m2 cget -tearoff} msg2] $msg2 [destroy .m1]} {0 {} 0 1 {}}test menu-19.11 {CloneMenu} {catch {destroy .m1}catch {destroy .m2}menu .m1menu .m2list [catch {.m1 clone .m2} msg] $msg [destroy .m1 .m2]} {1 {window name "m2" already exists in parent} {}}test menu-20.1 {MenuDoYPosition} {catch {destroy .m1}menu .m1list [catch {.m1 yposition glorp} msg] $msg [destroy .m1]} {1 {bad menu entry index "glorp"} {}}test menu-20.2 {MenuDoYPosition} {catch {destroy .m1}menu .m1.m1 add command -label "Test"list [catch {.m1 yposition 1}] [destroy .m1]} {0 {}}test menu-21.1 {GetIndexFromCoords} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 configure -tearoff 0list [catch {.m1 index @5} msg] $msg [destroy .m1]} {0 0 {}}test menu-21.2 {GetIndexFromCoords} {catch {destroy .m1}menu .m1.m1 add command -label "test".m1 configure -tearoff 0list [catch {.m1 index @5,5} msg] $msg [destroy .m1]} {0 0 {}}test menu-22.1 {RecursivelyDeleteMenu} {catch {destroy .m1}menu .m1. configure -menu .m1list [catch {. configure -menu ""} msg] $msg [destroy .m1]} {0 {} {}}test menu-22.2 {RecursivelyDeleteMenu} {catch {destroy .m1}catch {destroy .m2}menu .m2.m2 add command -label "test2"menu .m1.m1 add cascade -label "test1" -menu .m2. configure -menu .m1list [catch {. configure -menu ""} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-23.1 {TkNewMenuName} {catch {destroy .m1}menu .m1list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-23.2 {TkNewMenuName} {catch {destroy .m1}catch {destroy .m1\#0}menu .m1menu .m1\#0list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-23.3 {TkNewMenuName} {catch {destroy .#m}menu .#mrename .#m hidemelist [catch {. configure -menu [menu .m]} $msg] [. configure -menu ""] [destroy .#m] [destroy .m] [destroy hideme]} {0 {} {} {} {}}test menu-24.1 {TkSetWindowMenuBar} {. configure -menu ""list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""]} {0 {} {}}test menu-24.2 {TkSetWindowMenuBar} {. configure -menu ""list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""]} {0 {} {}}test menu-24.3 {TkSetWindowMenuBar} {. configure -menu ""catch {destroy .m1}menu .m1list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-24.4 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}. configure -menu ""menu .m1. configure -menu .m1menu .m2list [catch {. configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .m1 .m2]} {0 {} {} {}}test menu-24.5 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}. configure -menu ""menu .m1. configure -menu .m1.m1 clone .m2menu .m3list [catch {. configure -menu .m3} msg] $msg [. configure -menu ""] [destroy .m1 .m3]} {0 {} {} {}}test menu-24.6 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .m3}. configure -menu ""menu .m1.m1 clone .m2. configure -menu .m2menu .m3list [catch {. configure -menu .m3} msg] $msg [. configure -menu ""] [destroy .m1 .m3]} {0 {} {} {}}test menu-24.7 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}. configure -menu ""menu .m1menu .m2. configure -menu .m1toplevel .t2.t2 configure -menu .m1list [catch {.t2 configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .t2 .m1 .m2]} {0 {} {} {}}test menu-24.8 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}. configure -menu ""menu .m1menu .m2. configure -menu .m1toplevel .t2wm geometry .t2 +0+0.t2 configure -menu .m1list [catch {. configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .t2 .m1 .m2]} {0 {} {} {}}test menu-24.9 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}catch {destroy .t3}. configure -menu ""menu .m1menu .m2. configure -menu .m1toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {.t3 configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .t2 .t3 .m1 .m2]} {0 {} {} {}}test menu-24.10 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}catch {destroy .t3}. configure -menu ""menu .m1menu .m2. configure -menu .m1toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {.t2 configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .t2 .t3 .m1 .m2]} {0 {} {} {}}test menu-24.11 {TkSetWindowMenuBar} {catch {destroy .m1}catch {destroy .m2}catch {destroy .t2}catch {destroy .t3}. configure -menu ""menu .m1menu .m2. configure -menu .m1toplevel .t2 -menu .m1wm geometry .t2 +0+0toplevel .t3 -menu .m1wm geometry .t3 +0+0list [catch {. configure -menu .m2} msg] $msg [. configure -menu ""] [destroy .t2 .t3 .m1 .m2]} {0 {} {} {}}test menu-24.12 {TkSetWindowMenuBar} {catch {destroy .m1}. configure -menu ""menu .m1list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-24.13 {TkSetWindowMenuBar} {. configure -menu ""list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""]} {0 {} {}}test menu-24.14 {TkSetWindowMenuBar} {catch {destroy .m1}. configure -menu ""menu .m1list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-24.15 {TkSetWindowMenuBar} {. configure -menu ""list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""]} {0 {} {}}test menu-24.16 {TkSetWindowMenuBar} {catch {destroy .m1}. configure -menu ""menu .m1. configure -menu .m1list [catch {toplevel .t2 -menu m1} msg] $msg [. configure -menu ""] [destroy .t2 .m1]} {0 .t2 {} {}}test menu-25.1 {DestroyMenuHashTable} {catch {interp destroy testinterp}interp create testinterpload {} Tk testinterpinterp eval testinterp {menu .m1}list [catch {interp delete testinterp} msg] $msg} {0 {}}test menu-26.1 {GetMenuHashTable} {catch {interp destroy testinterp}interp create testinterpload {} tk testinterplist [catch {interp eval testinterp {menu .m1}} msg] $msg [interp delete testinterp]} {0 .m1 {}}test menu-27.1 {TkCreateMenuReferences - not there before} {catch {destroy .m1}list [catch {menu .m1} msg] $msg [destroy .m1]} {0 .m1 {}}test menu-27.2 {TkCreateMenuReferences - there already} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add cascade -menu .m2list [catch {menu .m2} msg] $msg [destroy .m1 .m2]} {0 .m2 {}}test menu-28.1 {TkFindMenuReferences - not there} {catch {destroy .m1}. configure -menu ""menu .m1.m1 add cascade -menu .m2list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]} {0 {} {} {}}test menu-29.1 {TkFindMenuReferences - there already} {catch {destroy .m1}catch {destroy .m2}. configure -menu ""menu .m1menu .m2.m1 add cascade -menu .m2list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1 .m2]} {0 {} {} {}}test menu-30.1 {TkFreeMenuReferences - menuPtr} {catch {destroy .m1}menu .m1list [catch {destroy .m1} msg] $msg} {0 {}}test menu-30.2 {TkFreeMenuReferences - cascadePtr} {catch {destroy .m1}. configure -menu ""menu .m1.m1 add cascade -menu .m2list [catch {.m1 entryconfigure 1 -menu .m3} msg] $msg [destroy .m1]} {0 {} {}}test menu-30.3 {TkFreeMenuReferences - topLevelListPtr} {. configure -menu .m1list [catch {. configure -menu ""} msg] $msg} {0 {}}test menu-30.4 {TkFreeMenuReferences - not empty} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add cascade -menu .m3menu .m2.m2 add cascade -menu .m3list [catch {.m2 entryconfigure 1 -menu ".foo"} msg] $msg [destroy .m1 .m2]} {0 {} {}}test menu-31.1 {DeleteMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label foo.m1 clone .m2list [catch {.m1 delete 1} msg] $msg [destroy .m1]} {0 {} {}}test menu-31.2 {DeleteMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label one.m1 add command -label two.m1 add command -label three.m1 add command -label four.m1 clone .m2list [catch {.m1 delete 2 3} msg] $msg [destroy .m1]} {0 {} {}}test menu-31.3 {DeleteMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1 -tearoff 0.m1 add command -label one.m1 add command -label two.m1 add command -label three.m1 add command -label four.m1 clone .m2.m2 configure -tearoff 1list [catch {.m1 delete 1 2} msg] $msg [destroy .m1]} {0 {} {}}test menu-31.4 {DeleteMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label one.m1 add command -label two.m1 add command -label three.m1 add command -label four.m1 clone .m2.m2 configure -tearoff 0list [catch {.m1 delete 2 3} msg] $msg [destroy .m1]} {0 {} {}}test menu-31.5 {DeleteMenuCloneEntries} {catch {destroy .m1}catch {destroy .m2}menu .m1.m1 add command -label one.m1 add command -label two.m1 clone .m2.m1 activate onelist [catch {.m1 delete one} msg] $msg [destroy .m1]} {0 {} {}}test menu-31.6 {DeleteMenuCloneEntries - reentrancy - crashes tk8.0} {catch {destroy .m1}menu .m1.m1 add command -label test -command ".m1 delete test ; .m1 add command -label test -command \".m1 delete test\"; .m1 delete test"list [catch {.m1 invoke test} msg] $msg [destroy .m1]} {0 {} {}}set l [interp hidden]eval destroy [winfo children .]test menu-32.1 {menu vs command hiding} {catch {destroy .m}menu .minterp hide {} .mdestroy .mlist [winfo children .] [interp hidden]} [list {} $l]# menu-34 MenuInit only called at boot timedeleteWindows
Go to most recent revision | Compare with Previous | Blame | View Log
