1396 lines
44 KiB
Plaintext
1396 lines
44 KiB
Plaintext
# This file is a Tcl script to test out the "listbox" command
|
|
# of Tk. It is organized in the standard fashion for Tcl tests.
|
|
#
|
|
# Copyright (c) 1993-1994 The Regents of the University of California.
|
|
# Copyright (c) 1994-1995 Sun Microsystems, Inc.
|
|
#
|
|
# See the file "license.terms" for information on usage and redistribution
|
|
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|
#
|
|
# SCCS: @(#) listbox.test 1.34 96/08/21 09:56:12
|
|
|
|
if {[string compare test [info procs test]] == 1} then \
|
|
{source defs}
|
|
|
|
foreach i [winfo children .] {
|
|
destroy $i
|
|
}
|
|
wm geometry . {}
|
|
raise .
|
|
set fixed -adobe-courier-medium-r-normal--12-120-75-75-m-*-iso8859-1
|
|
|
|
proc record args {
|
|
global log
|
|
lappend log $args
|
|
}
|
|
|
|
proc getsize w {
|
|
regexp {(^[^+-]*)} [wm geometry $w] foo x
|
|
return $x
|
|
}
|
|
|
|
proc resetGridInfo {} {
|
|
# Some window managers, such as mwm, don't reset gridding information
|
|
# unless the window is withdrawn and re-mapped. If this procedure
|
|
# isn't invoked, the window manager will stay in gridded mode, which
|
|
# can cause all sorts of problems. The "wm positionfrom" command is
|
|
# needed so that the window manager doesn't ask the user to
|
|
# manually position the window when it is re-mapped.
|
|
|
|
wm withdraw .
|
|
wm positionfrom . user
|
|
wm deiconify .
|
|
}
|
|
|
|
# Procedure that creates a second listbox for checking things related
|
|
# to partially visible lines.
|
|
|
|
proc mkPartial {{w .partial}} {
|
|
catch {destroy $w}
|
|
toplevel $w
|
|
wm geometry $w +0+0
|
|
listbox $w.l -width 30 -height 5
|
|
pack $w.l -expand 1 -fill both
|
|
$w.l insert end one two three four five six seven eight nine ten \
|
|
eleven twelve thirteen fourteen fifteen
|
|
update
|
|
scan [wm geometry $w] "%dx%d" width height
|
|
wm geometry $w ${width}x[expr $height-3]
|
|
update
|
|
}
|
|
|
|
listbox .l
|
|
pack .l
|
|
update
|
|
resetGridInfo
|
|
set i 1
|
|
|
|
foreach test {
|
|
{-background #ff0000 #ff0000 non-existent
|
|
{unknown color name "non-existent"}}
|
|
{-bd 4 4 badValue {bad screen distance "badValue"}}
|
|
{-bg #ff0000 #ff0000 non-existent {unknown color name "non-existent"}}
|
|
{-borderwidth 1.3 1 badValue {bad screen distance "badValue"}}
|
|
{-cursor arrow arrow badValue {bad cursor spec "badValue"}}
|
|
{-exportselection yes 1 xyzzy {expected boolean value but got "xyzzy"}}
|
|
{-fg #110022 #110022 bogus {unknown color name "bogus"}}
|
|
{-font -Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*
|
|
-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* bogus
|
|
{font "bogus" doesn't exist}}
|
|
{-foreground #110022 #110022 bogus {unknown color name "bogus"}}
|
|
{-height 30 30 20p {expected integer but got "20p"}}
|
|
{-highlightbackground #112233 #112233 ugly {unknown color name "ugly"}}
|
|
{-highlightcolor #123456 #123456 bogus {unknown color name "bogus"}}
|
|
{-highlightthickness 6 6 bogus {bad screen distance "bogus"}}
|
|
{-highlightthickness -2 0 {} {}}
|
|
{-relief groove groove 1.5 {bad relief type "1.5": must be flat, groove, raised, ridge, or sunken}}
|
|
{-selectbackground #110022 #110022 bogus {unknown color name "bogus"}}
|
|
{-selectborderwidth 1.3 1 badValue {bad screen distance "badValue"}}
|
|
{-selectforeground #654321 #654321 bogus {unknown color name "bogus"}}
|
|
{-selectmode string string {} {}}
|
|
{-setgrid false 0 lousy {expected boolean value but got "lousy"}}
|
|
{-takefocus "any string" "any string" {} {}}
|
|
{-width 45 45 3p {expected integer but got "3p"}}
|
|
{-xscrollcommand {Some command} {Some command} {} {}}
|
|
{-yscrollcommand {Another command} {Another command} {} {}}
|
|
} {
|
|
set name [lindex $test 0]
|
|
test listbox-1.$i {configuration options} {
|
|
.l configure $name [lindex $test 1]
|
|
list [lindex [.l configure $name] 4] [.l cget $name]
|
|
} [list [lindex $test 2] [lindex $test 2]]
|
|
incr i
|
|
if {[lindex $test 3] != ""} {
|
|
test listbox-1.$i {configuration options} {
|
|
list [catch {.l configure $name [lindex $test 3]} msg] $msg
|
|
} [list 1 [lindex $test 4]]
|
|
}
|
|
.l configure $name [lindex [.l configure $name] 3]
|
|
incr i
|
|
}
|
|
|
|
test listbox-2.1 {Tk_ListboxCmd procedure} {
|
|
list [catch {listbox} msg] $msg
|
|
} {1 {wrong # args: should be "listbox pathName ?options?"}}
|
|
test listbox-2.2 {Tk_ListboxCmd procedure} {
|
|
list [catch {listbox gorp} msg] $msg
|
|
} {1 {bad window path name "gorp"}}
|
|
test listbox-2.3 {Tk_ListboxCmd procedure} {
|
|
catch {destroy .l}
|
|
listbox .l
|
|
list [winfo exists .l] [winfo class .l] [info commands .l]
|
|
} {1 Listbox .l}
|
|
test listbox-2.4 {Tk_ListboxCmd procedure} {
|
|
catch {destroy .l}
|
|
list [catch {listbox .l -gorp foo} msg] $msg [winfo exists .l] \
|
|
[info commands .l]
|
|
} {1 {unknown option "-gorp"} 0 {}}
|
|
test listbox-2.5 {Tk_ListboxCmd procedure} {
|
|
catch {destroy .l}
|
|
listbox .l
|
|
} {.l}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -width 20 -height 5 -bd 4 -highlightthickness 1 -selectborderwidth 2
|
|
pack .l
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8 el9 el10 el11 el12 el13 el14 \
|
|
el15 el16 el17
|
|
update
|
|
test listbox-3.1 {ListboxWidgetCmd procedure} {
|
|
list [catch .l msg] $msg
|
|
} {1 {wrong # args: should be ".l option ?arg arg ...?"}}
|
|
test listbox-3.2 {ListboxWidgetCmd procedure, "activate" option} {
|
|
list [catch {.l activate} msg] $msg
|
|
} {1 {wrong # args: should be ".l activate index"}}
|
|
test listbox-3.3 {ListboxWidgetCmd procedure, "activate" option} {
|
|
list [catch {.l activate a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l activate index"}}
|
|
test listbox-3.4 {ListboxWidgetCmd procedure, "activate" option} {
|
|
list [catch {.l activate fooey} msg] $msg
|
|
} {1 {bad listbox index "fooey": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.5 {ListboxWidgetCmd procedure, "activate" option} {
|
|
.l activate 3
|
|
.l index active
|
|
} 3
|
|
test listbox-3.6 {ListboxWidgetCmd procedure, "bbox" option} {
|
|
list [catch {.l bbox} msg] $msg
|
|
} {1 {wrong # args: should be ".l bbox index"}}
|
|
test listbox-3.7 {ListboxWidgetCmd procedure, "bbox" option} {
|
|
list [catch {.l bbox a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l bbox index"}}
|
|
test listbox-3.8 {ListboxWidgetCmd procedure, "bbox" option} {
|
|
list [catch {.l bbox fooey} msg] $msg
|
|
} {1 {bad listbox index "fooey": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.9 {ListboxWidgetCmd procedure, "bbox" option} {
|
|
.l yview 3
|
|
update
|
|
list [.l bbox 2] [.l bbox 8]
|
|
} {{} {}}
|
|
test listbox-3.10 {ListboxWidgetCmd procedure, "bbox" option} {
|
|
# Used to generate a core dump before a bug was fixed (the last
|
|
# element would be on-screen if it existed, but it doesn't exist).
|
|
|
|
listbox .l2
|
|
pack .l2 -side top
|
|
tkwait visibility .l2
|
|
set x [.l2 bbox 0]
|
|
destroy .l2
|
|
set x
|
|
} {}
|
|
test listbox-3.11 {ListboxWidgetCmd procedure, "bbox" option} {fonts} {
|
|
.l yview 3
|
|
update
|
|
list [.l bbox 3] [.l bbox 4]
|
|
} {{5 7 16 14} {5 26 17 14}}
|
|
test listbox-3.12 {ListboxWidgetCmd procedure, "bbox" option} {fonts} {
|
|
catch {destroy .t}
|
|
toplevel .t
|
|
wm geom .t +0+0
|
|
listbox .t.l -width 10 -height 5
|
|
.t.l insert 0 "Short" "Somewhat longer" "Really, quite a whole lot longer than can possibly fit on the screen" "Short"
|
|
pack .t.l
|
|
update
|
|
.t.l xview moveto .2
|
|
.t.l bbox 2
|
|
} {-73 39 391 14}
|
|
test listbox-3.13 {ListboxWidgetCmd procedure, "bbox" option, partial last line} {fonts} {
|
|
mkPartial
|
|
list [.partial.l bbox 3] [.partial.l bbox 4]
|
|
} {{4 56 24 14} {4 73 22 14}}
|
|
test listbox-3.14 {ListboxWidgetCmd procedure, "cget" option} {
|
|
list [catch {.l cget} msg] $msg
|
|
} {1 {wrong # args: should be ".l cget option"}}
|
|
test listbox-3.15 {ListboxWidgetCmd procedure, "cget" option} {
|
|
list [catch {.l cget a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l cget option"}}
|
|
test listbox-3.16 {ListboxWidgetCmd procedure, "cget" option} {
|
|
list [catch {.l cget -gorp} msg] $msg
|
|
} {1 {unknown option "-gorp"}}
|
|
test listbox-3.17 {ListboxWidgetCmd procedure, "cget" option} {
|
|
.l cget -setgrid
|
|
} {0}
|
|
test listbox-3.18 {ListboxWidgetCmd procedure, "configure" option} {
|
|
llength [.l configure]
|
|
} {23}
|
|
test listbox-3.19 {ListboxWidgetCmd procedure, "configure" option} {
|
|
list [catch {.l configure -gorp} msg] $msg
|
|
} {1 {unknown option "-gorp"}}
|
|
test listbox-3.20 {ListboxWidgetCmd procedure, "configure" option} {
|
|
.l configure -setgrid
|
|
} {-setgrid setGrid SetGrid 0 0}
|
|
test listbox-3.21 {ListboxWidgetCmd procedure, "configure" option} {
|
|
list [catch {.l configure -gorp is_messy} msg] $msg
|
|
} {1 {unknown option "-gorp"}}
|
|
test listbox-3.22 {ListboxWidgetCmd procedure, "configure" option} {
|
|
set oldbd [.l cget -bd]
|
|
set oldht [.l cget -highlightthickness]
|
|
.l configure -bd 3 -highlightthickness 0
|
|
set x "[.l cget -bd] [.l cget -highlightthickness]"
|
|
.l configure -bd $oldbd -highlightthickness $oldht
|
|
set x
|
|
} {3 0}
|
|
test listbox-3.23 {ListboxWidgetCmd procedure, "curselection" option} {
|
|
list [catch {.l curselection a} msg] $msg
|
|
} {1 {wrong # args: should be ".l curselection"}}
|
|
test listbox-3.24 {ListboxWidgetCmd procedure, "curselection" option} {
|
|
.l selection clear 0 end
|
|
.l selection set 3 6
|
|
.l selection set 9
|
|
.l curselection
|
|
} {3 4 5 6 9}
|
|
test listbox-3.25 {ListboxWidgetCmd procedure, "delete" option} {
|
|
list [catch {.l delete} msg] $msg
|
|
} {1 {wrong # args: should be ".l delete firstIndex ?lastIndex?"}}
|
|
test listbox-3.26 {ListboxWidgetCmd procedure, "delete" option} {
|
|
list [catch {.l delete a b c} msg] $msg
|
|
} {1 {wrong # args: should be ".l delete firstIndex ?lastIndex?"}}
|
|
test listbox-3.27 {ListboxWidgetCmd procedure, "delete" option} {
|
|
list [catch {.l delete badIndex} msg] $msg
|
|
} {1 {bad listbox index "badIndex": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.28 {ListboxWidgetCmd procedure, "delete" option} {
|
|
list [catch {.l delete 2 123ab} msg] $msg
|
|
} {1 {bad listbox index "123ab": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.29 {ListboxWidgetCmd procedure, "delete" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 insert 0 el0 el1 el2 el3 el4 el5 el6 el7
|
|
.l2 delete 3
|
|
list [.l2 get 2] [.l2 get 3] [.l2 index end]
|
|
} {el2 el4 7}
|
|
test listbox-3.30 {ListboxWidgetCmd procedure, "delete" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 insert 0 el0 el1 el2 el3 el4 el5 el6 el7
|
|
.l2 delete 2 4
|
|
list [.l2 get 1] [.l2 get 2] [.l2 index end]
|
|
} {el1 el5 5}
|
|
test listbox-3.31 {ListboxWidgetCmd procedure, "get" option} {
|
|
list [catch {.l get} msg] $msg
|
|
} {1 {wrong # args: should be ".l get first ?last?"}}
|
|
test listbox-3.32 {ListboxWidgetCmd procedure, "get" option} {
|
|
list [catch {.l get a b c} msg] $msg
|
|
} {1 {wrong # args: should be ".l get first ?last?"}}
|
|
test listbox-3.33 {ListboxWidgetCmd procedure, "get" option} {
|
|
list [catch {.l get 2.4} msg] $msg
|
|
} {1 {bad listbox index "2.4": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.34 {ListboxWidgetCmd procedure, "get" option} {
|
|
list [catch {.l get end bogus} msg] $msg
|
|
} {1 {bad listbox index "bogus": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.35 {ListboxWidgetCmd procedure, "get" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 insert 0 el0 el1 el2 el3 el4 el5 el6 el7
|
|
list [.l2 get 0] [.l2 get 3] [.l2 get end]
|
|
} {el0 el3 el7}
|
|
test listbox-3.36 {ListboxWidgetCmd procedure, "get" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
list [.l2 get 0] [.l2 get end]
|
|
} {{} {}}
|
|
test listbox-3.37 {ListboxWidgetCmd procedure, "get" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 insert 0 el0 el1 el2 "two words" el4 el5 el6 el7
|
|
.l2 get 3 end
|
|
} {{two words} el4 el5 el6 el7}
|
|
test listbox-3.38 {ListboxWidgetCmd procedure, "index" option} {
|
|
list [catch {.l index} msg] $msg
|
|
} {1 {wrong # args: should be ".l index index"}}
|
|
test listbox-3.39 {ListboxWidgetCmd procedure, "index" option} {
|
|
list [catch {.l index a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l index index"}}
|
|
test listbox-3.40 {ListboxWidgetCmd procedure, "index" option} {
|
|
list [catch {.l index @} msg] $msg
|
|
} {1 {bad listbox index "@": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.41 {ListboxWidgetCmd procedure, "index" option} {
|
|
.l index 2
|
|
} 2
|
|
test listbox-3.42 {ListboxWidgetCmd procedure, "insert" option} {
|
|
list [catch {.l insert} msg] $msg
|
|
} {1 {wrong # args: should be ".l insert index ?element element ...?"}}
|
|
test listbox-3.43 {ListboxWidgetCmd procedure, "insert" option} {
|
|
list [catch {.l insert badIndex} msg] $msg
|
|
} {1 {bad listbox index "badIndex": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.44 {ListboxWidgetCmd procedure, "insert" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 insert end a b c d e
|
|
.l2 insert 3 x y z
|
|
.l2 get 0 end
|
|
} {a b c x y z d e}
|
|
test listbox-3.45 {ListboxWidgetCmd procedure, "nearest" option} {
|
|
list [catch {.l nearest} msg] $msg
|
|
} {1 {wrong # args: should be ".l nearest y"}}
|
|
test listbox-3.46 {ListboxWidgetCmd procedure, "nearest" option} {
|
|
list [catch {.l nearest a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l nearest y"}}
|
|
test listbox-3.47 {ListboxWidgetCmd procedure, "nearest" option} {
|
|
list [catch {.l nearest 20p} msg] $msg
|
|
} {1 {expected integer but got "20p"}}
|
|
test listbox-3.48 {ListboxWidgetCmd procedure, "nearest" option} {
|
|
.l nearest 1000
|
|
} {7}
|
|
test listbox-3.49 {ListboxWidgetCmd procedure, "scan" option} {
|
|
list [catch {.l scan a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l scan mark|dragto x y"}}
|
|
test listbox-3.50 {ListboxWidgetCmd procedure, "scan" option} {
|
|
list [catch {.l scan a b c d} msg] $msg
|
|
} {1 {wrong # args: should be ".l scan mark|dragto x y"}}
|
|
test listbox-3.51 {ListboxWidgetCmd procedure, "scan" option} {
|
|
list [catch {.l scan foo bogus 2} msg] $msg
|
|
} {1 {expected integer but got "bogus"}}
|
|
test listbox-3.52 {ListboxWidgetCmd procedure, "scan" option} {
|
|
list [catch {.l scan foo 2 2.3} msg] $msg
|
|
} {1 {expected integer but got "2.3"}}
|
|
test listbox-3.53 {ListboxWidgetCmd procedure, "scan" option} {fonts} {
|
|
catch {destroy .t}
|
|
toplevel .t
|
|
wm geom .t +0+0
|
|
listbox .t.l -width 10 -height 5
|
|
.t.l insert 0 "Short" "Somewhat longer" "Really, quite a whole lot longer than can possibly fit on the screen" "Short" a b c d e f g h i j
|
|
pack .t.l
|
|
update
|
|
.t.l scan mark 100 140
|
|
.t.l scan dragto 90 137
|
|
update
|
|
list [.t.l xview] [.t.l yview]
|
|
} {{0.250639 0.429668} {0.0714286 0.428571}}
|
|
test listbox-3.54 {ListboxWidgetCmd procedure, "scan" option} {
|
|
list [catch {.l scan foo 2 4} msg] $msg
|
|
} {1 {bad scan option "foo": must be mark or dragto}}
|
|
test listbox-3.55 {ListboxWidgetCmd procedure, "see" option} {
|
|
list [catch {.l see} msg] $msg
|
|
} {1 {wrong # args: should be ".l see index"}}
|
|
test listbox-3.56 {ListboxWidgetCmd procedure, "see" option} {
|
|
list [catch {.l see a b} msg] $msg
|
|
} {1 {wrong # args: should be ".l see index"}}
|
|
test listbox-3.57 {ListboxWidgetCmd procedure, "see" option} {
|
|
list [catch {.l see gorp} msg] $msg
|
|
} {1 {bad listbox index "gorp": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.58 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 7
|
|
.l index @0,0
|
|
} {7}
|
|
test listbox-3.59 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 11
|
|
.l index @0,0
|
|
} {7}
|
|
test listbox-3.60 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 6
|
|
.l index @0,0
|
|
} {6}
|
|
test listbox-3.61 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 5
|
|
.l index @0,0
|
|
} {3}
|
|
test listbox-3.62 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 12
|
|
.l index @0,0
|
|
} {8}
|
|
test listbox-3.63 {ListboxWidgetCmd procedure, "see" option} {
|
|
.l yview 7
|
|
.l see 13
|
|
.l index @0,0
|
|
} {11}
|
|
test listbox-3.64 {ListboxWidgetCmd procedure, "see" option, partial last line} {
|
|
mkPartial
|
|
.partial.l see 4
|
|
.partial.l index @0,0
|
|
} {1}
|
|
test listbox-3.65 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l select a} msg] $msg
|
|
} {1 {wrong # args: should be ".l selection option index ?index?"}}
|
|
test listbox-3.66 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l select a b c d} msg] $msg
|
|
} {1 {wrong # args: should be ".l selection option index ?index?"}}
|
|
test listbox-3.67 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l selection a bogus} msg] $msg
|
|
} {1 {bad listbox index "bogus": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.68 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l selection a 0 lousy} msg] $msg
|
|
} {1 {bad listbox index "lousy": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.69 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l selection anchor 0 0} msg] $msg
|
|
} {1 {wrong # args: should be ".l selection anchor index"}}
|
|
test listbox-3.70 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [.l selection anchor 5; .l index anchor] \
|
|
[.l selection anchor 0; .l index anchor]
|
|
} {5 0}
|
|
test listbox-3.71 {ListboxWidgetCmd procedure, "selection" option} {
|
|
.l selection clear 0 end
|
|
.l selection set 2 8
|
|
.l selection clear 3 4
|
|
.l curselection
|
|
} {2 5 6 7 8}
|
|
test listbox-3.72 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l selection includes 0 0} msg] $msg
|
|
} {1 {wrong # args: should be ".l selection includes index"}}
|
|
test listbox-3.73 {ListboxWidgetCmd procedure, "selection" option} {
|
|
.l selection clear 0 end
|
|
.l selection set 2 8
|
|
.l selection clear 4
|
|
list [.l selection includes 3] [.l selection includes 4] \
|
|
[.l selection includes 5]
|
|
} {1 0 1}
|
|
test listbox-3.74 {ListboxWidgetCmd procedure, "selection" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
.l2 selection includes 0
|
|
} {0}
|
|
test listbox-3.75 {ListboxWidgetCmd procedure, "selection" option} {
|
|
.l selection clear 0 end
|
|
.l selection set 2
|
|
.l selection set 5 7
|
|
.l curselection
|
|
} {2 5 6 7}
|
|
test listbox-3.76 {ListboxWidgetCmd procedure, "selection" option} {
|
|
list [catch {.l selection badOption 0 0} msg] $msg
|
|
} {1 {bad selection option "badOption": must be anchor, clear, includes, or set}}
|
|
test listbox-3.77 {ListboxWidgetCmd procedure, "size" option} {
|
|
list [catch {.l size a} msg] $msg
|
|
} {1 {wrong # args: should be ".l size"}}
|
|
test listbox-3.78 {ListboxWidgetCmd procedure, "size" option} {
|
|
.l size
|
|
} {18}
|
|
test listbox-3.79 {ListboxWidgetCmd procedure, "xview" option} {
|
|
catch {destroy .l2}
|
|
listbox .l2
|
|
update
|
|
.l2 xview
|
|
} {0 1}
|
|
test listbox-3.80 {ListboxWidgetCmd procedure, "xview" option} {
|
|
catch {destroy .l}
|
|
listbox .l -width 10 -height 5 -font $fixed
|
|
.l insert 0 a b c d e f g h i j k l m n o p q r s t
|
|
pack .l
|
|
update
|
|
.l xview
|
|
} {0 1}
|
|
catch {destroy .l}
|
|
listbox .l -width 10 -height 5 -font $fixed
|
|
.l insert 0 a b c d e f g h i j k l m n o p q r s t
|
|
.l insert 1 "0123456789a123456789b123456789c123456789d123456789"
|
|
pack .l
|
|
update
|
|
test listbox-3.81 {ListboxWidgetCmd procedure, "xview" option} {fonts} {
|
|
.l xview 4
|
|
.l xview
|
|
} {0.0804598 0.281609}
|
|
test listbox-3.82 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l xview foo} msg] $msg
|
|
} {1 {expected integer but got "foo"}}
|
|
test listbox-3.83 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l xview zoom a b} msg] $msg
|
|
} {1 {unknown option "zoom": must be moveto or scroll}}
|
|
test listbox-3.84 {ListboxWidgetCmd procedure, "xview" option} {fonts} {
|
|
.l xview 0
|
|
.l xview moveto .4
|
|
update
|
|
.l xview
|
|
} {0.382184 0.583333}
|
|
test listbox-3.85 {ListboxWidgetCmd procedure, "xview" option} {fonts} {
|
|
.l xview 0
|
|
.l xview scroll 2 units
|
|
update
|
|
.l xview
|
|
} {0.0402299 0.241379}
|
|
test listbox-3.86 {ListboxWidgetCmd procedure, "xview" option} {fonts} {
|
|
.l xview 30
|
|
.l xview scroll -1 pages
|
|
update
|
|
.l xview
|
|
} {0.442529 0.643678}
|
|
test listbox-3.87 {ListboxWidgetCmd procedure, "xview" option} {fonts} {
|
|
.l configure -width 1
|
|
update
|
|
.l xview 30
|
|
.l xview scroll -4 pages
|
|
update
|
|
.l xview
|
|
} {0.522989 0.543103}
|
|
test listbox-3.88 {ListboxWidgetCmd procedure, "yview" option} {
|
|
catch {destroy .l}
|
|
listbox .l
|
|
pack .l
|
|
update
|
|
.l yview
|
|
} {0 1}
|
|
test listbox-3.89 {ListboxWidgetCmd procedure, "yview" option} {
|
|
catch {destroy .l}
|
|
listbox .l
|
|
.l insert 0 el1
|
|
pack .l
|
|
update
|
|
.l yview
|
|
} {0 1}
|
|
catch {destroy .l}
|
|
listbox .l -width 10 -height 5 -font $fixed
|
|
.l insert 0 a b c d e f g h i j k l m n o p q r s t
|
|
pack .l
|
|
update
|
|
test listbox-3.90 {ListboxWidgetCmd procedure, "yview" option} {
|
|
.l yview 4
|
|
update
|
|
.l yview
|
|
} {0.2 0.45}
|
|
test listbox-3.91 {ListboxWidgetCmd procedure, "yview" option, partial last line} {
|
|
mkPartial
|
|
.partial.l yview
|
|
} {0 0.266667}
|
|
test listbox-3.92 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l yview foo} msg] $msg
|
|
} {1 {bad listbox index "foo": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-3.93 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l yview foo a b} msg] $msg
|
|
} {1 {unknown option "foo": must be moveto or scroll}}
|
|
test listbox-3.94 {ListboxWidgetCmd procedure, "xview" option} {
|
|
.l yview 0
|
|
.l yview moveto .31
|
|
.l yview
|
|
} {0.3 0.55}
|
|
test listbox-3.95 {ListboxWidgetCmd procedure, "xview" option} {
|
|
.l yview 2
|
|
.l yview scroll 2 pages
|
|
.l yview
|
|
} {0.4 0.65}
|
|
test listbox-3.96 {ListboxWidgetCmd procedure, "xview" option} {
|
|
.l yview 10
|
|
.l yview scroll -3 units
|
|
.l yview
|
|
} {0.35 0.6}
|
|
test listbox-3.97 {ListboxWidgetCmd procedure, "xview" option} {
|
|
.l configure -height 2
|
|
update
|
|
.l yview 15
|
|
.l yview scroll -4 pages
|
|
.l yview
|
|
} {0.55 0.65}
|
|
test listbox-3.98 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l whoknows} msg] $msg
|
|
} {1 {bad option "whoknows": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview}}
|
|
test listbox-3.99 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l c} msg] $msg
|
|
} {1 {bad option "c": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview}}
|
|
test listbox-3.100 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l in} msg] $msg
|
|
} {1 {bad option "in": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview}}
|
|
test listbox-3.101 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l s} msg] $msg
|
|
} {1 {bad option "s": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview}}
|
|
test listbox-3.102 {ListboxWidgetCmd procedure, "xview" option} {
|
|
list [catch {.l se} msg] $msg
|
|
} {1 {bad option "se": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview}}
|
|
|
|
# No tests for DestroyListbox: I can't come up with anything to test
|
|
# in this procedure.
|
|
|
|
test listbox-4.1 {ConfigureListbox procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -setgrid 1 -width 25 -height 15
|
|
pack .l
|
|
update
|
|
set x [getsize .]
|
|
.l configure -setgrid 0
|
|
update
|
|
list $x [getsize .]
|
|
} {25x15 185x263}
|
|
resetGridInfo
|
|
test listbox-4.2 {ConfigureListbox procedure} {
|
|
.l configure -highlightthickness -3
|
|
.l cget -highlightthickness
|
|
} {0}
|
|
test listbox-4.3 {ConfigureListbox procedure} {
|
|
.l configure -exportselection 0
|
|
.l delete 0 end
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8
|
|
.l selection set 3 5
|
|
.l configure -exportselection 1
|
|
selection get
|
|
} {el3
|
|
el4
|
|
el5}
|
|
test listbox-4.4 {ConfigureListbox procedure} {
|
|
catch {destroy .e}
|
|
entry .e
|
|
.e insert 0 abc
|
|
.e select from 0
|
|
.e select to 2
|
|
.l configure -exportselection 0
|
|
.l delete 0 end
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8
|
|
.l selection set 3 5
|
|
.l selection clear 3 5
|
|
.l configure -exportselection 1
|
|
list [selection own] [selection get]
|
|
} {.e ab}
|
|
test listbox-4.5 {-exportselection option} {
|
|
selection clear .
|
|
.l configure -exportselection 1
|
|
.l delete 0 end
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8
|
|
.l selection set 1 1
|
|
set x {}
|
|
lappend x [catch {selection get} msg] $msg [.l curselection]
|
|
.l config -exportselection 0
|
|
lappend x [catch {selection get} msg] $msg [.l curselection]
|
|
.l selection clear 0 end
|
|
lappend x [catch {selection get} msg] $msg [.l curselection]
|
|
.l selection set 1 3
|
|
lappend x [catch {selection get} msg] $msg [.l curselection]
|
|
.l config -exportselection 1
|
|
lappend x [catch {selection get} msg] $msg [.l curselection]
|
|
} {0 el1 1 1 {PRIMARY selection doesn't exist or form "STRING" not defined} 1 1 {PRIMARY selection doesn't exist or form "STRING" not defined} {} 1 {PRIMARY selection doesn't exist or form "STRING" not defined} {1 2 3} 0 {el1
|
|
el2
|
|
el3} {1 2 3}}
|
|
test listbox-4.6 {ConfigureListbox procedure} {fonts} {
|
|
catch {destroy .l}
|
|
|
|
# The following code (reset geometry, withdraw, etc.) is necessary
|
|
# to reset the state of some window managers like olvwm under
|
|
# SunOS 4.1.3.
|
|
|
|
wm geom . 300x300
|
|
update
|
|
wm geom . {}
|
|
wm withdraw .
|
|
listbox .l -font $fixed -width 15 -height 20
|
|
pack .l
|
|
update
|
|
wm deiconify .
|
|
set x [getsize .]
|
|
.l configure -setgrid 1
|
|
update
|
|
list $x [getsize .]
|
|
} {115x328 15x20}
|
|
test listbox-4.7 {ConfigureListbox procedure} {
|
|
catch {destroy .l}
|
|
wm withdraw .
|
|
listbox .l -font $fixed -width 15 -height 20 -setgrid 1
|
|
wm geom . +0+0
|
|
pack .l
|
|
update
|
|
wm deiconify .
|
|
set result [getsize .]
|
|
wm geom . 13x15
|
|
update
|
|
lappend result [getsize .]
|
|
.l configure -setgrid 1
|
|
update
|
|
lappend result [getsize .]
|
|
} {15x20 13x15 13x15}
|
|
wm geom . {}
|
|
catch {destroy .l}
|
|
resetGridInfo
|
|
test listbox-4.8 {ConfigureListbox procedure} {
|
|
catch {destroy .l}
|
|
listbox .l -width 15 -height 20 -xscrollcommand "record x" \
|
|
-yscrollcommand "record y"
|
|
pack .l
|
|
update
|
|
.l configure -fg black
|
|
set log {}
|
|
update
|
|
set log
|
|
} {{y 0 1} {x 0 1}}
|
|
|
|
# No tests for DisplayListbox: I don't know how to test this procedure.
|
|
|
|
test listbox-5.1 {ListboxComputeGeometry procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 15 -height 20
|
|
pack .l
|
|
list [winfo reqwidth .l] [winfo reqheight .l]
|
|
} {115 328}
|
|
test listbox-5.2 {ListboxComputeGeometry procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 0 -height 10
|
|
pack .l
|
|
update
|
|
list [winfo reqwidth .l] [winfo reqheight .l]
|
|
} {17 168}
|
|
test listbox-5.3 {ListboxComputeGeometry procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 0 -height 10 -bd 3
|
|
.l insert 0 Short "Really much longer" Longer
|
|
pack .l
|
|
update
|
|
list [winfo reqwidth .l] [winfo reqheight .l]
|
|
} {138 170}
|
|
test listbox-5.4 {ListboxComputeGeometry procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 10 -height 0
|
|
pack .l
|
|
update
|
|
list [winfo reqwidth .l] [winfo reqheight .l]
|
|
} {80 24}
|
|
test listbox-5.5 {ListboxComputeGeometry procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 10 -height 0 -highlightthickness 0
|
|
.l insert 0 Short "Really much longer" Longer
|
|
pack .l
|
|
update
|
|
list [winfo reqwidth .l] [winfo reqheight .l]
|
|
} {76 52}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -height 2 -xscrollcommand "record x" -yscrollcommand "record y"
|
|
pack .l
|
|
update
|
|
test listbox-6.1 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert end a b c d
|
|
.l insert 5 x y z
|
|
.l insert 2 A
|
|
.l insert 0 q r s
|
|
.l get 0 end
|
|
} {q r s a b A c d x y z}
|
|
test listbox-6.2 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 2
|
|
.l insert 2 A B
|
|
.l index anchor
|
|
} {4}
|
|
test listbox-6.3 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 2
|
|
.l insert 3 A B
|
|
.l index anchor
|
|
} {2}
|
|
test listbox-6.4 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l insert 2 A B
|
|
.l index @0,0
|
|
} {5}
|
|
test listbox-6.5 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l insert 3 A B
|
|
.l index @0,0
|
|
} {3}
|
|
test listbox-6.6 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 5
|
|
.l insert 5 A B
|
|
.l index active
|
|
} {7}
|
|
test listbox-6.7 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 5
|
|
.l insert 6 A B
|
|
.l index active
|
|
} {5}
|
|
test listbox-6.8 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c
|
|
.l index active
|
|
} {2}
|
|
test listbox-6.9 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0
|
|
.l index active
|
|
} {0}
|
|
test listbox-6.10 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b "two words" c d e f g h i j
|
|
update
|
|
set log {}
|
|
.l insert 0 word
|
|
update
|
|
set log
|
|
} {{y 0 0.166667}}
|
|
test listbox-6.11 {InsertEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b "two words" c d e f g h i j
|
|
update
|
|
set log {}
|
|
.l insert 0 "much longer entry"
|
|
update
|
|
set log
|
|
} {{y 0 0.166667} {x 0 1}}
|
|
test listbox-6.12 {InsertEls procedure} {fonts} {
|
|
catch {destroy .l2}
|
|
listbox .l2 -width 0 -height 0
|
|
pack .l2 -side top
|
|
.l2 insert 0 a b "two words" c d
|
|
set x {}
|
|
lappend x [winfo reqwidth .l2] [winfo reqheight .l2]
|
|
.l2 insert 0 "much longer entry"
|
|
lappend x [winfo reqwidth .l2] [winfo reqheight .l2]
|
|
} {73 93 122 110}
|
|
|
|
test listbox-7.1 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection set 1 6
|
|
.l delete 4 3
|
|
list [.l size] [selection get]
|
|
} {10 {b
|
|
c
|
|
d
|
|
e
|
|
f
|
|
g}}
|
|
test listbox-7.2 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection set 3 6
|
|
.l delete 4 4
|
|
list [.l size] [.l get 4] [.l curselection]
|
|
} {9 f {3 4 5}}
|
|
test listbox-7.3 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l delete 0 3
|
|
list [.l size] [.l get 0] [.l get 1]
|
|
} {6 e f}
|
|
test listbox-7.4 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l delete 8 1000
|
|
list [.l size] [.l get 7]
|
|
} {8 h}
|
|
test listbox-7.5 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 2
|
|
.l delete 0 1
|
|
.l index anchor
|
|
} {0}
|
|
test listbox-7.6 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 2
|
|
.l delete 2
|
|
.l index anchor
|
|
} {2}
|
|
test listbox-7.7 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 4
|
|
.l delete 2 5
|
|
.l index anchor
|
|
} {2}
|
|
test listbox-7.8 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l selection anchor 3
|
|
.l delete 4 5
|
|
.l index anchor
|
|
} {3}
|
|
test listbox-7.9 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l delete 1 2
|
|
.l index @0,0
|
|
} {1}
|
|
test listbox-7.10 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l delete 3 4
|
|
.l index @0,0
|
|
} {3}
|
|
test listbox-7.11 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l delete 4 6
|
|
.l index @0,0
|
|
} {3}
|
|
test listbox-7.12 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
.l delete 3 end
|
|
.l index @0,0
|
|
} {1}
|
|
test listbox-7.13 {DeleteEls procedure, updating view with partial last line} {
|
|
mkPartial
|
|
.partial.l yview 8
|
|
update
|
|
.partial.l delete 10 13
|
|
.partial.l index @0,0
|
|
} {7}
|
|
test listbox-7.14 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 6
|
|
.l delete 3 4
|
|
.l index active
|
|
} {4}
|
|
test listbox-7.15 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 6
|
|
.l delete 5 7
|
|
.l index active
|
|
} {5}
|
|
test listbox-7.16 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 6
|
|
.l delete 5 end
|
|
.l index active
|
|
} {4}
|
|
test listbox-7.17 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j
|
|
.l activate 6
|
|
.l delete 0 end
|
|
.l index active
|
|
} {0}
|
|
test listbox-7.18 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c "two words" d e f g h i j
|
|
update
|
|
set log {}
|
|
.l delete 4 6
|
|
update
|
|
set log
|
|
} {{y 0 0.25}}
|
|
test listbox-7.19 {DeleteEls procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c "two words" d e f g h i j
|
|
update
|
|
set log {}
|
|
.l delete 3
|
|
update
|
|
set log
|
|
} {{y 0 0.2} {x 0 1}}
|
|
test listbox-7.20 {DeleteEls procedure} {fonts} {
|
|
catch {destroy .l2}
|
|
listbox .l2 -width 0 -height 0
|
|
pack .l2 -side top
|
|
.l2 insert 0 a b "two words" c d e f g
|
|
set x {}
|
|
lappend x [winfo reqwidth .l2] [winfo reqheight .l2]
|
|
.l2 delete 2 4
|
|
lappend x [winfo reqwidth .l2] [winfo reqheight .l2]
|
|
} {73 144 17 93}
|
|
catch {destroy .l2}
|
|
|
|
test listbox-8.1 {ListboxEventProc procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -setgrid 1
|
|
pack .l
|
|
update
|
|
set x [getsize .]
|
|
destroy .l
|
|
list $x [getsize .] [winfo exists .l] [info command .l]
|
|
} {20x10 150x178 0 {}}
|
|
resetGridInfo
|
|
test listbox-8.2 {ListboxEventProc procedure} {fonts} {
|
|
catch {destroy .l}
|
|
listbox .l -height 5 -width 10
|
|
.l insert 0 a b c "A string that is very very long" d e f g h i j k
|
|
pack .l
|
|
update
|
|
place .l -width 50 -height 80
|
|
update
|
|
list [.l xview] [.l yview]
|
|
} {{0 0.223464} {0 0.333333}}
|
|
test button-8.3 {ListboxEventProc procedure} {
|
|
eval destroy [winfo children .]
|
|
listbox .l1 -bg #543210
|
|
rename .l1 .l2
|
|
set x {}
|
|
lappend x [winfo children .]
|
|
lappend x [.l2 cget -bg]
|
|
destroy .l1
|
|
lappend x [info command .l*] [winfo children .]
|
|
} {.l1 #543210 {} {}}
|
|
|
|
test button-9.1 {ListboxCmdDeletedProc procedure} {
|
|
eval destroy [winfo children .]
|
|
listbox .l1
|
|
rename .l1 {}
|
|
list [info command .l*] [winfo children .]
|
|
} {{} {}}
|
|
test text-9.2 {ListboxCmdDeletedProc procedure, disabling -setgrid} fonts {
|
|
catch {destroy .top}
|
|
toplevel .top
|
|
wm geom .top +0+0
|
|
listbox .top.l -setgrid 1 -width 20 -height 10
|
|
pack .top.l
|
|
update
|
|
set x [wm geometry .top]
|
|
rename .top.l {}
|
|
update
|
|
lappend x [wm geometry .top]
|
|
destroy .top
|
|
set x
|
|
} {20x10+0+0 150x178+0+0}
|
|
|
|
catch {destroy .l}
|
|
listbox .l
|
|
pack .l
|
|
.l delete 0 end
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8 el9 el10 el11
|
|
test listbox-10.1 {GetListboxIndex procedure} {
|
|
.l activate 3
|
|
list [.l activate 3; .l index active] [.l activate 6; .l index active]
|
|
} {3 6}
|
|
test listbox-10.2 {GetListboxIndex procedure} {
|
|
.l selection anchor 2
|
|
.l index anchor
|
|
} 2
|
|
test listbox-10.3 {GetListboxIndex procedure} {
|
|
.l insert end A B C D E
|
|
.l selection anchor end
|
|
.l delete 12 end
|
|
list [.l index anchor] [.l index end]
|
|
} {12 12}
|
|
test listbox-10.4 {GetListboxIndex procedure} {
|
|
list [catch {.l index a} msg] $msg
|
|
} {1 {bad listbox index "a": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.5 {GetListboxIndex procedure} {
|
|
.l index end
|
|
} {12}
|
|
test listbox-10.6 {GetListboxIndex procedure} {
|
|
.l get end
|
|
} {el11}
|
|
test listbox-10.7 {GetListboxIndex procedure} {
|
|
.l delete 0 end
|
|
.l index end
|
|
} 0
|
|
.l delete 0 end
|
|
.l insert 0 el0 el1 el2 el3 el4 el5 el6 el7 el8 el9 el10 el11
|
|
update
|
|
test listbox-10.8 {GetListboxIndex procedure} {
|
|
list [catch {.l index @} msg] $msg
|
|
} {1 {bad listbox index "@": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.9 {GetListboxIndex procedure} {
|
|
list [catch {.l index @foo} msg] $msg
|
|
} {1 {bad listbox index "@foo": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.10 {GetListboxIndex procedure} {
|
|
list [catch {.l index @1x3} msg] $msg
|
|
} {1 {bad listbox index "@1x3": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.11 {GetListboxIndex procedure} {
|
|
list [catch {.l index @1,} msg] $msg
|
|
} {1 {bad listbox index "@1,": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.12 {GetListboxIndex procedure} {
|
|
list [catch {.l index @1,foo} msg] $msg
|
|
} {1 {bad listbox index "@1,foo": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.13 {GetListboxIndex procedure} {
|
|
list [catch {.l index @1,2x} msg] $msg
|
|
} {1 {bad listbox index "@1,2x": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.14 {GetListboxIndex procedure} {fonts} {
|
|
list [.l index @5,57] [.l index @5,58]
|
|
} {3 3}
|
|
test listbox-10.15 {GetListboxIndex procedure} {
|
|
list [catch {.l index 1xy} msg] $msg
|
|
} {1 {bad listbox index "1xy": must be active, anchor, end, @x,y, or a number}}
|
|
test listbox-10.16 {GetListboxIndex procedure} {
|
|
.l index 3
|
|
} {3}
|
|
test listbox-10.17 {GetListboxIndex procedure} {
|
|
.l index 20
|
|
} {12}
|
|
test listbox-10.18 {GetListboxIndex procedure} {
|
|
.l get 20
|
|
} {el11}
|
|
test listbox-10.19 {GetListboxIndex procedure} {
|
|
.l index -2
|
|
} 0
|
|
test listbox-10.20 {GetListboxIndex procedure} {
|
|
.l delete 0 end
|
|
.l index 1
|
|
} 0
|
|
|
|
test listbox-11.1 {ChangeListboxView procedure} {
|
|
catch {destroy .l}
|
|
listbox .l -height 5 -yscrollcommand "record y"
|
|
pack .l
|
|
.l insert 0 a b c d e f g h i j
|
|
update
|
|
set log {}
|
|
.l yview 2
|
|
update
|
|
list [.l yview] $log
|
|
} {{0.2 0.7} {{y 0.2 0.7}}}
|
|
test listbox-11.2 {ChangeListboxView procedure} {
|
|
catch {destroy .l}
|
|
listbox .l -height 5 -yscrollcommand "record y"
|
|
pack .l
|
|
.l insert 0 a b c d e f g h i j
|
|
update
|
|
set log {}
|
|
.l yview 8
|
|
update
|
|
list [.l yview] $log
|
|
} {{0.5 1} {{y 0.5 1}}}
|
|
test listbox-11.3 {ChangeListboxView procedure} {
|
|
catch {destroy .l}
|
|
listbox .l -height 5 -yscrollcommand "record y"
|
|
pack .l
|
|
.l insert 0 a b c d e f g h i j
|
|
.l yview 3
|
|
update
|
|
set log {}
|
|
.l yview 3
|
|
update
|
|
list [.l yview] $log
|
|
} {{0.3 0.8} {}}
|
|
test listbox-11.4 {ChangeListboxView procedure, partial last line} {
|
|
mkPartial
|
|
.partial.l yview 13
|
|
.partial.l index @0,0
|
|
} {11}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -xscrollcommand "record x" -width 10
|
|
.l insert 0 0123456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789
|
|
pack .l
|
|
update
|
|
test listbox-12.1 {ChangeListboxOffset procedure} {fonts} {
|
|
set log {}
|
|
.l xview 99
|
|
update
|
|
list [.l xview] $log
|
|
} {{0.912607 1} {{x 0.912607 1}}}
|
|
test listbox-12.2 {ChangeListboxOffset procedure} {fonts} {
|
|
set log {}
|
|
.l xview moveto -.25
|
|
update
|
|
list [.l xview] $log
|
|
} {{0 0.100287} {{x 0 0.100287}}}
|
|
test listbox-12.3 {ChangeListboxOffset procedure} {fonts} {
|
|
.l xview 10
|
|
update
|
|
set log {}
|
|
.l xview 10
|
|
update
|
|
list [.l xview] $log
|
|
} {{0.100287 0.200573} {}}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 10 -height 5
|
|
pack .l
|
|
.l insert 0 a bb c d e f g h i j k l m n o p q r s
|
|
.l insert 0 0123456789a123456789b123456789c123456789d123456789
|
|
update
|
|
set width [expr [lindex [.l bbox 2] 2] - [lindex [.l bbox 1] 2]]
|
|
set height [expr [lindex [.l bbox 2] 1] - [lindex [.l bbox 1] 1]]
|
|
test listbox-13.1 {ListboxScanTo procedure} {fonts} {
|
|
.l yview 0
|
|
.l xview 0
|
|
.l scan mark 10 20
|
|
.l scan dragto [expr 10-$width] [expr 20-$height]
|
|
update
|
|
list [.l xview] [.l yview]
|
|
} {{0.201149 0.402299} {0.5 0.75}}
|
|
test listbox-13.2 {ListboxScanTo procedure} {fonts} {
|
|
.l yview 5
|
|
.l xview 10
|
|
.l scan mark 10 20
|
|
.l scan dragto 20 40
|
|
update
|
|
set x [list [.l xview] [.l yview]]
|
|
.l scan dragto [expr 20-$width] [expr 40-$height]
|
|
update
|
|
lappend x [.l xview] [.l yview]
|
|
} {{0 0.201149} {0 0.25} {0.201149 0.402299} {0.5 0.75}}
|
|
test listbox-13.3 {ListboxScanTo procedure} {fonts} {
|
|
.l yview moveto 1.0
|
|
.l xview moveto 1.0
|
|
.l scan mark 10 20
|
|
.l scan dragto 5 10
|
|
update
|
|
set x [list [.l xview] [.l yview]]
|
|
.l scan dragto [expr 5+$width] [expr 10+$height]
|
|
update
|
|
lappend x [.l xview] [.l yview]
|
|
} {{0.824713 1} {0.75 1} {0.623563 0.824713} {0.25 0.5}}
|
|
|
|
test listbox-14.1 {NearestListboxElement procedure, partial last line} {
|
|
mkPartial
|
|
.partial.l nearest [winfo height .partial.l]
|
|
} {4}
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 20 -height 10
|
|
.l insert 0 a b c d e f g h i j k l m n o p q r s t
|
|
.l yview 4
|
|
pack .l
|
|
update
|
|
test listbox-14.2 {NearestListboxElement procedure} {fonts} {
|
|
.l index @50,0
|
|
} {4}
|
|
test listbox-14.3 {NearestListboxElement procedure} {fonts} {
|
|
list [.l index @50,35] [.l index @50,36]
|
|
} {5 6}
|
|
test listbox-14.4 {NearestListboxElement procedure} {fonts} {
|
|
.l index @50,200
|
|
} {13}
|
|
|
|
test listbox-15.1 {ListboxSelect procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j k l m n o p
|
|
.l select set 2 4
|
|
.l select set 7 12
|
|
.l select clear 4 7
|
|
.l curselection
|
|
} {2 3 8 9 10 11 12}
|
|
test listbox-15.2 {ListboxSelect procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e f g h i j k l m n o p
|
|
catch {destroy .e}
|
|
entry .e
|
|
.e insert 0 "This is some text"
|
|
.e select from 0
|
|
.e select to 7
|
|
.l selection clear 2 4
|
|
set x [selection own]
|
|
.l selection set 3
|
|
list $x [selection own] [selection get]
|
|
} {.e .l d}
|
|
test listbox-15.3 {ListboxSelect procedure} {
|
|
.l delete 0 end
|
|
.l selection clear 0 end
|
|
.l select set 0 end
|
|
.l curselection
|
|
} {}
|
|
|
|
test listbox-16.1 {ListboxFetchSelection procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c "two words" e f g h i \\ k l m n o p
|
|
.l selection set 2 4
|
|
.l selection set 9
|
|
.l selection set 11 12
|
|
selection get
|
|
} "c\ntwo words\ne\n\\\nl\nm"
|
|
test listbox-16.2 {ListboxFetchSelection procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c "two words" e f g h i \\ k l m n o p
|
|
.l selection set 3
|
|
selection get
|
|
} "two words"
|
|
test listbox-16.3 {ListboxFetchSelection procedure, retrieve in several parts} {
|
|
set long "This is quite a long string\n"
|
|
append long $long $long $long $long
|
|
append long $long $long $long $long
|
|
append long $long $long
|
|
.l delete 0 end
|
|
.l insert 0 1$long 2$long 3$long 4$long 5$long
|
|
.l selection set 0 end
|
|
set sel [selection get]
|
|
string compare 1$long\n2$long\n3$long\n4$long\n5$long $sel
|
|
} {0}
|
|
catch {unset long sel}
|
|
|
|
test listbox-17.1 {ListboxLostSelection procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e
|
|
.l select set 0 end
|
|
catch {destroy .e}
|
|
entry .e
|
|
.e insert 0 "This is some text"
|
|
.e select from 0
|
|
.e select to 5
|
|
.l curselection
|
|
} {}
|
|
test listbox-17.2 {ListboxLostSelection procedure} {
|
|
.l delete 0 end
|
|
.l insert 0 a b c d e
|
|
.l select set 0 end
|
|
.l configure -exportselection 0
|
|
catch {destroy .e}
|
|
entry .e
|
|
.e insert 0 "This is some text"
|
|
.e select from 0
|
|
.e select to 5
|
|
.l curselection
|
|
} {0 1 2 3 4}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 10 -height 5
|
|
pack .l
|
|
update
|
|
test listbox-18.1 {ListboxUpdateVScrollbar procedure} {
|
|
.l configure -yscrollcommand "record y"
|
|
set log {}
|
|
.l insert 0 a b c
|
|
update
|
|
.l insert end d e f g h
|
|
update
|
|
.l delete 0 end
|
|
update
|
|
set log
|
|
} {{y 0 1} {y 0 0.625} {y 0 1}}
|
|
test listbox-18.2 {ListboxUpdateVScrollbar procedure, partial last line} {
|
|
mkPartial
|
|
.partial.l configure -yscrollcommand "record y"
|
|
set log {}
|
|
.partial.l yview 3
|
|
update
|
|
set log
|
|
} {{y 0.2 0.466667}}
|
|
test listbox-18.3 {ListboxUpdateVScrollbar procedure} {
|
|
proc bgerror args {
|
|
global x errorInfo
|
|
set x [list $args $errorInfo]
|
|
}
|
|
.l configure -yscrollcommand gorp
|
|
.l insert 0 foo
|
|
update
|
|
set x
|
|
} {{{invalid command name "gorp"}} {invalid command name "gorp"
|
|
while executing
|
|
"gorp 0 1"
|
|
(vertical scrolling command executed by listbox)}}
|
|
rename bgerror {}
|
|
|
|
catch {destroy .l}
|
|
listbox .l -font $fixed -width 10 -height 5
|
|
pack .l
|
|
update
|
|
test listbox-19.1 {ListboxUpdateVScrollbar procedure} {fonts} {
|
|
.l configure -xscrollcommand "record x"
|
|
set log {}
|
|
.l insert 0 abc
|
|
update
|
|
.l insert 0 "This is a much longer string..."
|
|
update
|
|
.l delete 0 end
|
|
update
|
|
set log
|
|
} {{x 0 1} {x 0 0.328638} {x 0 1}}
|
|
test listbox-19.2 {ListboxUpdateVScrollbar procedure} {
|
|
proc bgerror args {
|
|
global x errorInfo
|
|
set x [list $args $errorInfo]
|
|
}
|
|
.l configure -xscrollcommand bogus
|
|
.l insert 0 foo
|
|
update
|
|
set x
|
|
} {{{invalid command name "bogus"}} {invalid command name "bogus"
|
|
while executing
|
|
"bogus 0 1"
|
|
(horizontal scrolling command executed by listbox)}}
|
|
|
|
resetGridInfo
|
|
catch {destroy .l2}
|
|
catch {destroy .t}
|
|
catch {destroy .e}
|
|
catch {destroy .partial}
|
|
concat {}
|