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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the features of the script
  2. # file focus.tcl, which includes the procedures tk_focusNext and
  3. # tk_focusPrev, among other things.  This file is organized in the
  4. # standard fashion for Tcl tests.
  5. #
  6. # Copyright (c) 1995 Sun Microsystems, Inc.
  7. # Copyright (c) 1998-1999 by Scriptics Corporation.
  8. # All rights reserved.
  9. #
  10. # RCS: @(#) $Id: focusTcl.test,v 1.5.2.1 2003/10/29 01:08:19 hobbs 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. proc setup1 w {
  18.     if {$w == "."} {
  19. set w ""
  20.     }
  21.     foreach i {a b c d} {
  22. frame  $w.$i -width 200 -height 50 -bd 2 -relief raised
  23. pack $w.$i
  24.     }
  25.     .b configure -width 0 -height 0
  26.     foreach i {x y z} {
  27. button $w.b.$i -text "Button $w.b.$i"
  28. pack $w.b.$i -side left
  29.     }
  30.     if {![winfo ismapped $w.b.z]} {
  31. tkwait visibility $w.b.z
  32.     }
  33. }
  34. option add *takeFocus 1
  35. option add *highlightThickness 2
  36. . configure -takefocus 1 -highlightthickness 2
  37. test focusTcl-1.1 {tk_focusNext procedure, no children} {
  38.     tk_focusNext .
  39. } {.}
  40. setup1 .
  41. test focusTcl-1.2 {tk_focusNext procedure, basic tree traversal} {
  42.     tk_focusNext .
  43. } {.a}
  44. test focusTcl-1.3 {tk_focusNext procedure, basic tree traversal} {
  45.     tk_focusNext .a
  46. } {.b}
  47. test focusTcl-1.4 {tk_focusNext procedure, basic tree traversal} {
  48.     tk_focusNext .b
  49. } {.b.x}
  50. test focusTcl-1.5 {tk_focusNext procedure, basic tree traversal} {
  51.     tk_focusNext .b.x
  52. } {.b.y}
  53. test focusTcl-1.6 {tk_focusNext procedure, basic tree traversal} {
  54.     tk_focusNext .b.y
  55. } {.b.z}
  56. test focusTcl-1.7 {tk_focusNext procedure, basic tree traversal} {
  57.     tk_focusNext .b.z
  58. } {.c}
  59. test focusTcl-1.8 {tk_focusNext procedure, basic tree traversal} {
  60.     tk_focusNext .c
  61. } {.d}
  62. test focusTcl-1.9 {tk_focusNext procedure, basic tree traversal} {
  63.     tk_focusNext .d
  64. } {.}
  65. foreach w {.b .b.x .b.y .c .d} {
  66.     $w configure -takefocus 0
  67. }
  68. test focusTcl-1.10 {tk_focusNext procedure, basic tree traversal} {
  69.     tk_focusNext .a
  70. } {.b.z}
  71. test focusTcl-1.11 {tk_focusNext procedure, basic tree traversal} {
  72.     tk_focusNext .b.z
  73. } {.}
  74. test focusTcl-1.12 {tk_focusNext procedure, basic tree traversal} {
  75.     deleteWindows
  76.     setup1 .
  77.     update
  78.     . configure -takefocus 0
  79.     tk_focusNext .d
  80. } {.a}
  81. . configure -takefocus 1
  82. deleteWindows
  83. setup1 .
  84. toplevel .t
  85. wm geom .t +0+0
  86. toplevel .t2
  87. wm geom .t2 -0+0
  88. raise .t .a
  89. test focusTcl-2.1 {tk_focusNext procedure, toplevels} {
  90.     tk_focusNext .a
  91. } {.b}
  92. test focusTcl-2.2 {tk_focusNext procedure, toplevels} {
  93.     tk_focusNext .d
  94. } {.}
  95. test focusTcl-2.3 {tk_focusNext procedure, toplevels} {
  96.     tk_focusNext .t
  97. } {.t}
  98. setup1 .t
  99. raise .t.b
  100. test focusTcl-2.4 {tk_focusNext procedure, toplevels} {
  101.     tk_focusNext .t
  102. } {.t.a}
  103. test focusTcl-2.5 {tk_focusNext procedure, toplevels} {
  104.     tk_focusNext .t.b.z
  105. } {.t}
  106. deleteWindows
  107. test focusTcl-3.1 {tk_focusPrev procedure, no children} {
  108.     tk_focusPrev .
  109. } {.}
  110. setup1 .
  111. test focusTcl-3.2 {tk_focusPrev procedure, basic tree traversal} {
  112.     tk_focusPrev .
  113. } {.d}
  114. test focusTcl-3.3 {tk_focusPrev procedure, basic tree traversal} {
  115.     tk_focusPrev .d
  116. } {.c}
  117. test focusTcl-3.4 {tk_focusPrev procedure, basic tree traversal} {
  118.     tk_focusPrev .c
  119. } {.b.z}
  120. test focusTcl-3.5 {tk_focusPrev procedure, basic tree traversal} {
  121.     tk_focusPrev .b.z
  122. } {.b.y}
  123. test focusTcl-3.6 {tk_focusPrev procedure, basic tree traversal} {
  124.     tk_focusPrev .b.y
  125. } {.b.x}
  126. test focusTcl-3.7 {tk_focusPrev procedure, basic tree traversal} {
  127.     tk_focusPrev .b.x
  128. } {.b}
  129. test focusTcl-3.8 {tk_focusPrev procedure, basic tree traversal} {
  130.     tk_focusPrev .b
  131. } {.a}
  132. test focusTcl-3.9 {tk_focusPrev procedure, basic tree traversal} {
  133.     tk_focusPrev .a
  134. } {.}
  135. deleteWindows
  136. setup1 .
  137. toplevel .t
  138. wm geom .t +0+0
  139. toplevel .t2
  140. wm geom .t2 -0+0
  141. raise .t .a
  142. test focusTcl-4.1 {tk_focusPrev procedure, toplevels} {
  143.     tk_focusPrev .
  144. } {.d}
  145. test focusTcl-4.2 {tk_focusPrev procedure, toplevels} {
  146.     tk_focusPrev .b
  147. } {.a}
  148. test focusTcl-4.3 {tk_focusPrev procedure, toplevels} {
  149.     tk_focusPrev .t
  150. } {.t}
  151. setup1 .t
  152. update
  153. .t configure -takefocus 0
  154. raise .t.b
  155. test focusTcl-4.4 {tk_focusPrev procedure, toplevels} {
  156.     tk_focusPrev .t
  157. } {.t.b.z}
  158. test focusTcl-4.5 {tk_focusPrev procedure, toplevels} {
  159.     tk_focusPrev .t.a
  160. } {.t.b.z}
  161. deleteWindows
  162. test focusTcl-5.1 {tkFocusOK procedure, -takefocus 0} {
  163.     deleteWindows
  164.     setup1 .
  165.     .b.x configure -takefocus 0
  166.     tk_focusNext .b
  167. } {.b.y}
  168. test focusTcl-5.2 {tkFocusOK procedure, -takefocus 1} {
  169.     deleteWindows
  170.     setup1 .
  171.     pack forget .b
  172.     update
  173.     .b configure -takefocus ""
  174.     .b.y configure -takefocus ""
  175.     .b.z configure -takefocus ""
  176.     list [tk_focusNext .a] [tk_focusNext .b.x]
  177. } {.c .c}
  178. test focusTcl-5.3 {tkFocusOK procedure, -takefocus procedure} {
  179.     proc t w {
  180. if {$w == ".b.x"} {
  181.     return 1
  182. } elseif {$w == ".b.y"} {
  183.     return ""
  184. }
  185. return 0
  186.     }
  187.     deleteWindows
  188.     setup1 .
  189.     pack forget .b.y
  190.     update
  191.     .b configure -takefocus ""
  192.     foreach w {.b.x .b.y .b.z .c} {
  193. $w configure -takefocus t
  194.     }
  195.     list [tk_focusNext .a] [tk_focusNext .b.x]
  196. } {.b.x .d}
  197. test focusTcl-5.4 {tkFocusOK procedure, -takefocus ""} {
  198.     deleteWindows
  199.     setup1 .
  200.     .b.x configure -takefocus ""
  201.     update
  202.     tk_focusNext .b
  203. } {.b.x}
  204. test focusTcl-5.5 {tkFocusOK procedure, -takefocus "", not mapped} {
  205.     deleteWindows
  206.     setup1 .
  207.     .b.x configure -takefocus ""
  208.     pack unpack .b.x
  209.     update
  210.     tk_focusNext .b
  211. } {.b.y}
  212. test focusTcl-5.6 {tkFocusOK procedure, -takefocus "", not mapped} {
  213.     deleteWindows
  214.     setup1 .
  215.     foreach w {.b.x .b.y .b.z} {
  216. $w configure -takefocus ""
  217.     }
  218.     pack unpack .b
  219.     update
  220.     tk_focusNext .b
  221. } {.c}
  222. test focusTcl-5.7 {tkFocusOK procedure, -takefocus "", not mapped} {
  223.     deleteWindows
  224.     setup1 .
  225.     .b.y configure -takefocus 1
  226.     pack unpack .b.y
  227.     update
  228.     tk_focusNext .b.x
  229. } {.b.z}
  230. test focusTcl-5.8 {tkFocusOK procedure, -takefocus "", not mapped} {
  231.     proc always args {return 1}
  232.     deleteWindows
  233.     setup1 .
  234.     .b.y configure -takefocus always
  235.     pack unpack .b.y
  236.     update
  237.     tk_focusNext .b.x
  238. } {.b.y}
  239. test focusTcl-5.9 {tkFocusOK procedure, -takefocus "", window disabled} {
  240.     deleteWindows
  241.     setup1 .
  242.     foreach w {.b.x .b.y .b.z} {
  243. $w configure -takefocus ""
  244.     }
  245.     update
  246.     .b.x configure -state disabled
  247.     tk_focusNext .b
  248. } {.b.y}
  249. test focusTcl-5.10 {tkFocusOK procedure, -takefocus "", check for bindings} {
  250.     deleteWindows
  251.     setup1 .
  252.     foreach w {.a .b .c .d} {
  253. $w configure -takefocus ""
  254.     }
  255.     update
  256.     bind .a <Key> {foo}
  257.     list [tk_focusNext .] [tk_focusNext .a]
  258. } {.a .b.x}
  259. test focusTcl-5.11 {tkFocusOK procedure, -takefocus "", check for bindings} {
  260.     deleteWindows
  261.     setup1 .
  262.     foreach w {.a .b .c .d} {
  263. $w configure -takefocus ""
  264.     }
  265.     update
  266.     bind Frame <Key> {foo}
  267.     list [tk_focusNext .] [tk_focusNext .a]
  268. } {.a .b}
  269. bind Frame <Key> {}
  270. . configure -takefocus 0 -highlightthickness 0
  271. option clear
  272. # cleanup
  273. ::tcltest::cleanupTests
  274. return