unixMenu.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:32k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test menus in Tk.  It is
  2. # organized in the standard fashion for Tcl tests. This
  3. # file tests the Macintosh-specific features of the menu
  4. # system.
  5. #
  6. # Copyright (c) 1995-1996 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: unixMenu.test,v 1.7 2002/07/13 20:28:36 dgp Exp $
  11. package require tcltest 2.1
  12. namespace import -force tcltest::configure
  13. namespace import -force tcltest::testsDirectory
  14. configure -testdir [file join [pwd] [file dirname [info script]]]
  15. configure -loadfile [file join [testsDirectory] constraints.tcl]
  16. tcltest::loadTestedCommands
  17. test unixMenu-1.1 {TkpNewMenu - normal menu} unix {
  18.     catch {destroy .m1}
  19.     list [catch {menu .m1} msg] $msg [destroy .m1]
  20. } {0 .m1 {}}
  21. test unixMenu-1.2 {TkpNewMenu - help menu} unix {
  22.     catch {destroy .m1}
  23.     menu .m1 -tearoff 0
  24.     . configure -menu .m1
  25.     .m1 add cascade -label Help -menu .m1.help
  26.     list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1]
  27. } {0 .m1.help {} {}}
  28. test unixMenu-2.1 {TkpDestroyMenu - nothing to do} {} {}
  29. test unixMenu-3.1 {TkpDestroymenuEntry - nothing to do} {} {}
  30. test unixMenu-4.1 {TkpConfigureMenuEntry - non-cascade entry} unix {
  31.     catch {destroy .m1}
  32.     menu .m1 -tearoff 0
  33.     .m1 add command -label test
  34.     list [catch {.m1 entryconfigure test -label foo} msg] $msg [destroy .m1]
  35. } {0 {} {}}
  36. test unixMenu-4.2 {TkpConfigureMenuEntry - cascade entry} unix {
  37.     catch {destroy .m1}
  38.     menu .m1 -tearoff 0
  39.     .m1 add cascade -menu .m2 -label test
  40.     menu .m1.foo -tearoff 0
  41.     list [catch {.m1 entryconfigure test -menu .m1.foo} msg] $msg [destroy .m1]
  42. } {0 {} {}}
  43. test unixMenu-5.1 {TkpMenuNewEntry - nothing to do} {} {}
  44. test unixMenu-6.1 {TkpSetWindowMenuBar - null menu} unix {
  45.     catch {destroy .m1}
  46.     menu .m1
  47.     .m1 add cascade -label foo
  48.     . configure -menu .m1
  49.     list [catch {. configure -menu ""} msg] $msg [destroy .m1]
  50. } {0 {} {}}
  51. test unixMenu-6.2 {TkpSetWindowMenuBar - menu} unix {
  52.     catch {destroy .m1}
  53.     menu .m1
  54.     .m1 add cascade -label foo
  55.     list [catch {. configure -menu .m1} msg] $msg [. configure -menu ""] [destroy .m1]
  56. } {0 {} {} {}}
  57. test unixMenu-7.1 {TkpSetMainMenubar - nothing to do} {} {}
  58. test unixMenu-8.1 {GetMenuIndicatorGeometry - indicator off} unix {
  59.     catch {destroy .m1}
  60.     menu .m1
  61.     .m1 add checkbutton -label foo -indicatoron 0
  62.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  63. } {0 {}}
  64. test unixMenu-8.2 {GetMenuIndicatorGeometry - not checkbutton or radio} unix {
  65.     catch {destroy .m1}
  66.     menu .m1
  67.     .m1 add command -label foo
  68.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  69. } {0 {}}
  70. test unixMenu-8.3 {GetMenuIndicatorGeometry - checkbutton image} {unix testImageType} {
  71.     catch {destroy .m1}
  72.     catch {image delete image1}
  73.     menu .m1
  74.     image create test image1
  75.     .m1 add checkbutton -image image1 -label foo
  76.     .m1 invoke foo
  77.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] [image delete image1]
  78. } {0 {} {}}
  79. test unixMenu-8.4 {GetMenuIndicatorGeometry - checkbutton bitmap} unix {
  80.     catch {destroy .m1}
  81.     menu .m1
  82.     .m1 add checkbutton -bitmap questhead -label foo
  83.     .m1 invoke foo
  84.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  85. } {0 {}}
  86. test unixMenu-8.5 {GetMenuIndicatorGeometry - checkbutton} unix {
  87.     catch {destroy .m1}
  88.     menu .m1
  89.     .m1 add checkbutton -label foo
  90.     .m1 invoke foo
  91.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  92. } {0 {}}
  93. test unixMenu-8.6 {GetMenuIndicatorGeometry - radiobutton image} {unix testImageType} {
  94.     catch {destroy .m1}
  95.     catch {image delete image1}
  96.     menu .m1
  97.     image create test image1
  98.     .m1 add radiobutton -image image1 -label foo
  99.     .m1 invoke foo
  100.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1] [image delete image1]
  101. } {0 {} {}}
  102. test unixMenu-8.7 {GetMenuIndicatorGeometry - radiobutton bitmap} unix {
  103.     catch {destroy .m1}
  104.     menu .m1
  105.     .m1 add radiobutton -bitmap questhead -label foo
  106.     .m1 invoke foo
  107.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  108. } {0 {}}
  109. test unixMenu-8.8 {GetMenuIndicatorGeometry - radiobutton} unix {
  110.     catch {destroy .m1}
  111.     menu .m1
  112.     .m1 add radiobutton -label foo
  113.     .m1 invoke foo
  114.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  115. } {0 {}}
  116. test unixMenu-8.9 {GetMenuIndicatorGeometry - hideMargin} unix {
  117.     catch {destroy .m1}
  118.     menu .m1
  119.     .m1 add radiobutton -label foo -hidemargin 1
  120.     .m1 invoke foo
  121.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  122. } {0 {}}
  123. test unixMenu-9.1 {GetMenuAccelGeometry - cascade entry} unix {
  124.     catch {destroy .m1}
  125.     menu .m1
  126.     .m1 add cascade -label foo
  127.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  128. } {0 {}}
  129. test unixMenu-9.2 {GetMenuAccelGeometry - non-null label} unix {
  130.     catch {destroy .m1}
  131.     menu .m1
  132.     .m1 add command -label foo -accel "Ctrl+S"
  133.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  134. } {0 {}}
  135. test unixMenu-9.3 {GetMenuAccelGeometry - null label} unix {
  136.     catch {destroy .m1}
  137.     menu .m1
  138.     .m1 add command -label foo
  139.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  140. } {0 {}}
  141. test unixMenu-10.1 {DrawMenuEntryBackground - active menubar} unix {
  142.     catch {destroy .m1}
  143.     menu .m1
  144.     .m1 add cascade -label foo
  145.     . configure -menu .m1
  146.     .m1 activate 1
  147.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  148. } {0 {} {} {}}
  149. test unixMenu-10.2 {DrawMenuEntryBackground - active} unix {
  150.     catch {destroy .m1}
  151.     menu .m1
  152.     .m1 add command -label foo
  153.     set tearoff [tk::TearOffMenu .m1 40 40]
  154.     $tearoff activate 0
  155.     list [catch {update} msg] $msg [destroy .m1]
  156. } {0 {} {}}
  157. test unixMenu-10.3 {DrawMenuEntryBackground - non-active} unix {
  158.     catch {destroy .m1}
  159.     menu .m1
  160.     .m1 add command -label foo
  161.     set tearoff [tk::TearOffMenu .m1 40 40]
  162.     list [catch {update} msg] $msg [destroy .m1]
  163. } {0 {} {}}
  164. test unixMenu-11.1 {DrawMenuEntryAccelerator - menubar} unix {
  165.     catch {destroy .m1}
  166.     menu .m1
  167.     .m1 add command -label foo -accel "Ctrl+U"
  168.     . configure -menu .m1
  169.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  170. } {0 {} {} {}}
  171. # drawArrow parameter is never false under Unix
  172. test unixMenu-11.2 {DrawMenuEntryAccelerator - cascade entry} unix {
  173.     catch {destroy .m1}
  174.     menu .m1
  175.     .m1 add cascade -label foo
  176.     set tearoff [tk::TearOffMenu .m1 40 40]
  177.     list [catch {update} msg] $msg [destroy .m1]
  178. } {0 {} {}}
  179. test unixMenu-11.3 {DrawMenuEntryAccelerator - normal entry} unix {
  180.     catch {destroy .m1}
  181.     menu .m1
  182.     .m1 add command -label foo -accel "Ctrl+U"
  183.     set tearoff [tk::TearOffMenu .m1 40 40]
  184.     list [catch {update} msg] $msg [destroy .m1]
  185. } {0 {} {}}
  186. test unixMenu-11.4 {DrawMenuEntryAccelerator - null entry} unix {
  187.     catch {destroy .m1}
  188.     menu .m1
  189.     .m1 add command -label foo
  190.     set tearoff [tk::TearOffMenu .m1 40 40]
  191.     list [catch {update} msg] $msg [destroy .m1]
  192. } {0 {} {}}
  193. test unixMenu-12.1 {DrawMenuEntryIndicator - non-check or radio} unix {
  194.     catch {destroy .m1}
  195.     menu .m1
  196.     .m1 add command -label foo
  197.     set tearoff [tk::TearOffMenu .m1 40 40]
  198.     list [catch {update} msg] $msg [destroy .m1]
  199. } {0 {} {}}
  200. test unixMenu-12.2 {DrawMenuEntryIndicator - checkbutton - indicator off} unix {
  201.     catch {destroy .m1}
  202.     menu .m1
  203.     .m1 add checkbutton -label foo -indicatoron 0
  204.     set tearoff [tk::TearOffMenu .m1 40 40]
  205.     list [catch {update} msg] $msg [destroy .m1]
  206. } {0 {} {}}
  207. test unixMenu-12.3 {DrawMenuEntryIndicator - checkbutton - not selected} unix {
  208.     catch {destroy .m1}
  209.     menu .m1
  210.     .m1 add checkbutton -label foo
  211.     set tearoff [tk::TearOffMenu .m1 40 40]
  212.     list [catch {update} msg] $msg [destroy .m1]
  213. } {0 {} {}}
  214. test unixMenu-12.4 {DrawMenuEntryIndicator - checkbutton - selected} unix {
  215.     catch {destroy .m1}
  216.     menu .m1
  217.     .m1 add checkbutton -label foo
  218.     .m1 invoke 1
  219.     set tearoff [tk::TearOffMenu .m1 40 40]
  220.     list [catch {update} msg] $msg [destroy .m1]
  221. } {0 {} {}}
  222. test unixMenu-12.5 {DrawMenuEntryIndicator - radiobutton - indicator off} unix {
  223.     catch {destroy .m1}
  224.     menu .m1
  225.     .m1 add radiobutton -label foo -indicatoron 0
  226.     set tearoff [tk::TearOffMenu .m1 40 40]
  227.     list [catch {update} msg] $msg [destroy .m1]
  228. } {0 {} {}}
  229. test unixMenu-12.6 {DrawMenuEntryIndicator - radiobutton - not selected} unix {
  230.     catch {destroy .m1}
  231.     menu .m1
  232.     .m1 add radiobutton -label foo
  233.     set tearoff [tk::TearOffMenu .m1 40 40]
  234.     list [catch {update} msg] $msg [destroy .m1]
  235. } {0 {} {}}
  236. test unixMenu-12.7 {DrawMenuEntryIndicator - radiobutton - selected} unix {
  237.     catch {destroy .m1}
  238.     menu .m1
  239.     .m1 add radiobutton -label foo
  240.     .m1 invoke 1
  241.     set tearoff [tk::TearOffMenu .m1 40 40]
  242.     list [catch {update} msg] $msg [destroy .m1]
  243. } {0 {} {}}
  244. test unixMenu-13.1 {DrawMenuSeparator - menubar case} unix {
  245.     catch {destroy .m1}
  246.     menu .m1
  247.     .m1 add separator
  248.     . configure -menu .m1
  249.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  250. } {0 {} {} {}}
  251. test unixMenu-13.2 {DrawMenuSepartor - normal menu} unix {
  252.     catch {destroy .m1}
  253.     menu .m1
  254.     .m1 add separator
  255.     set tearoff [tk::TearOffMenu .m1 40 40]
  256.     list [catch {update} msg] $msg [destroy .m1]
  257. } {0 {} {}}
  258. test unixMenu-14.1 {DrawMenuEntryLabel} unix {
  259.     catch {destroy .m1}
  260.     menu .m1
  261.     .m1 add command -label foo
  262.     set tearoff [tk::TearOffMenu .m1 40 40]
  263.     list [catch {update} msg] $msg [destroy .m1]
  264. } {0 {} {}}
  265. test unixMenu-15.1 {DrawMenuUnderline - menubar} unix {
  266.     catch {destroy .m1}
  267.     menu .m1
  268.     .m1 add command -label foo -underline 0
  269.     . configure -menu .m1
  270.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  271. } {0 {} {} {}}
  272. test unixMenu-15.2 {DrawMenuUnderline - no menubar} unix {
  273.     catch {destroy .m1}
  274.     menu .m1
  275.     .m1 add command -label foo -underline 0
  276.     set tearoff [tk::TearOffMenu .m1 40 40]
  277.     list [catch {update} msg] $msg [destroy .m1]
  278. } {0 {} {}}
  279. test unixMenu-16.1 {TkpPostMenu} unix {
  280.     catch {destroy .m1}
  281.     menu .m1
  282.     .m1 add command -label foo
  283.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  284. } {0 {}}
  285. test unixMenu-17.1 {GetMenuSeparatorGeometry} unix {
  286.     catch {destroy .m1}
  287.     menu .m1
  288.     .m1 add separator
  289.     list [catch {tk::TearOffMenu .m1 40 40}] [destroy .m1]
  290. } {0 {}}
  291. test unixMenu-18.1 {GetTearoffEntryGeometry} unix {
  292.     catch {destroy .m1}
  293.     menubutton .mb -text "test" -menu .mb.m
  294.     menu .mb.m
  295.     .mb.m add command -label test
  296.     pack .mb
  297.     raise .
  298.     list [catch {tk::MbPost .mb} msg] $msg [tk::MenuUnpost .mb.m] [destroy .mb]
  299. } {0 {} {} {}}
  300. # Don't know how to reproduce the case where the tkwin has been deleted.
  301. test unixMenu-19.1 {TkpComputeMenubarGeometry - zero entries} unix {
  302.     catch {destroy .m1}
  303.     menu .m1
  304.     . configure -menu .m1
  305.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  306. } {0 {} {} {}}
  307. # Don't know how to generate one width windows
  308. test unixMenu-19.2 {TkpComputeMenubarGeometry - one entry} unix {
  309.     catch {destroy .m1}
  310.     menu .m1
  311.     .m1 add cascade -label File
  312.     . configure -menu .m1
  313.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  314. } {0 {} {} {}}
  315. test unixMenu-19.3 {TkpComputeMenubarGeometry - entry with different font} unix {
  316.     catch {destroy .m1}
  317.     menu .m1 -font "Courier 24"
  318.     .m1 add cascade -label File -font "Helvetica 18"
  319.     . configure -menu .m1
  320.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  321. } {0 {} {} {}}
  322. test unixMenu-19.4 {TkpComputeMenubarGeometry - separator} unix {
  323.     catch {destroy .m1}
  324.     menu .m1
  325.     .m1 add separator
  326.     . configure -menu .m1
  327.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  328. } {0 {} {} {}}
  329. test unixMenu-19.5 {TkpComputeMenubarGeometry - First entry} unix {
  330.     catch {destroy .m1}
  331.     menu .m1 -tearoff 0
  332.     .m1 add cascade -label File
  333.     . configure -menu .m1
  334.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  335. } {0 {} {} {}}
  336. test unixMenu-19.6 {TkpComputeMenubarGeometry - First entry too wide} unix {
  337.     catch {destroy .m1}
  338.     menu .m1 -tearoff 0
  339.     .m1 add cascade -label File -font "Times 72"
  340.     . configure -menu .m1
  341.     wm geometry . 10x10
  342.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  343. } {0 {} {} {}}
  344. test unixMenu-19.7 {TkpComputeMenubarGeometry - two entries fit} unix {
  345.     catch {destroy .m1}
  346.     menu .m1 -tearoff 0
  347.     .m1 add cascade -label File
  348.     .m1 add cascade -label Edit
  349.     . configure -menu .m1
  350.     wm geometry . 200x200
  351.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  352. } {0 {} {} {}}
  353. test unixMenu-19.8 {TkpComputeMenubarGeometry - two entries; 2nd don't fit} unix {
  354.     catch {destroy .m1}
  355.     menu .m1 -tearoff 0
  356.     .m1 add cascade -label File
  357.     .m1 add cascade -label Edit -font "Times 72"
  358.     . configure -menu .m1
  359.     wm geometry . 100x100
  360.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  361. } {0 {} {} {}}
  362. test unixMenu-19.9 {TkpComputeMenubarGeometry - two entries; 1st dont fit} unix {
  363.     catch {destroy .m1}
  364.     menu .m1 -tearoff 0
  365.     .m1 add cascade -label File -font "Times 72"
  366.     .m1 add cascade -label Edit
  367.     . configure -menu .m1
  368.     wm geometry . 100x100
  369.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  370. } {0 {} {} {}}
  371. test unixMenu-19.10 {TkpComputeMenubarGeometry - two entries; neither fit} unix {
  372.     catch {destroy .m1}
  373.     menu .m1 -tearoff 0 -font "Times 72"
  374.     .m1 add cascade -label File
  375.     .m1 add cascade -label Edit
  376.     . configure -menu .m1
  377.     wm geometry . 10x10
  378.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  379. } {0 {} {} {}}
  380. # ABC notation; capital A means first window fits, small a means it
  381. # does not. capital B menu means second window fist, etc.
  382. test unixMenu-19.11 {TkpComputeMenubarGeometry - abc} unix {
  383.     catch {destroy .m1}
  384.     menu .m1 -tearoff 0 -font "Times 72"
  385.     .m1 add cascade -label "aaaaa"
  386.     .m1 add cascade -label "bbbbb"
  387.     .m1 add cascade -label "ccccc"
  388.     . configure -menu .m1
  389.     wm geometry . 10x10
  390.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  391. } {0 {} {} {}}
  392. test unixMenu-19.12 {TkpComputeMenubarGeometry - abC} unix {
  393.     catch {destroy .m1}
  394.     menu .m1 -tearoff 0
  395.     .m1 add cascade -label "aaaaa" -font "Times 72"
  396.     .m1 add cascade -label "bbbbb" -font "Times 72"
  397.     .m1 add cascade -label "C"
  398.     . configure -menu .m1
  399.     wm geometry . 10x10
  400.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  401. } {0 {} {} {}}
  402. test unixMenu-19.13 {TkpComputeMenubarGeometry - aBc} unix {
  403.     catch {destroy .m1}
  404.     menu .m1 -tearoff 0
  405.     .m1 add cascade -label "aaaaa" -font "Times 72"
  406.     .m1 add cascade -label "B"
  407.     .m1 add cascade -label "ccccc" -font "Times 72"
  408.     . configure -menu .m1
  409.     wm geometry . 10x10
  410.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  411. } {0 {} {} {}}
  412. test unixMenu-19.14 {TkpComputeMenubarGeometry - aBC} unix {
  413.     catch {destroy .m1}
  414.     menu .m1 -tearoff 0
  415.     .m1 add cascade -label "aaaaa" -font "Times 72"
  416.     .m1 add cascade -label "B"
  417.     .m1 add cascade -label "C"
  418.     . configure -menu .m1
  419.     wm geometry . 60x10
  420.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  421. } {0 {} {} {}}
  422. test unixMenu-19.15 {TkpComputeMenubarGeometry - Abc} unix {
  423.     catch {destroy .m1}
  424.     menu .m1 -tearoff 0
  425.     .m1 add cascade -label "A"
  426.     .m1 add cascade -label "bbbbb" -font "Times 72"
  427.     .m1 add cascade -label "ccccc" -font "Times 72"
  428.     . configure -menu .m1
  429.     wm geometry . 60x10
  430.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  431. } {0 {} {} {}}
  432. test unixMenu-19.16 {TkpComputeMenubarGeometry - AbC} unix {
  433.     catch {destroy .m1}
  434.     menu .m1 -tearoff 0
  435.     .m1 add cascade -label "A"
  436.     .m1 add cascade -label "bbbbb" -font "Times 72"
  437.     .m1 add cascade -label "C"
  438.     . configure -menu .m1
  439.     wm geometry . 60x10
  440.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  441. } {0 {} {} {}}
  442. test unixMenu-19.17 {TkpComputeMenubarGeometry - ABc} unix {
  443.     catch {destroy .m1}
  444.     menu .m1 -tearoff 0
  445.     .m1 add cascade -label "A"
  446.     .m1 add cascade -label "B"
  447.     .m1 add cascade -label "ccccc" -font "Times 72"
  448.     . configure -menu .m1
  449.     wm geometry . 60x10
  450.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  451. } {0 {} {} {}}
  452. test unixMenu-19.18 {TkpComputeMenubarGeometry - ABC} unix {
  453.     catch {destroy .m1}
  454.     menu .m1 -tearoff 0
  455.     .m1 add cascade -label "A"
  456.     .m1 add cascade -label "B"
  457.     .m1 add cascade -label "C"
  458.     . configure -menu .m1
  459.     wm geometry . 100x10
  460.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  461. } {0 {} {} {}}
  462. test unixMenu-19.19 {TkpComputeMenubarGeometry - help menu in first position} unix {
  463.     catch {destroy .m1}
  464.     menu .m1 -tearoff 0
  465.     .m1 add cascade -label Help -menu .m1.help
  466.     menu .m1.help -tearoff 0
  467.     .m1 add cascade -label File -menu .m1.file
  468.     menu .m1.file -tearoff 0
  469.     .m1 add cascade -label Edit -menu .m1.edit
  470.     menu .m1.edit -tearoff 0
  471.     . configure -menu .m1
  472.     wm geometry . 100x10
  473.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  474. } {0 {} {} {}}
  475. test unixMenu-19.20 {TkpComputeMenubarGeometry - help menu in middle} unix {
  476.     catch {destroy .m1}
  477.     menu .m1 -tearoff 0
  478.     .m1 add cascade -label Edit -menu .m1.edit
  479.     menu .m1.edit -tearoff 0
  480.     .m1 add cascade -label Help -menu .m1.help
  481.     menu .m1.help -tearoff 0
  482.     .m1 add cascade -label File -menu .m1.file
  483.     menu .m1.file -tearoff 0
  484.     . configure -menu .m1
  485.     wm geometry . 100x10
  486.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  487. } {0 {} {} {}}
  488. test unixMenu-19.21 {TkpComputeMenubarGeometry - help menu in first position} unix {
  489.     catch {destroy .m1}
  490.     menu .m1 -tearoff 0
  491.     .m1 add cascade -label File -menu .m1.file
  492.     menu .m1.file -tearoff 0
  493.     .m1 add cascade -label Edit -menu .m1.edit
  494.     menu .m1.edit -tearoff 0
  495.     .m1 add cascade -label Help -menu .m1.help
  496.     menu .m1.help -tearoff 0
  497.     . configure -menu .m1
  498.     wm geometry . 100x10
  499.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  500. } {0 {} {} {}}
  501. test unixMenu-19.22 {TkpComputeMenubarGeometry - help item fits} unix {
  502.     catch {destroy .m1}
  503.     menu .m1 -tearoff 0
  504.     .m1 add cascade -label File -menu .m1.file
  505.     menu .m1.file -tearoff 0
  506.     .m1 add cascade -label Help -menu .m1.help
  507.     menu .m1.help -tearoff 0
  508.     . configure -menu .m1
  509.     wm geometry . 100x10
  510.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  511. } {0 {} {} {}}
  512. test unixMenu-19.23 {TkpComputeMenubarGeometry - help item does not fit} unix {
  513.     catch {destroy .m1}
  514.     menu .m1 -tearoff 0
  515.     .m1 add cascade -label File -menu .m1.file
  516.     menu .m1.file -tearoff 0
  517.     .m1 add cascade -label Help -menu .m1.help -font "Helvetica 72"
  518.     menu .m1.help -tearoff 0
  519.     . configure -menu .m1
  520.     wm geometry . 100x10
  521.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  522. } {0 {} {} {}}
  523. test unixMenu-19.24 {TkpComputeMenubarGeometry - help item only one} unix {
  524.     catch {destroy .m1}
  525.     menu .m1 -tearoff 0
  526.     .m1 add cascade -label Help -menu .m1.help
  527.     menu .m1.help -tearoff 0
  528.     . configure -menu .m1
  529.     wm geometry . 100x10
  530.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  531. } {0 {} {} {}}
  532. test unixMenu-20.1 {DrawTearoffEntry - menubar} unix {
  533.     catch {destroy .m1}
  534.     menu .m1
  535.     .m1 add cascade -label File
  536.     . configure -menu .m1
  537.     list [catch {update} msg] $msg [. configure -menu ""] [destroy .m1]
  538. } {0 {} {} {}}
  539. test unixMenu-20.2 {DrawTearoffEntry - non-menubar} unix {
  540.     catch {destroy .m1}
  541.     menu .m1
  542.     .m1 add command -label foo
  543.     .m1 post 40 40
  544.      list [catch {update} msg] $msg [destroy .m1]
  545. } {0 {} {}}
  546. test unixMenu-21.1 {TkpInitializeMenuBindings - nothing to do} {} {}
  547. test unixMenu-22.1 {SetHelpMenu - no menubars} unix {
  548.     catch {destroy .m1}
  549.     menu .m1 -tearoff 0
  550.     .m1 add cascade -label test -menu .m1.test
  551.     list [catch {menu .m1.test} msg] $msg [destroy .m1]
  552. } {0 .m1.test {}}
  553. # Don't know how to automate missing tkwins
  554. test unixMenu-22.2 {SetHelpMenu - menubar but no help menu} unix {
  555.     catch {destroy .m1}
  556.     menu .m1 -tearoff 0
  557.     . configure -menu .m1
  558.     .m1 add cascade -label .m1.file
  559.     list [catch {menu .m1.file} msg] $msg [. configure -menu ""] [destroy .m1]
  560. } {0 .m1.file {} {}}
  561. test unixMenu-22.3 {SetHelpMenu - menubar with help menu} unix {
  562.     catch {destroy .m1}
  563.     menu .m1 -tearoff 0
  564.     . configure -menu .m1
  565.     .m1 add cascade -label .m1.help
  566.     list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1]
  567. } {0 .m1.help {} {}}
  568. test unixMenu-22.4 {SetHelpMenu - multiple menubars with same help menu} unix {
  569.     catch {destroy .m1}
  570.     catch {destroy .t2}
  571.     toplevel .t2
  572.     wm geometry .t2 +40+40
  573.     menu .m1 -tearoff 0
  574.     . configure -menu .m1
  575.     .t2 configure -menu .m1
  576.     .m1 add cascade -label .m1.help
  577.     list [catch {menu .m1.help} msg] $msg [. configure -menu ""] [destroy .m1] [destroy .t2]
  578. } {0 .m1.help {} {} {}}
  579. test unixMenu-23.1 {TkpDrawMenuEntry - gc for active and not strict motif} unix {
  580.     catch {destroy .m1}
  581.     menu .m1
  582.     .m1 add command -label foo
  583.     set tearoff [tk::TearOffMenu .m1 40 40]
  584.     .m1 entryconfigure 1 -state active
  585.     list [update] [destroy .m1]
  586. } {{} {}}
  587. test unixMenu-23.2 {TkpDrawMenuEntry - gc for active menu item with its own gc} unix {
  588.     catch {destroy .m1}
  589.     menu .m1
  590.     .m1 add command -label foo -activeforeground red
  591.     set tearoff [tk::TearOffMenu .m1 40 40]
  592.     .m1 entryconfigure 1 -state active
  593.     list [update] [destroy .m1]
  594. } {{} {}}
  595. test unixMenu-23.3 {TkpDrawMenuEntry - gc for active and strict motif} unix {
  596.     catch {destroy .m1}
  597.     menu .m1
  598.     set tk_strictMotif 1
  599.     .m1 add command -label foo
  600.     set tearoff [tk::TearOffMenu .m1 40 40]
  601.     .m1 entryconfigure 1 -state active
  602.     list [update] [destroy .m1] [set tk_strictMotif 0]
  603. } {{} {} 0}
  604. test unixMenu-23.4 {TkpDrawMenuEntry - gc for disabled with disabledfg and custom entry} unix {
  605.     catch {destroy .m1}
  606.     menu .m1 -disabledforeground blue
  607.     .m1 add command -label foo -state disabled -background red
  608.     set tearoff [tk::TearOffMenu .m1 40 40]
  609.     list [update] [destroy .m1]
  610. } {{} {}}
  611. test unixMenu-23.5 {TkpDrawMenuEntry - gc for disabled with disabledFg} unix {
  612.     catch {destroy .m1}
  613.     menu .m1 -disabledforeground blue
  614.     .m1 add command -label foo -state disabled
  615.     set tearoff [tk::TearOffMenu .m1 40 40]
  616.     list [update] [destroy .m1]
  617. } {{} {}}
  618. test unixMenu-23.6 {TkpDrawMenuEntry - gc for disabled - no disabledFg} unix {
  619.     catch {destroy .m1}
  620.     menu .m1 -disabledforeground ""
  621.     .m1 add command -label foo -state disabled
  622.     set tearoff [tk::TearOffMenu .m1 40 40]
  623.     list [update] [destroy .m1]
  624. } {{} {}}
  625. test unixMenu-23.7 {TkpDrawMenuEntry - gc for normal - custom entry} unix {
  626.     catch {destroy .m1}
  627.     menu .m1
  628.     .m1 add command -label foo -foreground red
  629.     set tearoff [tk::TearOffMenu .m1 40 40]
  630.     list [update] [destroy .m1]
  631. } {{} {}}
  632. test unixMenu-23.8 {TkpDrawMenuEntry - gc for normal} unix {
  633.     catch {destroy .m1}
  634.     menu .m1
  635.     .m1 add command -label foo
  636.     set tearoff [tk::TearOffMenu .m1 40 40]
  637.     list [update] [destroy .m1]
  638. } {{} {}}
  639. test unixMenu-23.9 {TkpDrawMenuEntry - gc for indicator - custom entry} unix {
  640.     catch {destroy .m1}
  641.     menu .m1
  642.     .m1 add checkbutton -label foo -selectcolor orange
  643.     .m1 invoke 1
  644.     set tearoff [tk::TearOffMenu .m1 40 40]
  645.     list [update] [destroy .m1]
  646. } {{} {}}
  647. test unixMenu-23.10 {TkpDrawMenuEntry - gc for indicator} unix {
  648.     catch {destroy .m1}
  649.     menu .m1
  650.     .m1 add checkbutton -label foo
  651.     .m1 invoke 1
  652.     set tearoff [tk::TearOffMenu .m1 40 40]
  653.     list [update] [destroy .m1]
  654. } {{} {}}
  655. test unixMenu-23.11 {TkpDrawMenuEntry - border - custom entry} unix {
  656.     catch {destroy .m1}
  657.     menu .m1
  658.     .m1 add command -label foo -activebackground green
  659.     set tearoff [tk::TearOffMenu .m1 40 40]
  660.     .m1 entryconfigure 1 -state active
  661.     list [update] [destroy .m1]
  662. } {{} {}}
  663. test unixMenu-23.12 {TkpDrawMenuEntry - border} unix {
  664.     catch {destroy .m1}
  665.     menu .m1
  666.     .m1 add command -label foo
  667.     set tearoff [tk::TearOffMenu .m1 40 40]
  668.     .m1 entryconfigure 1 -state active
  669.     list [update] [destroy .m1]
  670. } {{} {}}
  671. test unixMenu-23.13 {TkpDrawMenuEntry - active border - strict motif} unix {
  672.     catch {destroy .m1}
  673.     set tk_strictMotif 1
  674.     menu .m1
  675.     .m1 add command -label foo
  676.     set tearoff [tk::TearOffMenu .m1 40 40]
  677.     .m1 entryconfigure 1 -state active
  678.     list [update] [destroy .m1] [set tk_strictMotif 0]
  679. } {{} {} 0}
  680. test unixMenu-23.14 {TkpDrawMenuEntry - active border - custom entry} unix {
  681.     catch {destroy .m1}
  682.     menu .m1
  683.     .m1 add command -label foo -activeforeground yellow
  684.     set tearoff [tk::TearOffMenu .m1 40 40]
  685.     .m1 entryconfigure 1 -state active
  686.     list [update] [destroy .m1]
  687. } {{} {}}
  688. test unixMenu-23.15 {TkpDrawMenuEntry - active border} unix {
  689.     catch {destroy .m1}
  690.     menu .m1
  691.     .m1 add command -label foo
  692.     set tearoff [tk::TearOffMenu .m1 40 40]
  693.     .m1 entryconfigure 1 -state active
  694.     list [update] [destroy .m1]
  695. } {{} {}}
  696. test unixMenu-23.16 {TkpDrawMenuEntry - font - custom entry} unix {
  697.     catch {destroy .m1}
  698.     menu .m1
  699.     .m1 add command -label foo -font "Helvectica 72"
  700.     set tearoff [tk::TearOffMenu .m1 40 40]
  701.     list [update] [destroy .m1]
  702. } {{} {}}
  703. test unixMenu-23.17 {TkpDrawMenuEntry - font} unix {
  704.     catch {destroy .m1}
  705.     menu .m1 -font "Courier 72"
  706.     .m1 add command -label foo
  707.     set tearoff [tk::TearOffMenu .m1 40 40]
  708.     list [update] [destroy .m1]
  709. } {{} {}}
  710. test unixMenu-23.18 {TkpDrawMenuEntry - separator} unix {
  711.     catch {destroy .m1}
  712.     menu .m1
  713.     .m1 add separator
  714.     set tearoff [tk::TearOffMenu .m1 40 40]
  715.     list [update] [destroy .m1]
  716. } {{} {}}
  717. test unixMenu-23.19 {TkpDrawMenuEntry - standard} unix {
  718.     catch {destroy .mb}
  719.     menu .m1
  720.     .m1 add command -label foo
  721.     set tearoff [tk::TearOffMenu .m1 40 40]
  722.     list [update] [destroy .m1]
  723. } {{} {}}
  724. test unixMenu-23.20 {TkpDrawMenuEntry - disabled cascade item} unix {
  725.     catch {destroy .m1}
  726.     menu .m1
  727.     .m1 add cascade -label File -menu .m1.file
  728.     menu .m1.file
  729.     .m1.file add command -label foo
  730.     .m1 entryconfigure File -state disabled
  731.     set tearoff [tk::TearOffMenu .m1 40 40]
  732.     list [update] [destroy .m1]
  733. } {{} {}}
  734. test unixMenu-23.21 {TkpDrawMenuEntry - indicator} unix {
  735.     catch {destroy .m1}
  736.     menu .m1
  737.     .m1 add checkbutton -label Foo
  738.     .m1 invoke Foo
  739.     set tearoff [tk::TearOffMenu .m1 40 40]
  740.     list [update] [destroy .m1]
  741. } {{} {}}
  742. test unixMenu-23.22 {TkpDrawMenuEntry - hide margin} unix {
  743.     catch {destroy .m1}
  744.     menu .m1
  745.     .m1 add checkbutton -label Foo -hidemargin 1
  746.     .m1 invoke Foo
  747.     set tearoff [tk::TearOffMenu .m1 40 40]
  748.     list [update] [destroy .m1]
  749. } {{} {}}
  750. test unixMenu-24.1 {GetMenuLabelGeometry - image} {testImageType unix} {
  751.     catch {destroy .m1}
  752.     catch {image delete image1}
  753.     menu .m1
  754.     image create test image1
  755.     .m1 add command -image image1
  756.     list [update idletasks] [destroy .m1] [image delete image1]
  757. } {{} {} {}}
  758. test unixMenu-24.2 {GetMenuLabelGeometry - bitmap} unix {
  759.     catch {destroy .m1}
  760.     menu .m1
  761.     .m1 add command -bitmap questhead
  762.     list [update idletasks] [destroy .m1]
  763. } {{} {}}
  764. test unixMenu-24.3 {GetMenuLabelGeometry - no text} unix {
  765.     catch {destroy .m1}
  766.     menu .m1
  767.     .m1 add command
  768.     list [update idletasks] [destroy .m1]
  769. } {{} {}}
  770. test unixMenu-24.4 {GetMenuLabelGeometry - text} unix {
  771.     catch {destroy .m1}
  772.     menu .m1
  773.     .m1 add command -label "This is a test."
  774.     list [update idletasks] [destroy .m1]
  775. } {{} {}}
  776. test unixMenu-25.1 {TkpComputeStandardMenuGeometry - no entries} unix {
  777.     catch {destroy .m1}
  778.     menu .m1
  779.     list [update idletasks] [destroy .m1]
  780. } {{} {}}
  781. test unixMenu-25.2 {TkpComputeStandardMenuGeometry - one entry} unix {
  782.     catch {destroy .m1}
  783.     menu .m1
  784.     .m1 add command -label "one"
  785.     list [update idletasks] [destroy .m1]
  786. } {{} {}}
  787. test unixMenu-25.3 {TkpComputeStandardMenuGeometry - more than one entry} unix {
  788.     catch {destroy .m1}
  789.     menu .m1
  790.     .m1 add command -label "one"
  791.     .m1 add command -label "two"
  792.     list [update idletasks] [destroy .m1]
  793. } {{} {}}
  794. test unixMenu-25.4 {TkpComputeStandardMenuGeometry - separator} unix {
  795.     catch {destroy .m1}
  796.     menu .m1
  797.     .m1 add separator
  798.     list [update idletasks] [destroy .m1]
  799. } {{} {}}
  800. test unixMenu-25.5 {TkpComputeStandardMenuGeometry - tearoff entry} {unixOnly} {
  801.     catch {destroy .m1}
  802.     menubutton .mb -text "test" -menu .mb.m
  803.     menu .mb.m
  804.     .mb.m add command -label test
  805.     pack .mb
  806.     catch {tk::MbPost .mb}
  807.     list [update] [tk::MenuUnpost .mb.m] [destroy .mb]
  808. } {{} {} {}}
  809. test unixMenu-25.6 {TkpComputeStandardMenuGeometry - standard label geometry} unix {
  810.     catch {destroy .m1}
  811.     menu .m1
  812.     .m1 add command -label "test"
  813.     list [update idletasks] [destroy .m1]
  814. } {{} {}}
  815. test unixMenu-25.7 {TkpComputeStandardMenuGeometry - different font for entry} unix {
  816.     catch {destroy .m1}
  817.     menu .m1 -font "Helvetica 12"
  818.     .m1 add command -label "test" -font "Courier 12"
  819.     list [update idletasks] [destroy .m1]
  820. } {{} {}}
  821. test unixMenu-25.8 {TkpComputeStandardMenuGeometry - second entry larger} unix {
  822.     catch {destroy .m1}
  823.     menu .m1
  824.     .m1 add command -label "test"
  825.     .m1 add command -label "test test"
  826.     list [update idletasks] [destroy .m1]
  827. } {{} {}}
  828. test unixMenu-25.9 {TkpComputeStandardMenuGeometry - first entry larger} unix {
  829.     catch {destroy .m1}
  830.     menu .m1
  831.     .m1 add command -label "test test"
  832.     .m1 add command -label "test"
  833.     list [update idletasks] [destroy .m1]
  834. } {{} {}}
  835. test unixMenu-25.10 {TkpComputeStandardMenuGeometry - accelerator} unix {
  836.     catch {destroy .m1}
  837.     menu .m1
  838.     .m1 add command -label "test" -accel "Ctrl+S"
  839.     list [update idletasks] [destroy .m1]
  840. } {{} {}}
  841. test unixMenu-25.11 {TkpComputeStandardMenuGeometry - second accel larger} unix {
  842.     catch {destroy .m1}
  843.     menu .m1
  844.     .m1 add command -label "test" -accel "1"
  845.     .m1 add command -label "test" -accel "1 1"
  846.     list [update idletasks] [destroy .m1]
  847. } {{} {}}
  848. test unixMenu-25.12 {TkpComputeStandardMenuGeometry - second accel smaller} unix {
  849.     catch {destroy .m1}
  850.     menu .m1
  851.     .m1 add command -label "test" -accel "1 1"
  852.     .m1 add command -label "test" -accel "1"
  853.     list [update idletasks] [destroy .m1]
  854. } {{} {}}
  855. test unixMenu-25.13 {TkpComputeStandardMenuGeometry - indicator} unix {
  856.     catch {destroy .m1}
  857.     menu .m1
  858.     .m1 add checkbutton -label test
  859.     .m1 invoke 1
  860.     list [update idletasks] [destroy .m1]
  861. } {{} {}}
  862. test unixMenu-25.14 {TkpComputeStandardMenuGeometry - second indicator less or equal } {unix testImageType} {
  863.     catch {destroy .m1}
  864.     catch {image delete image1}
  865.     image create test image1
  866.     menu .m1
  867.     .m1 add checkbutton -image image1
  868.     .m1 invoke 1
  869.     .m1 add checkbutton -label test
  870.     .m1 invoke 2
  871.     list [update idletasks] [destroy .m1] [image delete image1]
  872. } {{} {} {}}
  873. test unixMenu-25.15 {TkpComputeStandardMenuGeometry - second indicator larger } {unixOnly testImageType} {
  874.     catch {destroy .m1}
  875.     catch {image delete image1}
  876.     image create test image1
  877.     menu .m1
  878.     .m1 add checkbutton -image image1
  879.     .m1 invoke 1
  880.     .m1 add checkbutton -label test
  881.     .m1 invoke 2
  882.     list [update idletasks] [destroy .m1] [image delete image1]
  883. } {{} {} {}}
  884. test unixMenu-25.16 {TkpComputeStandardMenuGeometry - zero sized menus} unix {
  885.     catch {destroy .m1}
  886.     menu .m1 -tearoff 0
  887.     list [update idletasks] [destroy .m1]
  888. } {{} {}}
  889. test unixMenu-25.17 {TkpComputeStandardMenuGeometry - first column bigger} unix {
  890.     catch {destroy .m1}
  891.     menu .m1
  892.     .m1 add command -label one
  893.     .m1 add command -label two
  894.     .m1 add command -label three -columnbreak 1
  895.     list [update idletasks] [destroy .m1]
  896. } {{} {}}
  897. test unixMenu-25.18 {TkpComputeStandardMenuGeometry - second column bigger} unix {
  898.     catch {destroy .m1}
  899.     menu .m1 -tearoff 0
  900.     .m1 add command -label one
  901.     .m1 add command -label two -columnbreak 1
  902.     .m1 add command -label three
  903.     list [update idletasks] [destroy .m1]
  904. } {{} {}}
  905. test unixMenu-25.19 {TkpComputeStandardMenuGeometry - three columns} unix {
  906.     catch {destroy .m1}
  907.     menu .m1 -tearoff 0
  908.     .m1 add command -label one
  909.     .m1 add command -label two -columnbreak 1
  910.     .m1 add command -label three
  911.     .m1 add command -label four
  912.     .m1 add command -label five -columnbreak 1
  913.     .m1 add command -label six
  914.     list [update idletasks] [destroy .m1]    
  915. } {{} {}}
  916. test unixMenu-25.20 {TkpComputeStandardMenuGeometry - hide margin} unix {
  917.     catch {destroy .m1}
  918.     menu .m1 -tearoff 0
  919.     .m1 add checkbutton -label one -hidemargin 1
  920.     list [update idletasks] [destroy .m1]
  921. } {{} {}}
  922. test unixMenu-26.1 {TkpMenuInit - nothing to do} {} {}
  923. # cleanup
  924. deleteWindows
  925. ::tcltest::cleanupTests
  926. return