# This file is a Tcl script to test out the procedures in the file
|
# This file is a Tcl script to test out the procedures in the file
|
# tkUnixEmbed.c. It is organized in the standard fashion for Tcl
|
# tkUnixEmbed.c. It is organized in the standard fashion for Tcl
|
# tests.
|
# tests.
|
#
|
#
|
# Copyright (c) 1996-1997 Sun Microsystems, Inc.
|
# Copyright (c) 1996-1997 Sun Microsystems, Inc.
|
#
|
#
|
# See the file "license.terms" for information on usage and redistribution
|
# See the file "license.terms" for information on usage and redistribution
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
#
|
#
|
# RCS: @(#) $Id: unixEmbed.test,v 1.1.1.1 2002-01-16 10:26:00 markom Exp $
|
# RCS: @(#) $Id: unixEmbed.test,v 1.1.1.1 2002-01-16 10:26:00 markom Exp $
|
|
|
if {$tcl_platform(platform) != "unix"} {
|
if {$tcl_platform(platform) != "unix"} {
|
return
|
return
|
}
|
}
|
|
|
if {[info procs test] != "test"} {
|
if {[info procs test] != "test"} {
|
source defs
|
source defs
|
}
|
}
|
|
|
eval destroy [winfo children .]
|
eval destroy [winfo children .]
|
wm geometry . {}
|
wm geometry . {}
|
raise .
|
raise .
|
|
|
setupbg
|
setupbg
|
dobg {wm withdraw .}
|
dobg {wm withdraw .}
|
|
|
# eatColors --
|
# eatColors --
|
# Creates a toplevel window and allocates enough colors in it to
|
# Creates a toplevel window and allocates enough colors in it to
|
# use up all the slots in the colormap.
|
# use up all the slots in the colormap.
|
#
|
#
|
# Arguments:
|
# Arguments:
|
# w - Name of toplevel window to create.
|
# w - Name of toplevel window to create.
|
|
|
proc eatColors {w} {
|
proc eatColors {w} {
|
catch {destroy $w}
|
catch {destroy $w}
|
toplevel $w
|
toplevel $w
|
wm geom $w +0+0
|
wm geom $w +0+0
|
canvas $w.c -width 400 -height 200 -bd 0
|
canvas $w.c -width 400 -height 200 -bd 0
|
pack $w.c
|
pack $w.c
|
for {set y 0} {$y < 8} {incr y} {
|
for {set y 0} {$y < 8} {incr y} {
|
for {set x 0} {$x < 40} {incr x} {
|
for {set x 0} {$x < 40} {incr x} {
|
set color [format #%02x%02x%02x [expr $x*6] [expr $y*30] 0]
|
set color [format #%02x%02x%02x [expr $x*6] [expr $y*30] 0]
|
$w.c create rectangle [expr 10*$x] [expr 20*$y] \
|
$w.c create rectangle [expr 10*$x] [expr 20*$y] \
|
[expr 10*$x + 10] [expr 20*$y + 20] -outline {} \
|
[expr 10*$x + 10] [expr 20*$y + 20] -outline {} \
|
-fill $color
|
-fill $color
|
}
|
}
|
}
|
}
|
update
|
update
|
}
|
}
|
|
|
# colorsFree --
|
# colorsFree --
|
#
|
#
|
# Returns 1 if there appear to be free colormap entries in a window,
|
# Returns 1 if there appear to be free colormap entries in a window,
|
# 0 otherwise.
|
# 0 otherwise.
|
#
|
#
|
# Arguments:
|
# Arguments:
|
# w - Name of window in which to check.
|
# w - Name of window in which to check.
|
# red, green, blue - Intensities to use in a trial color allocation
|
# red, green, blue - Intensities to use in a trial color allocation
|
# to see if there are colormap entries free.
|
# to see if there are colormap entries free.
|
|
|
proc colorsFree {w {red 31} {green 245} {blue 192}} {
|
proc colorsFree {w {red 31} {green 245} {blue 192}} {
|
set vals [winfo rgb $w [format #%02x%02x%02x $red $green $blue]]
|
set vals [winfo rgb $w [format #%02x%02x%02x $red $green $blue]]
|
expr ([lindex $vals 0]/256 == $red) && ([lindex $vals 1]/256 == $green) \
|
expr ([lindex $vals 0]/256 == $red) && ([lindex $vals 1]/256 == $green) \
|
&& ([lindex $vals 2]/256 == $blue)
|
&& ([lindex $vals 2]/256 == $blue)
|
}
|
}
|
|
|
test unixEmbed-1.1 {TkpUseWindow procedure, bad window identifier} {
|
test unixEmbed-1.1 {TkpUseWindow procedure, bad window identifier} {
|
catch {destroy .t}
|
catch {destroy .t}
|
list [catch {toplevel .t -use xyz} msg] $msg
|
list [catch {toplevel .t -use xyz} msg] $msg
|
} {1 {expected integer but got "xyz"}}
|
} {1 {expected integer but got "xyz"}}
|
test unixEmbed-1.2 {TkpUseWindow procedure, bad window identifier} {
|
test unixEmbed-1.2 {TkpUseWindow procedure, bad window identifier} {
|
catch {destroy .t}
|
catch {destroy .t}
|
list [catch {toplevel .t -use 47} msg] $msg
|
list [catch {toplevel .t -use 47} msg] $msg
|
} {1 {couldn't create child of window "47"}}
|
} {1 {couldn't create child of window "47"}}
|
test unixEmbed-1.3 {TkpUseWindow procedure, inheriting colormap} {
|
test unixEmbed-1.3 {TkpUseWindow procedure, inheriting colormap} {
|
catch {destroy .t}
|
catch {destroy .t}
|
catch {destroy .x}
|
catch {destroy .x}
|
toplevel .t -colormap new
|
toplevel .t -colormap new
|
wm geometry .t +0+0
|
wm geometry .t +0+0
|
eatColors .t.t
|
eatColors .t.t
|
frame .t.f -container 1
|
frame .t.f -container 1
|
toplevel .x -use [winfo id .t.f]
|
toplevel .x -use [winfo id .t.f]
|
set result [colorsFree .x]
|
set result [colorsFree .x]
|
destroy .t
|
destroy .t
|
set result
|
set result
|
} {0}
|
} {0}
|
test unixEmbed-1.4 {TkpUseWindow procedure, inheriting colormap} {
|
test unixEmbed-1.4 {TkpUseWindow procedure, inheriting colormap} {
|
catch {destroy .t}
|
catch {destroy .t}
|
catch {destroy .t2}
|
catch {destroy .t2}
|
catch {destroy .x}
|
catch {destroy .x}
|
toplevel .t -container 1 -colormap new
|
toplevel .t -container 1 -colormap new
|
wm geometry .t +0+0
|
wm geometry .t +0+0
|
eatColors .t2
|
eatColors .t2
|
toplevel .x -use [winfo id .t]
|
toplevel .x -use [winfo id .t]
|
set result [colorsFree .x]
|
set result [colorsFree .x]
|
destroy .t
|
destroy .t
|
set result
|
set result
|
} {1}
|
} {1}
|
|
|
if {[string compare testembed [info commands testembed]] != 0} {
|
if {[string compare testembed [info commands testembed]] != 0} {
|
puts "This application hasn't been compiled with the testembed command,"
|
puts "This application hasn't been compiled with the testembed command,"
|
puts "therefore I am skipping all of these tests."
|
puts "therefore I am skipping all of these tests."
|
return
|
return
|
}
|
}
|
|
|
test unixEmbed-1.5 {TkpUseWindow procedure, creating Container records} {
|
test unixEmbed-1.5 {TkpUseWindow procedure, creating Container records} {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
pack .f1 .f2
|
pack .f1 .f2
|
dobg "set w [winfo id .f1]"
|
dobg "set w [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t -use $w
|
toplevel .t -use $w
|
list [testembed] [expr [lindex [lindex [testembed all] 0] 0] - $w]
|
list [testembed] [expr [lindex [lindex [testembed all] 0] 0] - $w]
|
}
|
}
|
} {{{XXX {} {} .t}} 0}
|
} {{{XXX {} {} .t}} 0}
|
test unixEmbed-1.6 {TkpUseWindow procedure, creating Container records} {
|
test unixEmbed-1.6 {TkpUseWindow procedure, creating Container records} {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
pack .f1 .f2
|
pack .f1 .f2
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w2 [winfo id .f2]"
|
dobg "set w2 [winfo id .f2]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
toplevel .t2 -use $w2
|
toplevel .t2 -use $w2
|
testembed
|
testembed
|
}
|
}
|
} {{XXX {} {} .t2} {XXX {} {} .t1}}
|
} {{XXX {} {} .t2} {XXX {} {} .t1}}
|
test unixEmbed-1.7 {TkpUseWindow procedure, container and embedded in same app} {
|
test unixEmbed-1.7 {TkpUseWindow procedure, container and embedded in same app} {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
pack .f1 .f2
|
pack .f1 .f2
|
toplevel .t1 -use [winfo id .f1]
|
toplevel .t1 -use [winfo id .f1]
|
toplevel .t2 -use [winfo id .f2]
|
toplevel .t2 -use [winfo id .f2]
|
testembed
|
testembed
|
} {{XXX .f2 {} .t2} {XXX .f1 {} .t1}}
|
} {{XXX .f2 {} .t2} {XXX .f1 {} .t1}}
|
|
|
# Can't think of any way to test the procedures TkpMakeWindow,
|
# Can't think of any way to test the procedures TkpMakeWindow,
|
# TkpMakeContainer, or EmbedErrorProc.
|
# TkpMakeContainer, or EmbedErrorProc.
|
|
|
test unixEmbed-2.1 {EmbeddedEventProc procedure} {
|
test unixEmbed-2.1 {EmbeddedEventProc procedure} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
testembed
|
testembed
|
}
|
}
|
destroy .f1
|
destroy .f1
|
update
|
update
|
dobg {
|
dobg {
|
testembed
|
testembed
|
}
|
}
|
} {}
|
} {}
|
test unixEmbed-2.2 {EmbeddedEventProc procedure} {
|
test unixEmbed-2.2 {EmbeddedEventProc procedure} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
testembed
|
testembed
|
destroy .t1
|
destroy .t1
|
testembed
|
testembed
|
}
|
}
|
} {}
|
} {}
|
test unixEmbed-2.3 {EmbeddedEventProc procedure} {
|
test unixEmbed-2.3 {EmbeddedEventProc procedure} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
toplevel .t1 -use [winfo id .f1]
|
toplevel .t1 -use [winfo id .f1]
|
update
|
update
|
destroy .f1
|
destroy .f1
|
testembed
|
testembed
|
} {}
|
} {}
|
test unixEmbed-2.4 {EmbeddedEventProc procedure} {
|
test unixEmbed-2.4 {EmbeddedEventProc procedure} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
toplevel .t1 -use [winfo id .f1]
|
toplevel .t1 -use [winfo id .f1]
|
update
|
update
|
destroy .t1
|
destroy .t1
|
set x [testembed]
|
set x [testembed]
|
update
|
update
|
list $x [testembed]
|
list $x [testembed]
|
} {{{XXX .f1 {} {}}} {}}
|
} {{{XXX .f1 {} {}}} {}}
|
|
|
test unixEmbed-3.1 {ContainerEventProc procedure, detect creation} {
|
test unixEmbed-3.1 {ContainerEventProc procedure, detect creation} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
set x [testembed]
|
set x [testembed]
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
wm withdraw .t1
|
wm withdraw .t1
|
}
|
}
|
list $x [testembed]
|
list $x [testembed]
|
} {{{XXX .f1 {} {}}} {{XXX .f1 XXX {}}}}
|
} {{{XXX .f1 {} {}}} {{XXX .f1 XXX {}}}}
|
test unixEmbed-3.2 {ContainerEventProc procedure, set size on creation} {
|
test unixEmbed-3.2 {ContainerEventProc procedure, set size on creation} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
toplevel .t1 -container 1
|
toplevel .t1 -container 1
|
wm geometry .t1 +0+0
|
wm geometry .t1 +0+0
|
toplevel .t2 -use [winfo id .t1] -bg red
|
toplevel .t2 -use [winfo id .t1] -bg red
|
update
|
update
|
wm geometry .t2
|
wm geometry .t2
|
} {200x200+0+0}
|
} {200x200+0+0}
|
test unixEmbed-3.2 {ContainerEventProc procedure, disallow position changes} {
|
test unixEmbed-3.2 {ContainerEventProc procedure, disallow position changes} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1 -bd 2 -relief raised
|
toplevel .t1 -use $w1 -bd 2 -relief raised
|
update
|
update
|
wm geometry .t1 +30+40
|
wm geometry .t1 +30+40
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
wm geometry .t1
|
wm geometry .t1
|
}
|
}
|
} {200x200+0+0}
|
} {200x200+0+0}
|
test unixEmbed-3.3 {ContainerEventProc procedure, disallow position changes} {
|
test unixEmbed-3.3 {ContainerEventProc procedure, disallow position changes} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
update
|
update
|
wm geometry .t1 300x100+30+40
|
wm geometry .t1 300x100+30+40
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
wm geometry .t1
|
wm geometry .t1
|
}
|
}
|
} {300x100+0+0}
|
} {300x100+0+0}
|
test unixEmbed-3.4 {ContainerEventProc procedure, geometry requests} {
|
test unixEmbed-3.4 {ContainerEventProc procedure, geometry requests} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
.t1 configure -width 300 -height 80
|
.t1 configure -width 300 -height 80
|
}
|
}
|
update
|
update
|
list [winfo width .f1] [winfo height .f1] [dobg {wm geometry .t1}]
|
list [winfo width .f1] [winfo height .f1] [dobg {wm geometry .t1}]
|
} {300 80 300x80+0+0}
|
} {300 80 300x80+0+0}
|
test unixEmbed-3.5 {ContainerEventProc procedure, map requests} {
|
test unixEmbed-3.5 {ContainerEventProc procedure, map requests} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
set x unmapped
|
set x unmapped
|
bind .t1
|
bind .t1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
after 100
|
after 100
|
update
|
update
|
set x
|
set x
|
}
|
}
|
} {mapped}
|
} {mapped}
|
test unixEmbed-3.6 {ContainerEventProc procedure, destroy events} {
|
test unixEmbed-3.6 {ContainerEventProc procedure, destroy events} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
bind .f1 {set x dead}
|
bind .f1 {set x dead}
|
set x alive
|
set x alive
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
destroy .t1
|
destroy .t1
|
}
|
}
|
update
|
update
|
list $x [winfo exists .f1]
|
list $x [winfo exists .f1]
|
} {dead 0}
|
} {dead 0}
|
|
|
test unixEmbed-4.1 {EmbedStructureProc procedure, configure events} {
|
test unixEmbed-4.1 {EmbedStructureProc procedure, configure events} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
.t1 configure -width 180 -height 100
|
.t1 configure -width 180 -height 100
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
winfo geometry .t1
|
winfo geometry .t1
|
}
|
}
|
} {180x100+0+0}
|
} {180x100+0+0}
|
test unixEmbed-4.2 {EmbedStructureProc procedure, destroy events} {
|
test unixEmbed-4.2 {EmbedStructureProc procedure, destroy events} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
set x [testembed]
|
set x [testembed]
|
destroy .f1
|
destroy .f1
|
list $x [testembed]
|
list $x [testembed]
|
} {{{XXX .f1 XXX {}}} {}}
|
} {{{XXX .f1 XXX {}}} {}}
|
|
|
test unixEmbed-5.1 {EmbedFocusProc procedure, FocusIn events} {
|
test unixEmbed-5.1 {EmbedFocusProc procedure, FocusIn events} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
bind .t1 {lappend x "focus in %W"}
|
bind .t1 {lappend x "focus in %W"}
|
bind .t1 {lappend x "focus out %W"}
|
bind .t1 {lappend x "focus out %W"}
|
set x {}
|
set x {}
|
}
|
}
|
focus -force .f1
|
focus -force .f1
|
update
|
update
|
dobg {set x}
|
dobg {set x}
|
} {{focus in .t1}}
|
} {{focus in .t1}}
|
test unixEmbed-5.2 {EmbedFocusProc procedure, focusing on dead window} {
|
test unixEmbed-5.2 {EmbedFocusProc procedure, focusing on dead window} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
after 200 {destroy .t1}
|
after 200 {destroy .t1}
|
}
|
}
|
after 400
|
after 400
|
focus -force .f1
|
focus -force .f1
|
update
|
update
|
} {}
|
} {}
|
test unixEmbed-5.3 {EmbedFocusProc procedure, FocusOut events} {
|
test unixEmbed-5.3 {EmbedFocusProc procedure, FocusOut events} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
bind .t1 {lappend x "focus in %W"}
|
bind .t1 {lappend x "focus in %W"}
|
bind .t1 {lappend x "focus out %W"}
|
bind .t1 {lappend x "focus out %W"}
|
set x {}
|
set x {}
|
}
|
}
|
focus -force .f1
|
focus -force .f1
|
update
|
update
|
set x [dobg {update; set x}]
|
set x [dobg {update; set x}]
|
focus .
|
focus .
|
update
|
update
|
list $x [dobg {update; set x}]
|
list $x [dobg {update; set x}]
|
} {{{focus in .t1}} {{focus in .t1} {focus out .t1}}}
|
} {{{focus in .t1}} {{focus in .t1} {focus out .t1}}}
|
|
|
test unixEmbed-6.1 {EmbedGeometryRequest procedure, window changes size} {
|
test unixEmbed-6.1 {EmbedGeometryRequest procedure, window changes size} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
dobg {
|
dobg {
|
bind .t1 {lappend x {configure .t1 %w %h}}
|
bind .t1 {lappend x {configure .t1 %w %h}}
|
set x {}
|
set x {}
|
.t1 configure -width 300 -height 120
|
.t1 configure -width 300 -height 120
|
update
|
update
|
list $x [winfo geom .t1]
|
list $x [winfo geom .t1]
|
}
|
}
|
} {{{configure .t1 300 120}} 300x120+0+0}
|
} {{{configure .t1 300 120}} 300x120+0+0}
|
test unixEmbed-6.2 {EmbedGeometryRequest procedure, window changes size} {
|
test unixEmbed-6.2 {EmbedGeometryRequest procedure, window changes size} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
place .f1 -width 200 -height 200
|
place .f1 -width 200 -height 200
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
after 300 {set x done}
|
after 300 {set x done}
|
vwait x
|
vwait x
|
dobg {
|
dobg {
|
bind .t1 {lappend x {configure .t1 %w %h}}
|
bind .t1 {lappend x {configure .t1 %w %h}}
|
set x {}
|
set x {}
|
.t1 configure -width 300 -height 120
|
.t1 configure -width 300 -height 120
|
update
|
update
|
list $x [winfo geom .t1]
|
list $x [winfo geom .t1]
|
}
|
}
|
} {{{configure .t1 200 200}} 200x200+0+0}
|
} {{{configure .t1 200 200}} 200x200+0+0}
|
|
|
# Can't think up any tests for TkpGetOtherWindow procedure.
|
# Can't think up any tests for TkpGetOtherWindow procedure.
|
|
|
test unixEmbed-7.1 {TkpRedirectKeyEvent procedure, forward keystroke} {
|
test unixEmbed-7.1 {TkpRedirectKeyEvent procedure, forward keystroke} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
focus -force .
|
focus -force .
|
bind . {lappend x {key %A %E}}
|
bind . {lappend x {key %A %E}}
|
set x {}
|
set x {}
|
set y [dobg {
|
set y [dobg {
|
update
|
update
|
bind .t1 {lappend y {key %A}}
|
bind .t1 {lappend y {key %A}}
|
set y {}
|
set y {}
|
event generate .t1 -keysym a
|
event generate .t1 -keysym a
|
set y
|
set y
|
}]
|
}]
|
update
|
update
|
bind . {}
|
bind . {}
|
list $x $y
|
list $x $y
|
} {{{key a 1}} {}}
|
} {{{key a 1}} {}}
|
test unixEmbed-7.2 {TkpRedirectKeyEvent procedure, don't forward keystroke width} {
|
test unixEmbed-7.2 {TkpRedirectKeyEvent procedure, don't forward keystroke width} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1
|
toplevel .t1 -use $w1
|
}
|
}
|
update
|
update
|
focus -force .f1
|
focus -force .f1
|
update
|
update
|
bind . {lappend x {key %A}}
|
bind . {lappend x {key %A}}
|
set x {}
|
set x {}
|
set y [dobg {
|
set y [dobg {
|
update
|
update
|
bind .t1 {lappend y {key %A}}
|
bind .t1 {lappend y {key %A}}
|
set y {}
|
set y {}
|
event generate .t1 -keysym b
|
event generate .t1 -keysym b
|
set y
|
set y
|
}]
|
}]
|
update
|
update
|
bind . {}
|
bind . {}
|
list $x $y
|
list $x $y
|
} {{} {{key b}}}
|
} {{} {{key b}}}
|
|
|
test unixEmbed-8.1 {TkpClaimFocus procedure} {
|
test unixEmbed-8.1 {TkpClaimFocus procedure} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -width 200 -height 50
|
frame .f2 -width 200 -height 50
|
pack .f1 .f2
|
pack .f1 .f2
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
|
toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
|
}
|
}
|
focus -force .f2
|
focus -force .f2
|
update
|
update
|
list [dobg {
|
list [dobg {
|
focus .t1
|
focus .t1
|
set x [list [focus]]
|
set x [list [focus]]
|
update
|
update
|
after 500
|
after 500
|
update
|
update
|
lappend x [focus]
|
lappend x [focus]
|
}] [focus]
|
}] [focus]
|
} {{{} .t1} .f1}
|
} {{{} .t1} .f1}
|
test unixEmbed-8.2 {TkpClaimFocus procedure} {
|
test unixEmbed-8.2 {TkpClaimFocus procedure} {
|
catch {interp delete child}
|
catch {interp delete child}
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -width 200 -height 50
|
frame .f2 -width 200 -height 50
|
pack .f1 .f2
|
pack .f1 .f2
|
interp create child
|
interp create child
|
child eval "set argv {-use [winfo id .f1]}"
|
child eval "set argv {-use [winfo id .f1]}"
|
load {} tk child
|
load {} tk child
|
child eval {
|
child eval {
|
. configure -bd 2 -highlightthickness 2 -relief sunken
|
. configure -bd 2 -highlightthickness 2 -relief sunken
|
}
|
}
|
focus -force .f2
|
focus -force .f2
|
update
|
update
|
list [child eval {
|
list [child eval {
|
focus .
|
focus .
|
set x [list [focus]]
|
set x [list [focus]]
|
update
|
update
|
lappend x [focus]
|
lappend x [focus]
|
}] [focus]
|
}] [focus]
|
} {{{} .} .f1}
|
} {{{} .} .f1}
|
catch {interp delete child}
|
catch {interp delete child}
|
|
|
test unixEmbed-9.1 {EmbedWindowDeleted procedure, check parentPtr} {
|
test unixEmbed-9.1 {EmbedWindowDeleted procedure, check parentPtr} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
frame .f2 -container 1 -width 200 -height 50
|
frame .f3 -container 1 -width 200 -height 50
|
frame .f3 -container 1 -width 200 -height 50
|
frame .f4 -container 1 -width 200 -height 50
|
frame .f4 -container 1 -width 200 -height 50
|
pack .f1 .f2 .f3 .f4
|
pack .f1 .f2 .f3 .f4
|
set x {}
|
set x {}
|
lappend x [testembed]
|
lappend x [testembed]
|
foreach w {.f3 .f4 .f1 .f2} {
|
foreach w {.f3 .f4 .f1 .f2} {
|
destroy $w
|
destroy $w
|
lappend x [testembed]
|
lappend x [testembed]
|
}
|
}
|
set x
|
set x
|
} {{{XXX .f4 {} {}} {XXX .f3 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f4 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}}} {}}
|
} {{{XXX .f4 {} {}} {XXX .f3 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f4 {} {}} {XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}} {XXX .f1 {} {}}} {{XXX .f2 {} {}}} {}}
|
test unixEmbed-9.2 {EmbedWindowDeleted procedure, check embeddedPtr} {
|
test unixEmbed-9.2 {EmbedWindowDeleted procedure, check embeddedPtr} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
dobg "set w1 [winfo id .f1]"
|
dobg "set w1 [winfo id .f1]"
|
dobg {
|
dobg {
|
eval destroy [winfo child .]
|
eval destroy [winfo child .]
|
toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
|
toplevel .t1 -use $w1 -highlightthickness 2 -bd 2 -relief sunken
|
set x {}
|
set x {}
|
lappend x [testembed]
|
lappend x [testembed]
|
destroy .t1
|
destroy .t1
|
lappend x [testembed]
|
lappend x [testembed]
|
}
|
}
|
} {{{XXX {} {} .t1}} {}}
|
} {{{XXX {} {} .t1}} {}}
|
|
|
test unixEmbed-10.1 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
|
test unixEmbed-10.1 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
toplevel .t1 -use [winfo id .f1] -width 150 -height 80
|
toplevel .t1 -use [winfo id .f1] -width 150 -height 80
|
update
|
update
|
wm geometry .t1 +40+50
|
wm geometry .t1 +40+50
|
update
|
update
|
wm geometry .t1
|
wm geometry .t1
|
} {150x80+0+0}
|
} {150x80+0+0}
|
test unixEmbed-10.2 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
|
test unixEmbed-10.2 {geometry propagation in tkUnixWm.c/UpdateGeometryInfo} {
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
frame .f1 -container 1 -width 200 -height 50
|
frame .f1 -container 1 -width 200 -height 50
|
pack .f1
|
pack .f1
|
toplevel .t1 -use [winfo id .f1] -width 150 -height 80
|
toplevel .t1 -use [winfo id .f1] -width 150 -height 80
|
update
|
update
|
wm geometry .t1 70x300+10+20
|
wm geometry .t1 70x300+10+20
|
update
|
update
|
wm geometry .t1
|
wm geometry .t1
|
} {70x300+0+0}
|
} {70x300+0+0}
|
|
|
|
|
foreach w [winfo child .] {
|
foreach w [winfo child .] {
|
catch {destroy $w}
|
catch {destroy $w}
|
}
|
}
|
cleanupbg
|
cleanupbg
|
|
|