- #!/usr/local/bin/wish -f
- #
- # This script displays provides visual tests for many of Tk's features.
- # Each test displays a window with various information in it, along
- # with instructions about how the window should appear. You can look
- # at the window to make sure it appears as expected. Individual tests
- # are kept in separate ".tcl" files in this directory.
- #
- # RCS: @(#) $Id: visual_bb.test,v 1.7 2002/07/14 18:31:48 dgp Exp $
- package require tcltest 2.1
- namespace import -force tcltest::configure
- namespace import -force tcltest::testsDirectory
- configure -testdir [file join [pwd] [file dirname [info script]]]
- configure -loadfile [file join [testsDirectory] constraints.tcl]
- tcltest::loadTestedCommands
- namespace import -force tcltest::cleanupTests
- set auto_path ". $auto_path"
- wm title . "Visual Tests for Tk"
- set testNum 1
- # Each menu entry invokes a visual test file
- proc runTest {file} {
- global testNum
- test "2.$testNum" "testing $file" {userInteraction} {
- uplevel #0 source [file join [testsDirectory] $file]
- concat ""
- } {}
- incr testNum
- }
- # The following procedure is invoked to print the contents of a canvas:
- proc lpr {c args} {
- exec lpr <<[eval [list $c postscript] $args]
- }
- proc end {} {
- cleanupTests
- set ::EndOfVisualTests 1
- }
- test 1.1 "running visual tests" {userInteraction} {
- #-------------------------------------------------------
- # The code below create the main window, consisting of a
- # menu bar and a message explaining the basic operation
- # of the program.
- #-------------------------------------------------------
- frame .menu -relief raised -borderwidth 1
- message .msg -font {Times 18} -relief raised -width 4i
- -borderwidth 1 -text "This application provides a collection of visual tests for the Tk toolkit. Each menu entry invokes a test, which displays information on the screen. You can then verify visually that the information is being displayed in the correct way. The tests under the "Postscript" menu exercise the Postscript-generation capabilities of canvas widgets."
- pack .menu -side top -fill x
- pack .msg -side bottom -expand yes -fill both
- #-------------------------------------------------------
- # The code below creates all the menus, which invoke procedures
- # to create particular demonstrations of various widgets.
- #-------------------------------------------------------
- menubutton .menu.file -text "File" -menu .menu.file.m
- menu .menu.file.m
- .menu.file.m add command -label "Quit" -command end
- menubutton .menu.group1 -text "Group 1" -menu .menu.group1.m
- menu .menu.group1.m
- .menu.group1.m add command -label "Canvas arcs" -command {runTest arc.tcl}
- .menu.group1.m add command -label "Beveled borders in text widgets"
- -command {runTest bevel.tcl}
- .menu.group1.m add command -label "Colormap management"
- -command {runTest cmap.tcl}
- .menu.group1.m add command -label "Label/button geometry"
- -command {runTest butGeom.tcl}
- .menu.group1.m add command -label "Label/button colors"
- -command {runTest butGeom2.tcl}
- menubutton .menu.ps -text "Canvas Postscript" -menu .menu.ps.m
- menu .menu.ps.m
- .menu.ps.m add command -label "Rectangles and other graphics"
- -command {runTest canvPsGrph.tcl}
- .menu.ps.m add command -label "Text"
- -command {runTest canvPsText.tcl}
- .menu.ps.m add command -label "Bitmaps"
- -command {runTest canvPsBmap.tcl}
- .menu.ps.m add command -label "Images"
- -command {runTest canvPsImg.tcl}
- .menu.ps.m add command -label "Arcs"
- -command {runTest canvPsArc.tcl}
- pack .menu.file .menu.group1 .menu.ps -side left -padx 1m
- # Set up for keyboard-based menu traversal
- bind . <Any-FocusIn> {
- if {("%d" == "NotifyVirtual") && ("%m" == "NotifyNormal")} {
- focus .menu
- }
- }
- tk_menuBar .menu .menu.file .menu.group1 .menu.ps
- # Set up a class binding to allow objects to be deleted from a canvas
- # by clicking with mouse button 1:
- bind Canvas <1> {%W delete [%W find closest %x %y]}
- concat ""
- } {}
- if {![testConstraint userInteraction]} {
- cleanupTests
- } else {
- vwait EndOfVisualTests
- }