summaryrefslogtreecommitdiffstats
path: root/tk8.6/tests/textWind.test
diff options
context:
space:
mode:
Diffstat (limited to 'tk8.6/tests/textWind.test')
-rw-r--r--tk8.6/tests/textWind.test1482
1 files changed, 1482 insertions, 0 deletions
diff --git a/tk8.6/tests/textWind.test b/tk8.6/tests/textWind.test
new file mode 100644
index 0000000..27b7309
--- /dev/null
+++ b/tk8.6/tests/textWind.test
@@ -0,0 +1,1482 @@
+# This file is a Tcl script to test the code in the file tkTextWind.c.
+# This file is organized in the standard fashion for Tcl tests.
+#
+# Copyright (c) 1994 The Regents of the University of California.
+# Copyright (c) 1994-1995 Sun Microsystems, Inc.
+# Copyright (c) 1998-1999 by Scriptics Corporation.
+# All rights reserved.
+
+package require tcltest 2.2
+namespace import ::tcltest::*
+tcltest::configure {*}$argv
+tcltest::loadTestedCommands
+
+# Create entries in the option database to be sure that geometry options
+# like border width have predictable values.
+
+option add *Text.borderWidth 2
+option add *Text.highlightThickness 2
+option add *Text.font {Courier -12}
+
+
+deleteWindows
+# Widget used in tests 1.* - 16.*
+text .t -width 30 -height 6 -bd 2 -highlightthickness 2
+pack append . .t {top expand fill}
+update
+.t debug on
+
+# 15 on XP, 13 on Solaris 8
+set fixedHeight [font metrics {Courier -12} -linespace]
+set fixedDiff [expr {$fixedHeight - 13}] ;# 2 on XP
+set color [expr {[winfo depth .t] > 1 ? "green" : "black"}]
+
+wm geometry . {}
+
+# The statements below reset the main window; it's needed if the window
+# manager is mwm to make mwm forget about a previous minimum size setting.
+
+wm withdraw .
+wm minsize . 1 1
+wm positionfrom . user
+wm deiconify .
+
+# ----------------------------------------------------------------------
+
+test textWind-1.1 {basic tests of options} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 3 -height 3 -bg $color
+ .t window create 2.2 -window .f
+ update
+ list [winfo ismapped .f] [winfo geom .f] [.t bbox .f] \
+ [.t window configure .f -window]
+} -result {1 3x3+19+23 {19 23 3 3} {-window {} {} {} .f}}
+test textWind-1.2 {basic tests of options} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 3 -height 3 -bg $color
+ .t window create 2.2 -window .f -align top
+ update
+ list [winfo ismapped .f] [winfo geom .f] [.t bbox .f] \
+ [.t window configure .f -align]
+} -result {1 3x3+19+18 {19 18 3 3} {-align {} {} center top}}
+test textWind-1.3 {basic tests of options} -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ .t window create 2.2 -create "Test script"
+ .t window configure 2.2 -create
+} -result {-create {} {} {} {Test script}}
+test textWind-1.4 {basic tests of options} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 2.2 -window .f -padx 5
+ update
+ list [winfo geom .f] [.t window configure .f -padx] [.t bbox 2.3]
+} -result {10x20+24+18 {-padx {} {} 0 5} {39 21 7 13}}
+test textWind-1.5 {basic tests of options} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 2.2 -window .f -pady 4
+ update
+ list [winfo geom .f] [.t window configure .f -pady] [.t bbox 2.31]
+} -result {10x20+19+22 {-pady {} {} 0 4} {19 46 7 13}}
+test textWind-1.6 {basic tests of options} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 2.2 -window .f -stretch 1
+ update
+ list [winfo geom .f] [.t window configure .f -stretch]
+} -result {5x13+19+18 {-stretch {} {} 0 1}}
+
+
+.t delete 1.0 end
+.t insert end "This is the first line"
+test textWind-2.1 {TkTextWindowCmd procedure} -body {
+ .t window
+} -returnCodes error -result {wrong # args: should be ".t window option ?arg ...?"}
+test textWind-2.2 {TkTextWindowCmd procedure, "cget" option} -body {
+ .t window cget
+} -returnCodes error -result {wrong # args: should be ".t window cget index option"}
+test textWind-2.3 {TkTextWindowCmd procedure, "cget" option} -body {
+ .t window cget a b c
+} -returnCodes error -result {wrong # args: should be ".t window cget index option"}
+test textWind-2.4 {TkTextWindowCmd procedure, "cget" option} -body {
+ .t window cget gorp -padx
+} -returnCodes error -result {bad text index "gorp"}
+test textWind-2.5 {TkTextWindowCmd procedure, "cget" option} -body {
+ .t window cget 1.2 -padx
+} -returnCodes error -result {no embedded window at index "1.2"}
+test textWind-2.6 {TkTextWindowCmd procedure, "cget" option} -setup {
+ destroy .f
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.3 -window .f -padx 1 -pady 2
+ .t window cget .f -bogus
+} -cleanup {
+ destroy .f
+} -returnCodes error -result {unknown option "-bogus"}
+test textWind-2.7 {TkTextWindowCmd procedure, "cget" option} -setup {
+ destroy .f
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.3 -window .f -padx 1 -pady 2
+ .t window cget .f -pady
+} -cleanup {
+ destroy .f
+} -returnCodes ok -result {2}
+test textWind-2.8 {TkTextWindowCmd procedure} -body {
+ .t window co
+} -returnCodes error -result {wrong # args: should be ".t window configure index ?-option value ...?"}
+test textWind-2.9 {TkTextWindowCmd procedure} -body {
+ .t window configure gorp
+} -returnCodes error -result {bad text index "gorp"}
+test textWind-2.10 {TkTextWindowCmd procedure} -body {
+ .t delete 1.0 end
+ .t window configure 1.0
+} -returnCodes error -result {no embedded window at index "1.0"}
+test textWind-2.11 {TkTextWindowCmd procedure} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.3 -window .f -padx 1 -pady 2
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2 -create foo
+ update
+ .t window configure .f
+} -cleanup {
+ destroy .f
+} -result {{-align {} {} center baseline} {-create {} {} {} foo} {-padx {} {} 0 1} {-pady {} {} 0 2} {-stretch {} {} 0 0} {-window {} {} {} .f}}
+test textWind-2.12 {TkTextWindowCmd procedure} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2 -create foo
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2 -create foo
+ update
+ list [.t window configure .f -padx 33] [.t window configure .f -padx]
+} -cleanup {
+ destroy .f
+} -result {{} {-padx {} {} 0 33}}
+test textWind-2.13 {TkTextWindowCmd procedure} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2 -create foo
+ .t delete 1.0 end
+} -body {
+ .t insert end "This is the first line"
+ .t insert end "\nAnd this is a second line, which wraps around"
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2
+ update
+ list [.t window configure .f -padx 14 -pady 15] \
+ [.t window configure .f -padx] [.t window configure .f -pady]
+} -cleanup {
+ destroy .f
+} -result {{} {-padx {} {} 0 14} {-pady {} {} 0 15}}
+test textWind-2.14 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t window create
+} -returnCodes error -result {wrong # args: should be ".t window create index ?-option value ...?"}
+test textWind-2.15 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t window create gorp
+} -returnCodes error -result {bad text index "gorp"}
+test textWind-2.16 {TkTextWindowCmd procedure, don't insert after end} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 2.2 -window .f -align baseline -padx 1 -pady 2
+ .t delete 1.0 end
+} -body {
+ .t insert end "Line 1\nLine 2"
+ frame .f -width 20 -height 10 -bg $color
+ .t window create end -window .f
+ .t index .f
+} -result {2.6}
+test textWind-2.17 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ list [catch {.t window create 1.0} msg] $msg [.t window configure 1.0]
+} -result {0 {} {{-align {} {} center center} {-create {} {} {} {}} {-padx {} {} 0 0} {-pady {} {} 0 0} {-stretch {} {} 0 0} {-window {} {} {} {}}}}
+test textWind-2.18 {TkTextWindowCmd procedure} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 20 -height 10 -bg $color
+ .t window create end -window .f
+ .t delete 1.0 end
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.0 -window .f -gorp stupid
+} -returnCodes error -result {unknown option "-gorp"}
+test textWind-2.19 {TkTextWindowCmd procedure} -setup {
+# I kept this as it "influenced" the test case in previous releases
+ destroy .f
+ frame .f -width 20 -height 10 -bg $color
+ .t window create end -window .f
+ .t delete 1.0 end
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ catch {.t window create 1.0 -window .f -gorp stupid}
+ list [winfo exists .f] [.t index 1.end] [catch {.t index .f}]
+} -result {0 1.0 1}
+test textWind-2.20 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.0 -gorp -window .f stupid
+} -returnCodes error -result {unknown option "-gorp"}
+test textWind-2.21 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ catch {.t window create 1.0 -gorp -window .f stupid}
+ list [winfo exists .f] [.t index 1.end] [catch {.t index .f}]
+} -result {1 1.0 1}
+test textWind-2.22 {TkTextWindowCmd procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t window c
+} -returnCodes error -result {ambiguous window option "c": must be cget, configure, create, or names}
+destroy .f
+test textWind-2.23 {TkTextWindowCmd procedure, "names" option} -setup {
+ .t delete 1.0 end
+} -body {
+ .t window names foo
+} -returnCodes error -result {wrong # args: should be ".t window names"}
+test textWind-2.24 {TkTextWindowCmd procedure, "names" option} -setup {
+ .t delete 1.0 end
+} -body {
+ .t window names
+} -result {}
+test textWind-2.25 {TkTextWindowCmd procedure, "names" option} -setup {
+ .t delete 1.0 end
+ destroy .f .f2 .t.f .t.f2
+} -body {
+ foreach i {.f .f2 .t.f .t.f2} {
+ frame $i -width 20 -height 20
+ .t window create end -window $i
+ }
+ lsort [.t window names]
+} -cleanup {
+ destroy .f .f2 .t.f .t.f2
+} -result {.f .f2 .t.f .t.f2}
+
+
+test textWind-3.1 {EmbWinConfigure procedure} -setup {
+ destroy .f
+} -body {
+ frame .f -width 10 -height 6 -bg $color
+ .t window create 1.0 -window .f
+ .t window configure 1.0 -foo bar
+} -cleanup {
+ destroy .f
+} -returnCodes error -result {unknown option "-foo"}
+test textWind-3.2 {EmbWinConfigure procedure} -constraints fonts -setup {
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.3 -window .f
+ update
+ .t window configure 1.3 -window {}
+ update
+ .t index .f
+} -cleanup {
+ destroy .f
+} -returnCodes error -result {bad text index ".f"}
+test textWind-3.3 {EmbWinConfigure procedure} -constraints fonts -setup {
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.3 -window .f
+ update
+ .t window configure 1.3 -window {}
+ update
+ catch {.t index .f}
+ list [winfo ismapped .f] [.t bbox 1.4]
+} -cleanup {
+ destroy .f
+} -result {0 {26 5 7 13}}
+test textWind-3.4 {EmbWinConfigure procedure} -constraints fonts -setup {
+ destroy .t.f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .t.f -width 10 -height 20 -bg $color
+ .t window create 1.3 -window .t.f
+ update
+ .t window configure 1.3 -window {}
+ update
+ .t index .t.f
+} -cleanup {
+ destroy .t.f
+} -returnCodes error -result {bad text index ".t.f"}
+test textWind-3.5 {EmbWinConfigure procedure} -constraints fonts -setup {
+ destroy .t.f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .t.f -width 10 -height 20 -bg $color
+ .t window create 1.3 -window .t.f
+ update
+ .t window configure 1.3 -window {}
+ update
+ catch {.t index .t.f}
+ list [winfo ismapped .t.f] [.t bbox 1.4]
+} -cleanup {
+ destroy .t.f
+} -result {0 {26 5 7 13}}
+test textWind-3.6 {EmbWinConfigure procedure} -constraints fonts -setup {
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.3
+ update
+ .t window configure 1.3 -window .f
+ update
+ list [catch {.t index .f} msg] $msg [winfo ismapped .f] [.t bbox 1.4]
+} -cleanup {
+ destroy .f
+} -result {0 1.3 1 {36 8 7 13}}
+test textWind-3.7 {EmbWinConfigure procedure} -setup {
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f
+ frame .f.f -width 15 -height 20 -bg $color
+ pack .f.f
+ .t window create 1.3 -window .f.f
+} -cleanup {
+ destroy .f
+} -returnCodes error -result {can't embed .f.f in .t}
+test textWind-3.8 {EmbWinConfigure procedure} -setup {
+ destroy .t2
+} -body {
+ .t insert 1.0 "Some sample text"
+ toplevel .t2 -width 20 -height 10 -bg $color
+ .t window create 1.3
+ .t window configure 1.3 -window .t2
+} -cleanup {
+ destroy .t2
+} -returnCodes error -result {can't embed .t2 in .t}
+test textWind-3.9 {EmbWinConfigure procedure} -setup {
+ destroy .t2
+} -body {
+ .t insert 1.0 "Some sample text"
+ toplevel .t2 -width 20 -height 10 -bg $color
+ .t window create 1.3
+ catch {.t window configure 1.3 -window .t2}
+ .t window configure 1.3 -window
+} -cleanup {
+ destroy .t2
+} -result {-window {} {} {} {}}
+test textWind-3.10 {EmbWinConfigure procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.3
+ .t window configure 1.3 -window .t
+} -returnCodes error -result {can't embed .t in .t}
+test textWind-3.11 {EmbWinConfigure procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ # This test checks for various errors when the text claims
+ # a window away from itself.
+ .t insert 1.0 "Some sample text"
+ button .t.b -text "Hello!"
+ .t window create 1.4 -window .t.b
+ .t window create 1.6 -window .t.b
+ update
+ .t index .t.b
+} -result {1.6}
+
+
+.t delete 1.0 end
+frame .f -width 10 -height 20 -bg $color
+.t window create 1.0 -window .f
+test textWind-4.1 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align baseline
+ .t window configure 1.0 -align
+} -result {-align {} {} center baseline}
+test textWind-4.2 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align bottom
+ .t window configure 1.0 -align
+} -result {-align {} {} center bottom}
+test textWind-4.3 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align center
+ .t window configure 1.0 -align
+} -result {-align {} {} center center}
+test textWind-4.4 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align top
+ .t window configure 1.0 -align
+} -result {-align {} {} center top}
+test textWind-4.5 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align top
+ .t window configure 1.0 -align gorp
+} -returnCodes error -result {bad align "gorp": must be baseline, bottom, center, or top}
+test textWind-4.6 {AlignParseProc and AlignPrintProc procedures} -body {
+ .t window configure 1.0 -align top
+ catch {.t window configure 1.0 -align gorp}
+ .t window configure 1.0 -align
+} -result {-align {} {} center top}
+
+
+test textWind-5.1 {EmbWinStructureProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ destroy .f
+ .t index .f
+} -returnCodes error -result {bad text index ".f"}
+test textWind-5.2 {EmbWinStructureProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ destroy .f
+ catch {.t index .f}
+ list [.t bbox 1.2] [.t bbox 1.3]
+} -result {{19 11 0 0} {19 5 7 13}}
+test textWind-5.3 {EmbWinStructureProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -align bottom
+ .t window configure 1.2 -window .f
+ update
+ destroy .f
+ .t index .f
+} -returnCodes error -result {bad text index ".f"}
+test textWind-5.4 {EmbWinStructureProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -align bottom
+ .t window configure 1.2 -window .f
+ update
+ destroy .f
+ catch {.t index .f}
+ list [.t bbox 1.2] [.t bbox 1.3]
+} -result {{19 18 0 0} {19 5 7 13}}
+test textWind-5.5 {EmbWinStructureProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.2 -create {frame .f -width 10 -height 20 -bg $color}
+ update
+ .t window configure 1.2 -create {frame .f -width 20 -height 10 -bg $color}
+ destroy .f
+ update
+ list [catch {.t index .f} msg] $msg [.t bbox 1.2] [.t bbox 1.3]
+} -result {0 1.2 {19 6 20 10} {39 5 7 13}}
+
+
+test textWind-6.1 {EmbWinRequestProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+ set result {}
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ lappend result [.t bbox 1.2] [.t bbox 1.3]
+ .f configure -width 25 -height 30
+ lappend result [.t bbox 1.2] [.t bbox 1.3]
+} -cleanup {
+ destroy .f
+} -result {{19 5 10 20} {29 8 7 13} {19 5 25 30} {44 13 7 13}}
+
+
+test textWind-7.1 {EmbWinLostSlaveProc procedure} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ place .f -in .t -x 100 -y 50
+ update
+ list [winfo geom .f] [.t bbox 1.2]
+} -cleanup {
+ destroy .f
+} -result [list 10x20+105+55 [list 19 [expr {11+$fixedDiff/2}] 0 0]]
+test textWind-7.2 {EmbWinLostSlaveProc procedure} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ destroy .t.f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .t.f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .t.f
+ update
+ place .t.f -x 100 -y 50
+ update
+ list [winfo geom .t.f] [.t bbox 1.2]
+} -cleanup {
+ destroy .t.f
+} -result [list 10x20+105+55 [list 19 [expr {11+$fixedDiff/2}] 0 0]]
+
+
+test textWind-8.1 {EmbWinDeleteProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ bind .f <Destroy> {set x destroyed}
+ set x XXX
+ .t delete 1.2
+ list $x [.t bbox 1.2] [.t bbox 1.3] [winfo exists .f]
+} -result {destroyed {19 5 7 13} {26 5 7 13} 0}
+test textWind-8.2 {EmbWinDeleteProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ bind .f <Destroy> {set x destroyed}
+ set x XXX
+ .t delete 1.2
+ .t index .f
+} -returnCodes error -result {bad text index ".f"}
+
+
+test textWind-9.1 {EmbWinCleanupProc procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text\nA second line."
+ frame .f -width 10 -height 20 -bg $color
+ .t window create 2.3 -window .f
+ .t delete 1.5 2.1
+ .t index .f
+} -cleanup {
+ destroy .f
+} -result {1.7}
+
+
+test textWind-10.1 {EmbWinLayoutProc procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ frame .f -width 10 -height 20 -bg $color
+ }
+ update
+ list [winfo exists .f] [winfo width .f] [winfo height .f] [.t index .f]
+} -cleanup {
+ destroy .f
+} -result {1 10 20 1.5}
+test textWind-10.2 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ proc bgerror args {
+ global msg
+ set msg $args
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ error "couldn't create window"
+ }
+ set msg xyzzy
+ update
+ list $msg [.t bbox 1.5]
+} -cleanup {
+ rename bgerror {}
+} -result {{{couldn't create window}} {40 11 0 0}}
+test textWind-10.3 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ proc bgerror args {
+ global msg
+ set msg $args
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ concat gorp
+ }
+ set msg xyzzy
+ update
+ list $msg [.t bbox 1.5]
+} -cleanup {
+ rename bgerror {}
+} -result {{{bad window path name "gorp"}} {40 11 0 0}}
+ .t delete 1.0 end
+ destroy .t.f
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+
+test textWind-10.4 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ destroy .t.f
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ set msg {}
+ after idle {
+ .t window create 1.5 -create {
+ frame .t.f
+ frame .t.f.f -width 10 -height 20 -bg $color
+ }
+ }
+ set count 0
+ while {([llength $msg] < 2) && ($count < 100)} {
+ update
+ incr count
+ .t bbox 1.5
+ after 10
+ }
+ lappend msg [.t bbox 1.5] [winfo exists .t.f.f]
+} -cleanup {
+ destroy .t.f
+ rename bgerror {}
+} -result [list {{can't embed .t.f.f relative to .t}} {{window name "f" already exists in parent}} [list 40 [expr {11+$fixedDiff/2}] 0 0] 1]
+test textWind-10.5 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ destroy .t.f
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ frame .t.f
+ frame .t.f.f -width 10 -height 20 -bg $color
+ }
+ set msg {}
+ update idletasks
+ lappend msg [winfo exists .t.f.f]
+} -cleanup {
+ destroy .t.f
+ rename bgerror {}
+} -result {{{can't embed .t.f.f relative to .t}} 1}
+catch {destroy .t.f}
+test textWind-10.6 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ concat .t
+ }
+ set msg {}
+ update
+ lappend msg [.t bbox 1.5]
+} -cleanup {
+ rename bgerror {}
+} -result [list {{can't embed .t relative to .t}} [list 40 [expr {11+$fixedDiff/2}] 0 0]]
+test textWind-10.7 {EmbWinLayoutProc procedure, error in creating window} -constraints {
+ textfonts
+} -setup {
+ .t delete 1.0 end
+ destroy .t2
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ toplevel .t2 -width 100 -height 150
+ wm geom .t2 +0+0
+ concat .t2
+ }
+ set msg {}
+ update
+ lappend msg [.t bbox 1.5]
+} -cleanup {
+ rename bgerror {}
+} -result [list {{can't embed .t2 relative to .t}} {{window name "t2" already exists in parent}} [list 40 [expr {11+$fixedDiff/2}] 0 0]]
+test textWind-10.8 {EmbWinLayoutProc procedure, error in creating window} -setup {
+ .t delete 1.0 end
+ destroy .t2
+ proc bgerror args {
+ global msg
+ if {[lsearch -exact $msg $args] == -1} {
+ lappend msg $args
+ }
+ }
+} -body {
+ .t insert 1.0 "Some sample text"
+ .t window create 1.5 -create {
+ toplevel .t2 -width 100 -height 150
+ wm geom .t2 +0+0
+ concat .t2
+ }
+ set msg {}
+ update
+ set i 0
+ while {[llength $msg] == 1 && [incr i] < 200} { update }
+ return $msg
+} -cleanup {
+ destroy .t2
+ rename bgerror {}
+} -result {{{can't embed .t2 relative to .t}} {{window name "t2" already exists in parent}}}
+
+test textWind-10.9 {EmbWinLayoutProc procedure, steal window from self} -setup {
+ .t delete 1.0 end
+ destroy .t.b
+} -body {
+ .t insert 1.0 ABCDEFGHIJKLMNOP
+ button .t.b -text "Hello!"
+ .t window create 1.5 -window .t.b
+ update
+ .t window create 1.3 -create {concat .t.b}
+ update
+ .t index .t.b
+} -cleanup {
+ destroy .t.b
+} -result {1.3}
+test textWind-10.10 {EmbWinLayoutProc procedure, doesn't fit on line} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap char
+ .t insert 1.0 "Some sample text"
+ frame .f -width 125 -height 20 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{89 5 126 20} {5 25 7 13}}
+test textWind-10.11 {EmbWinLayoutProc procedure, doesn't fit on line} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap char
+ .t insert 1.0 "Some sample text"
+ frame .f -width 126 -height 20 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ update
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{89 5 126 20} {5 25 7 13}}
+test textWind-10.12 {EmbWinLayoutProc procedure, doesn't fit on line} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap char
+ .t insert 1.0 "Some sample text"
+ frame .f -width 127 -height 20 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ update
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{5 18 127 20} {132 21 7 13}}
+test textWind-10.13 {EmbWinLayoutProc procedure, doesn't fit on line} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .f -width 130 -height 20 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ update
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{89 5 126 20} {}}
+test textWind-10.14 {EmbWinLayoutProc procedure, doesn't fit on line} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .f -width 130 -height 220 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ update
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{89 5 126 78} {}}
+test textWind-10.15 {EmbWinLayoutProc procedure, doesn't fit on line} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap char
+ .t insert 1.0 "Some sample text"
+ frame .f -width 250 -height 220 -bg $color -bd 2 -relief raised
+ .t window create 1.12 -window .f
+ update
+ list [.t bbox .f] [.t bbox 1.13]
+} -cleanup {
+ destroy .f
+} -result {{5 18 210 65} {}}
+
+
+test textWind-11.1 {EmbWinDisplayProc procedure, geometry transforms} -setup {
+ .t delete 1.0 end
+ destroy .f
+ place forget .t
+ pack .t
+} -body {
+ .t insert 1.0 "Some sample text"
+ pack forget .t
+ place .t -x 30 -y 50
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.12 -window .f
+ update
+ winfo geom .f
+} -cleanup {
+ destroy .f
+ place forget .t
+} -result {30x20+119+55}
+test textWind-11.2 {EmbWinDisplayProc procedure, geometry transforms} -setup {
+ .t delete 1.0 end
+ destroy .t.f
+ place forget .t
+ pack .t
+} -body {
+ .t insert 1.0 "Some sample text"
+ pack forget .t
+ place .t -x 30 -y 50
+ frame .t.f -width 30 -height 20 -bg $color
+ .t window create 1.12 -window .t.f
+ update
+ winfo geom .t.f
+} -cleanup {
+ destroy .t.f
+ place forget .t
+ pack .t
+} -result {30x20+89+5}
+test textWind-11.3 {EmbWinDisplayProc procedure, configuration optimization} -setup {
+ .t delete 1.0 end
+ destroy .f
+ place forget .t
+ pack .t
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.12 -window .f
+ update
+ bind .f <Configure> {set x ".f configured"}
+ set x {no configures}
+ .t delete 1.0
+ .t insert 1.0 "X"
+ update
+ return $x
+} -cleanup {
+ destroy .f
+ place forget .t
+ pack .t
+} -result {no configures}
+test textWind-11.4 {EmbWinDisplayProc procedure, horizontal scrolling} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f .f2
+} -body {
+ .t insert 1.0 "xyzzy\nFirst window here: "
+ .t configure -wrap none
+ frame .f -width 30 -height 20 -bg $color
+ .t window create end -window .f
+ .t insert end " and second here: "
+ frame .f2 -width 40 -height 10 -bg $color
+ .t window create end -window .f2
+ .t insert end " with junk after it."
+ .t xview moveto 0
+ .t xview scroll 5 units
+ update
+ list [winfo ismapped .f] [winfo geom .f] [.t bbox .f] [winfo ismapped .f2]
+} -cleanup {
+ destroy .f .f2
+} -result {1 30x20+103+18 {103 18 30 20} 0}
+test textWind-11.5 {EmbWinDisplayProc procedure, horizontal scrolling} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f .f2
+} -body {
+ .t insert 1.0 "xyzzy\nFirst window here: "
+ .t configure -wrap none
+ frame .f -width 30 -height 20 -bg $color
+ .t window create end -window .f
+ .t insert end " and second here: "
+ frame .f2 -width 40 -height 10 -bg $color
+ .t window create end -window .f2
+ .t insert end " with junk after it."
+ update
+ .t xview moveto 0
+ .t xview scroll 25 units
+ update
+ list [winfo ismapped .f] [winfo ismapped .f2] [winfo geom .f2] [.t bbox .f2]
+} -cleanup {
+ destroy .f .f2
+} -result {0 1 40x10+119+23 {119 23 40 10}}
+.t configure -wrap char
+
+
+test textWind-12.1 {EmbWinUndisplayProc procedure, mapping/unmapping} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ bind .f <Map> {lappend x mapped}
+ bind .f <Unmap> {lappend x unmapped}
+ set x created
+ update
+ lappend x modified
+ .t delete 1.0
+ update
+ lappend x replaced
+ .t window configure .f -window {}
+ .t delete 1.1
+ .t window create 1.4 -window .f
+ update
+ lappend x off-screen
+ .t configure -wrap none
+ .t insert 1.0 "Enough text to make the line run off-screen"
+ update
+ return $x
+} -cleanup {
+ destroy .f
+} -result {created mapped modified replaced unmapped mapped off-screen unmapped}
+
+
+test textWind-13.1 {EmbWinBboxProc procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align top -padx 2 -pady 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x5+21+6 {21 6 5 5}}
+test textWind-13.2 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align center -padx 2 -pady 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x5+21+9 {21 9 5 5}}
+test textWind-13.3 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align baseline -padx 2 -pady 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x5+21+10 {21 10 5 5}}
+test textWind-13.4 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align bottom -padx 2 -pady 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x5+21+12 {21 12 5 5}}
+test textWind-13.5 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align top -padx 2 -pady 1 -stretch 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x11+21+6 {21 6 5 11}}
+test textWind-13.6 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align center -padx 2 -pady 1 -stretch 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x11+21+6 {21 6 5 11}}
+test textWind-13.7 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align baseline -padx 2 -pady 1 -stretch 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x9+21+6 {21 6 5 9}}
+test textWind-13.8 {EmbWinBboxProc procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align bottom -padx 2 -pady 1 -stretch 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x11+21+6 {21 6 5 11}}
+test textWind-13.9 {EmbWinBboxProc procedure, spacing options} -constraints {
+ fonts
+} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -spacing1 5 -spacing3 2
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ frame .f -width 5 -height 5 -bg $color
+ .t window create 1.2 -window .f -align center -padx 2 -pady 1
+ update
+ list [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f
+} -result {5x5+21+14 {21 14 5 5}}
+
+
+test textWind-14.1 {EmbWinDelayedUnmap procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ bind .f <Unmap> {lappend x unmapped}
+ set x modified
+ .t insert 1.0 x
+ lappend x removed
+ .t window configure .f -window {}
+ lappend x updated
+ update
+ return $x
+} -cleanup {
+ destroy .f
+} -result {modified removed unmapped updated}
+test textWind-14.2 {EmbWinDelayedUnmap procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ bind .f <Unmap> {lappend x unmapped}
+ set x modified
+ .t insert 1.0 x
+ lappend x deleted
+ .t delete .f
+ lappend x updated
+ update
+ return $x
+} -cleanup {
+ destroy .f
+} -result {modified deleted updated}
+test textWind-14.3 {EmbWinDelayedUnmap procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t insert 1.0 "Some sample text\nAnother line\n3\n4\n5\n6\n7\n8\n9"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.2 -window .f
+ update
+ .t yview 2.0
+ set result [winfo ismapped .f]
+ update ; after 10
+ list $result [winfo ismapped .f]
+} -cleanup {
+ destroy .f
+} -result {1 0}
+test textWind-14.4 {EmbWinDelayedUnmap procedure} -setup {
+ .t delete 1.0 end
+ destroy .t.f
+} -body {
+ .t insert 1.0 "Some sample text\nAnother line\n3\n4\n5\n6\n7\n8\n9"
+ frame .t.f -width 30 -height 20 -bg $color
+ .t window create 1.2 -window .t.f
+ update
+ .t yview 2.0
+ set result [winfo ismapped .t.f]
+ update
+ list $result [winfo ismapped .t.f]
+} -cleanup {
+ destroy .t.f
+} -result {1 0}
+
+
+test textWind-15.1 {TkTextWindowIndex procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t index .foo
+} -returnCodes error -result {bad text index ".foo"}
+test textWind-15.2 {TkTextWindowIndex procedure} -constraints fonts -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -spacing1 0 -spacing2 0 -spacing3 0 \
+ -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.6 -window .f
+ .t tag add a 1.1
+ .t tag add a 1.3
+ list [.t index .f] [.t bbox 1.7]
+} -cleanup {
+ destroy .f
+} -result {1.6 {77 8 7 13}}
+
+
+test textWind-16.1 {EmbWinTextStructureProc procedure} -setup {
+ .t delete 1.0 end
+ destroy .f
+} -body {
+ .t configure -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.6 -window .f
+ update
+ pack forget .t
+ update
+ winfo ismapped .f
+} -cleanup {
+ pack .t
+} -result 0
+test textWind-16.2 {EmbWinTextStructureProc procedure} -setup {
+ .t delete 1.0 end
+ destroy .f .f2
+} -body {
+ .t configure -spacing1 0 -spacing2 0 -spacing3 0 \
+ -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .f -width 30 -height 20 -bg $color
+ .t window create 1.6 -window .f
+ update
+ set result {}
+ lappend result [winfo geom .f] [.t bbox .f]
+ frame .f2 -width 150 -height 30 -bd 2 -relief raised
+ pack .f2 -before .t
+ update
+ lappend result [winfo geom .f] [.t bbox .f]
+} -cleanup {
+ destroy .f .f2
+} -result {30x20+47+5 {47 5 30 20} 30x20+47+35 {47 5 30 20}}
+test textWind-16.3 {EmbWinTextStructureProc procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t configure -wrap none
+ .t insert 1.0 "Some sample text"
+ .t window create 1.6
+ update
+ pack forget .t
+ update
+} -cleanup {
+ pack .t
+} -result {}
+test textWind-16.4 {EmbWinTextStructureProc procedure} -setup {
+ .t delete 1.0 end
+} -body {
+ .t configure -spacing1 0 -spacing2 0 -spacing3 0 \
+ -wrap none
+ .t insert 1.0 "Some sample text"
+ frame .t.f -width 30 -height 20 -bg $color
+ .t window create 1.6 -window .t.f
+ update
+ pack forget .t
+ update
+ list [winfo ismapped .t.f] [.t bbox .t.f]
+} -cleanup {
+ pack .t
+} -result {1 {47 5 30 20}}
+
+
+test textWind-17.1 {peer widgets and embedded windows} -setup {
+ destroy .t .tt .f
+} -body {
+ pack [text .t]
+ .t insert end "Line 1"
+ frame .f -width 20 -height 10 -bg blue
+ .t window create 1.3 -window .f
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ update ; update
+ destroy .t .tt
+ winfo exists .f
+} -result {0}
+
+test textWind-17.2 {peer widgets and embedded windows} -setup {
+ destroy .t .f .tt
+} -body {
+ pack [text .t]
+ .t insert end "Line 1\nLine 2"
+ frame .f -width 20 -height 10 -bg blue
+ .t window create 1.4 -window .f
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ update ; update
+ destroy .t
+ .tt.t insert 1.0 "foo"
+ update
+ destroy .tt
+} -result {}
+
+test textWind-17.3 {peer widget and -create} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ update ; update
+ .t window create 1.2 -create {frame %W.f -width 10 -height 20 -bg blue}
+ update
+ destroy .t .tt
+} -result {}
+
+test textWind-17.4 {peer widget deleted one window shouldn't delete others} -setup {
+ destroy .t .tt
+ set res {}
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -create {frame %W.f -width 10 -height 20 -bg blue}
+ update ; update
+ destroy .tt
+ lappend res [.t get 1.2]
+ update
+ lappend res [.t get 1.2]
+} -cleanup {
+ destroy .t
+} -result {{} {}}
+
+test textWind-17.5 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -create {frame %W.f -width 10 -height 20 -bg blue}
+ update ; update
+ list [.t window cget 1.2 -window] [.tt.t window cget 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {.t.f .tt.t.f}
+
+test textWind-17.6 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -create {frame %W.f -width 10 -height 20 -bg blue}
+ update ; update
+ list [.t window configure 1.2 -window] \
+ [.tt.t window configure 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {{-window {} {} {} .t.f} {-window {} {} {} .tt.t.f}}
+
+test textWind-17.7 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -window [frame .t.f -width 10 -height 20 -bg blue]
+ update ; update
+ list [.t window cget 1.2 -window] [.tt.t window cget 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {.t.f {}}
+
+test textWind-17.8 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -window [frame .t.f -width 10 -height 20 -bg blue]
+ update ; update
+ list [.t window configure 1.2 -window] \
+ [.tt.t window configure 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {{-window {} {} {} .t.f} {-window {} {} {} {}}}
+
+test textWind-17.9 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -window [frame .t.f -width 10 -height 20 -bg blue]
+ update ; update
+ .tt.t window configure 1.2 -window [frame .tt.t.f -width 10 -height 20 -bg red]
+ list [.t window configure 1.2 -window] [.tt.t window configure 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {{-window {} {} {} .t.f} {-window {} {} {} .tt.t.f}}
+
+test textWind-17.10 {peer widget window configuration} -setup {
+ destroy .t .tt
+} -body {
+ pack [text .t]
+ .t delete 1.0 end
+ .t insert 1.0 "Some sample text"
+ toplevel .tt
+ pack [.t peer create .tt.t]
+ .t window create 1.2 -window [frame .t.f -width 10 -height 20 -bg blue]
+ .tt.t window create 1.2 -window [frame .tt.t.f -width 25 -height 20 -bg blue]
+ update ; update
+ .t window configure 1.2 -create \
+ {destroy %W.f ; frame %W.f -width 50 -height 7 -bg red}
+ .tt.t window configure 1.2 -window {}
+ .t window configure 1.2 -window {}
+ set res [list [.t window configure 1.2 -window] \
+ [.tt.t window configure 1.2 -window]]
+ update
+ lappend res [.t window configure 1.2 -window] \
+ [.tt.t window configure 1.2 -window]
+} -cleanup {
+ destroy .tt .t
+} -result {{-window {} {} {} {}} {-window {} {} {} {}} {-window {} {} {} .t.f} {-window {} {} {} .tt.t.f}}
+
+test textWind-18.1 {embedded window deletion triggered by a script bound to <Map>} -setup {
+ catch {destroy .t .f .f2}
+} -body {
+ pack [text .t]
+ for {set i 1} {$i < 100} {incr i} {.t insert end "Line $i\n"}
+ .t window create end -window [frame .f -background red -width 80 -height 80]
+ .t window create end -window [frame .f2 -background blue -width 80 -height 80]
+ bind .f <Map> {.t delete .f}
+ update
+ # this shall not crash (bug 1501749)
+ after 100 {.t yview end}
+ tkwait visibility .f2
+ update
+} -cleanup {
+ destroy .t .f .f2
+} -result {}
+
+option clear
+
+# cleanup
+cleanupTests
+return