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

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out Tk's "raise" and
  2. # "lower" commands, plus associated code to manage window
  3. # stacking order.  It is organized in the standard fashion
  4. # for Tcl tests.
  5. #
  6. # Copyright (c) 1993-1994 The Regents of the University of California.
  7. # Copyright (c) 1994 Sun Microsystems, Inc.
  8. # Copyright (c) 1998-1999 by Scriptics Corporation.
  9. # All rights reserved.
  10. #
  11. # RCS: @(#) $Id: raise.test,v 1.7 2002/07/13 20:28:35 dgp Exp $
  12. package require tcltest 2.1
  13. namespace import -force tcltest::configure
  14. namespace import -force tcltest::testsDirectory
  15. configure -testdir [file join [pwd] [file dirname [info script]]]
  16. configure -loadfile [file join [testsDirectory] constraints.tcl]
  17. tcltest::loadTestedCommands
  18. testConstraint testmakeexist [llength [info commands testmakeexist]]
  19. # Procedure to create a bunch of overlapping windows, which should
  20. # make it easy to detect differences in order.
  21. proc raise_setup {} {
  22.     foreach i [winfo child .raise] {
  23. destroy $i
  24.     }
  25.     foreach i {a b c d e} {
  26. label .raise.$i -text $i -relief raised -bd 2
  27.     }
  28.     place .raise.a -x 20 -y 60 -width 60 -height 80
  29.     place .raise.b -x 60 -y 60 -width 60 -height 80
  30.     place .raise.c -x 100 -y 60 -width 60 -height 80
  31.     place .raise.d -x 40 -y 20 -width 100 -height 60
  32.     place .raise.e -x 40 -y 120 -width 100 -height 60
  33. }
  34. # Procedure to return information about which windows are on top
  35. # of which other windows.
  36. proc raise_getOrder {} {
  37.     set x [winfo rootx .raise]
  38.     set y [winfo rooty .raise]
  39.     list [winfo name [winfo containing [expr $x+50] [expr $y+70]]] 
  40.     [winfo name [winfo containing [expr $x+90] [expr $y+70]]] 
  41.     [winfo name [winfo containing [expr $x+130] [expr $y+70]]] 
  42.     [winfo name [winfo containing [expr $x+70] [expr $y+100]]] 
  43.     [winfo name [winfo containing [expr $x+110] [expr $y+100]]] 
  44.     [winfo name [winfo containing [expr $x+50] [expr $y+130]]] 
  45.     [winfo name [winfo containing [expr $x+90] [expr $y+130]]] 
  46.     [winfo name [winfo containing [expr $x+130] [expr $y+130]]]
  47. }
  48. # Procedure to set up a collection of top-level windows
  49. proc raise_makeToplevels {} {
  50.     deleteWindows
  51.     foreach i {.raise1 .raise2 .raise3} {
  52. toplevel $i
  53. wm geom $i 150x100+0+0
  54. update
  55.     }
  56. }
  57. toplevel .raise
  58. wm geom .raise 250x200+0+0
  59. test raise-1.1 {preserve creation order} {
  60.     raise_setup
  61.     tkwait visibility .raise.e
  62.     raise_getOrder
  63. } {d d d b c e e e}
  64. test raise-1.2 {preserve creation order} testmakeexist {
  65.     raise_setup
  66.     testmakeexist .raise.a
  67.     update
  68.     raise_getOrder
  69. } {d d d b c e e e}
  70. test raise-1.3 {preserve creation order} testmakeexist {
  71.     raise_setup
  72.     testmakeexist .raise.c
  73.     update
  74.     raise_getOrder
  75. } {d d d b c e e e}
  76. test raise-1.4 {preserve creation order} testmakeexist {
  77.     raise_setup
  78.     testmakeexist .raise.e
  79.     update
  80.     raise_getOrder
  81. } {d d d b c e e e}
  82. test raise-1.5 {preserve creation order} testmakeexist {
  83.     raise_setup
  84.     testmakeexist .raise.d .raise.c .raise.b
  85.     update
  86.     raise_getOrder
  87. } {d d d b c e e e}
  88. test raise-2.1 {raise internal windows before creation} {
  89.     raise_setup
  90.     raise .raise.a
  91.     update
  92.     raise_getOrder
  93. } {a d d a c a e e}
  94. test raise-2.2 {raise internal windows before creation} {
  95.     raise_setup
  96.     raise .raise.c
  97.     update
  98.     raise_getOrder
  99. } {d d c b c e e c}
  100. test raise-2.3 {raise internal windows before creation} {
  101.     raise_setup
  102.     raise .raise.e
  103.     update
  104.     raise_getOrder
  105. } {d d d b c e e e}
  106. test raise-2.4 {raise internal windows before creation} {
  107.     raise_setup
  108.     raise .raise.e .raise.a
  109.     update
  110.     raise_getOrder
  111. } {d d d b c e b c}
  112. test raise-2.5 {raise internal windows before creation} {
  113.     raise_setup
  114.     raise .raise.a .raise.d
  115.     update
  116.     raise_getOrder
  117. } {a d d a c e e e}
  118. test raise-3.1 {raise internal windows after creation} {
  119.     raise_setup
  120.     update
  121.     raise .raise.a .raise.d
  122.     raise_getOrder
  123. } {a d d a c e e e}
  124. test raise-3.2 {raise internal windows after creation} testmakeexist {
  125.     raise_setup
  126.     testmakeexist .raise.a .raise.b
  127.     raise .raise.a .raise.b
  128.     update
  129.     raise_getOrder
  130. } {d d d a c e e e}
  131. test raise-3.3 {raise internal windows after creation} testmakeexist {
  132.     raise_setup
  133.     testmakeexist .raise.a .raise.d
  134.     raise .raise.a .raise.b
  135.     update
  136.     raise_getOrder
  137. } {d d d a c e e e}
  138. test raise-3.4 {raise internal windows after creation} testmakeexist {
  139.     raise_setup
  140.     testmakeexist .raise.a .raise.c .raise.d
  141.     raise .raise.a .raise.b
  142.     update
  143.     raise_getOrder
  144. } {d d d a c e e e}
  145. test raise-4.1 {raise relative to nephews} {
  146.     raise_setup
  147.     update
  148.     frame .raise.d.child
  149.     raise .raise.a .raise.d.child
  150.     raise_getOrder
  151. } {a d d a c e e e}
  152. test raise-4.2 {raise relative to nephews} {
  153.     raise_setup
  154.     update
  155.     frame .raise2
  156.     list [catch {raise .raise.a .raise2} msg] $msg
  157. } {1 {can't raise ".raise.a" above ".raise2"}}
  158. catch {destroy .raise2}
  159. test raise-5.1 {lower internal windows} {
  160.     raise_setup
  161.     update
  162.     lower .raise.d
  163.     raise_getOrder
  164. } {a b c b c e e e}
  165. test raise-5.2 {lower internal windows} {
  166.     raise_setup
  167.     update
  168.     lower .raise.d .raise.b
  169.     raise_getOrder
  170. } {d b c b c e e e}
  171. test raise-5.3 {lower internal windows} {
  172.     raise_setup
  173.     update
  174.     lower .raise.a .raise.e
  175.     raise_getOrder
  176. } {a d d a c e e e}
  177. test raise-5.4 {lower internal windows} {
  178.     raise_setup
  179.     update
  180.     frame .raise2
  181.     list [catch {lower .raise.a .raise2} msg] $msg
  182. } {1 {can't lower ".raise.a" below ".raise2"}}
  183. catch {destroy .raise2}
  184. test raise-6.1 {raise/lower toplevel windows} {nonPortable} {
  185.     raise_makeToplevels
  186.     update
  187.     raise .raise1
  188.     winfo containing [winfo rootx .raise1] [winfo rooty .raise1]
  189. } .raise1
  190. test raise-6.2 {raise/lower toplevel windows} {nonPortable} {
  191.     raise_makeToplevels
  192.     update
  193.     raise .raise2
  194.     winfo containing [winfo rootx .raise1] [winfo rooty .raise1]
  195. } .raise2
  196. test raise-6.3 {raise/lower toplevel windows} {nonPortable} {
  197.     raise_makeToplevels
  198.     update
  199.     raise .raise3
  200.     raise .raise2
  201.     raise .raise1 .raise3
  202.     set result [winfo containing [winfo rootx .raise1] 
  203.     [winfo rooty .raise1]]
  204.     destroy .raise2
  205.     update
  206.     after 500
  207.     list $result [winfo containing [winfo rootx .raise1] 
  208.     [winfo rooty .raise1]]
  209. } {.raise2 .raise1}
  210. test raise-6.4 {raise/lower toplevel windows} {nonPortable} {
  211.     raise_makeToplevels
  212.     update
  213.     raise .raise2
  214.     raise .raise1
  215.     lower .raise3 .raise1
  216.     set result [winfo containing [winfo rootx .raise1] 
  217.     [winfo rooty .raise1]]
  218.     wm geometry .raise2 +30+30
  219.     wm geometry .raise1 +60+60
  220.     destroy .raise1
  221.     update
  222.     after 500
  223.     list $result [winfo containing [winfo rootx .raise2] 
  224.     [winfo rooty .raise2]]
  225. } {.raise1 .raise3}
  226. test raise-6.5 {raise/lower toplevel windows} {nonPortable} {
  227.     raise_makeToplevels
  228.     raise .raise1
  229.     set time [lindex [time {raise .raise1}] 0]
  230.     expr {$time < 2000000}
  231. } 1
  232. test raise-6.6 {raise/lower toplevel windows} {nonPortable} {
  233.     raise_makeToplevels
  234.     update
  235.     raise .raise2
  236.     raise .raise1
  237.     raise .raise3
  238.     frame .raise1.f1
  239.     frame .raise1.f1.f2
  240.     lower .raise3 .raise1.f1.f2
  241.     set result [winfo containing [winfo rootx .raise1] 
  242.     [winfo rooty .raise1]]
  243.     destroy .raise1
  244.     update
  245.     after 500
  246.     list $result [winfo containing [winfo rootx .raise2] 
  247.     [winfo rooty .raise2]]
  248. } {.raise1 .raise3}
  249. test raise-7.1 {errors in raise/lower commands} {
  250.     list [catch {raise} msg] $msg
  251. } {1 {wrong # args: should be "raise window ?aboveThis?"}}
  252. test raise-7.2 {errors in raise/lower commands} {
  253.     list [catch {raise a b c} msg] $msg
  254. } {1 {wrong # args: should be "raise window ?aboveThis?"}}
  255. test raise-7.3 {errors in raise/lower commands} {
  256.     list [catch {raise badName} msg] $msg
  257. } {1 {bad window path name "badName"}}
  258. test raise-7.4 {errors in raise/lower commands} {
  259.     list [catch {raise . badName2} msg] $msg
  260. } {1 {bad window path name "badName2"}}
  261. test raise-7.5 {errors in raise/lower commands} {
  262.     list [catch {lower} msg] $msg
  263. } {1 {wrong # args: should be "lower window ?belowThis?"}}
  264. test raise-7.6 {errors in raise/lower commands} {
  265.     list [catch {lower a b c} msg] $msg
  266. } {1 {wrong # args: should be "lower window ?belowThis?"}}
  267. test raise-7.7 {errors in raise/lower commands} {
  268.     list [catch {lower badName3} msg] $msg
  269. } {1 {bad window path name "badName3"}}
  270. test raise-7.8 {errors in raise/lower commands} {
  271.     list [catch {lower . badName4} msg] $msg
  272. } {1 {bad window path name "badName4"}}
  273. deleteWindows
  274. # cleanup
  275. ::tcltest::cleanupTests
  276. return