OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [insight/] [tk/] [tests/] [canvas.test] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
# This file is a Tcl script to test out the procedures in tkCanvas.c,
2
# which implements generic code for canvases.  It is organized in the
3
# standard fashion for Tcl tests.
4
#
5
# Copyright (c) 1995-1996 Sun Microsystems, Inc.
6
# Copyright (c) 1998 by Scriptics Corporation.
7
#
8
# See the file "license.terms" for information on usage and redistribution
9
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
#
11
# RCS: @(#) $Id: canvas.test,v 1.1.1.1 2002-01-16 10:25:58 markom Exp $
12
 
13
if {[info procs test] != "test"} {
14
    source defs
15
}
16
 
17
foreach i [winfo children .] {
18
    destroy $i
19
}
20
wm geometry . {}
21
raise .
22
 
23
# XXX - This test file is woefully incomplete.  At present, only a
24
# few of the features are tested.
25
 
26
canvas .c
27
pack .c
28
update
29
set i 1
30
foreach test {
31
    {-background #ff0000 #ff0000 non-existent
32
            {unknown color name "non-existent"}}
33
    {-bg #ff0000 #ff0000 non-existent {unknown color name "non-existent"}}
34
    {-bd 4 4 badValue {bad screen distance "badValue"}}
35
    {-borderwidth 1.3 1 badValue {bad screen distance "badValue"}}
36
    {-closeenough 24 24.0 bogus {expected floating-point number but got "bogus"}}
37
    {-confine true 1 silly {expected boolean value but got "silly"}}
38
    {-cursor arrow arrow badValue {bad cursor spec "badValue"}}
39
    {-height 2.1 2 x42 {bad screen distance "x42"}}
40
    {-highlightbackground #112233 #112233 ugly {unknown color name "ugly"}}
41
    {-highlightcolor #110022 #110022 bogus {unknown color name "bogus"}}
42
    {-highlightthickness 18 18 badValue {bad screen distance "badValue"}}
43
    {-insertbackground #110022 #110022 bogus {unknown color name "bogus"}}
44
    {-insertborderwidth 1.3 1 2.6x {bad screen distance "2.6x"}}
45
    {-insertofftime 100 100 3.2 {expected integer but got "3.2"}}
46
    {-insertontime 100 100 3.2 {expected integer but got "3.2"}}
47
    {-insertwidth 1.3 1 6x {bad screen distance "6x"}}
48
    {-relief groove groove 1.5 {bad relief type "1.5": must be flat, groove, raised, ridge, solid, or sunken}}
49
    {-selectbackground #110022 #110022 bogus {unknown color name "bogus"}}
50
    {-selectborderwidth 1.3 1 badValue {bad screen distance "badValue"}}
51
    {-selectforeground #654321 #654321 bogus {unknown color name "bogus"}}
52
    {-takefocus "any string" "any string" {} {}}
53
    {-width 402 402 xyz {bad screen distance "xyz"}}
54
    {-xscrollcommand {Some command} {Some command} {} {}}
55
    {-yscrollcommand {Another command} {Another command} {} {}}
56
} {
57
    set name [lindex $test 0]
58
    test canvas-1.$i {configuration options} {
59
        .c configure $name [lindex $test 1]
60
        lindex [.c configure $name] 4
61
    } [lindex $test 2]
62
    incr i
63
    if {[lindex $test 3] != ""} {
64
        test canvas-1.$i {configuration options} {
65
            list [catch {.c configure $name [lindex $test 3]} msg] $msg
66
        } [list 1 [lindex $test 4]]
67
    }
68
    .c configure $name [lindex [.c configure $name] 3]
69
    incr i
70
}
71
 
72
 
73
catch {destroy .c}
74
canvas .c -width 60 -height 40 -scrollregion {0 0 200 150} -bd 0 \
75
        -highlightthickness 0
76
pack .c
77
update
78
test canvas-2.1 {CanvasWidgetCmd, xview option} {
79
    .c configure -xscrollincrement 40 -yscrollincrement 5
80
    .c xview moveto 0
81
    update
82
    set x [list [.c xview]]
83
    .c xview scroll 2 units
84
    update
85
    lappend x [.c xview]
86
} {{0 0.3} {0.4 0.7}}
87
test canvas-2.2 {CanvasWidgetCmd, xview option} {nonPortable} {
88
    # This test gives slightly different results on platforms such
89
    # as NetBSD.  I don't know why...
90
    .c configure -xscrollincrement 0 -yscrollincrement 5
91
    .c xview moveto 0.6
92
    update
93
    set x [list [.c xview]]
94
    .c xview scroll 2 units
95
    update
96
    lappend x [.c xview]
97
} {{0.6 0.9} {0.66 0.96}}
98
 
99
catch {destroy .c}
100
canvas .c -width 60 -height 40 -scrollregion {0 0 200 80} \
101
        -borderwidth 0 -highlightthickness 0
102
pack .c
103
update
104
test canvas-3.1 {CanvasWidgetCmd, yview option} {
105
    .c configure -xscrollincrement 40 -yscrollincrement 5
106
    .c yview moveto 0
107
    update
108
    set x [list [.c yview]]
109
    .c yview scroll 3 units
110
    update
111
    lappend x [.c yview]
112
} {{0 0.5} {0.1875 0.6875}}
113
test canvas-3.2 {CanvasWidgetCmd, yview option} {
114
    .c configure -xscrollincrement 40 -yscrollincrement 0
115
    .c yview moveto 0
116
    update
117
    set x [list [.c yview]]
118
    .c yview scroll 2 units
119
    update
120
    lappend x [.c yview]
121
} {{0 0.5} {0.1 0.6}}
122
 
123
test canvas-4.1 {ButtonEventProc procedure} {
124
    eval destroy [winfo children .]
125
    canvas .c1 -bg #543210
126
    rename .c1 .c2
127
    set x {}
128
    lappend x [winfo children .]
129
    lappend x [.c2 cget -bg]
130
    destroy .c1
131
    lappend x [info command .c*] [winfo children .]
132
} {.c1 #543210 {} {}}
133
 
134
test canvas-5.1 {ButtonCmdDeletedProc procedure} {
135
    eval destroy [winfo children .]
136
    canvas .c1
137
    rename .c1 {}
138
    list [info command .c*] [winfo children .]
139
} {{} {}}
140
 
141
catch {destroy .c}
142
canvas .c -width 100 -height 50 -scrollregion {-200 -100 305 102} \
143
        -borderwidth 2 -highlightthickness 3
144
pack .c
145
update
146
test canvas-6.1 {CanvasSetOrigin procedure} {
147
    .c configure -xscrollincrement 0 -yscrollincrement 0
148
    .c xview moveto 0
149
    .c yview moveto 0
150
    update
151
    list [.c canvasx 0] [.c canvasy 0]
152
} {-205.0 -105.0}
153
test canvas-6.2 {CanvasSetOrigin procedure} {
154
    .c configure -xscrollincrement 20 -yscrollincrement 10
155
    set x ""
156
    foreach i {.08 .10 .48 .50} {
157
        .c xview moveto $i
158
        update
159
        lappend x [.c canvasx 0]
160
    }
161
    set x
162
} {-165.0 -145.0 35.0 55.0}
163
test canvas-6.3 {CanvasSetOrigin procedure} {
164
    .c configure -xscrollincrement 20 -yscrollincrement 10
165
    set x ""
166
    foreach i {.06 .08 .70 .72} {
167
        .c yview moveto $i
168
        update
169
        lappend x [.c canvasy 0]
170
    }
171
    set x
172
} {-95.0 -85.0 35.0 45.0}
173
test canvas-6.4 {CanvasSetOrigin procedure} {
174
    .c configure -xscrollincrement 20 -yscrollincrement 10
175
    .c xview moveto 1.0
176
    .c canvasx 0
177
} {215.0}
178
test canvas-6.5 {CanvasSetOrigin procedure} {
179
    .c configure -xscrollincrement 20 -yscrollincrement 10
180
    .c yview moveto 1.0
181
    .c canvasy 0
182
} {55.0}
183
 
184
set l [interp hidden]
185
eval destroy [winfo children .]
186
 
187
test canvas-7.1 {canvas widget vs hidden commands} {
188
    catch {destroy .c}
189
    canvas .c
190
    interp hide {} .c
191
    destroy .c
192
    list [winfo children .] [interp hidden]
193
} [list {} $l]
194
 
195
test canvas-8.1 {canvas arc bbox} {
196
    catch {destroy .c}
197
    canvas .c
198
    .c create arc -100 10 100 210 -start 10 -extent 50 -style arc -tags arc1
199
    set arcBox [.c bbox arc1]
200
    .c create arc 100 10 300 210 -start 10 -extent 50 -style chord -tags arc2
201
    set coordBox [.c bbox arc2]
202
    .c create arc 300 10 500 210 -start 10 -extent 50 -style pieslice -tags arc3
203
    set pieBox [.c bbox arc3]
204
    list $arcBox $coordBox $pieBox
205
} {{48 21 100 94} {248 21 300 94} {398 21 500 112}}
206
test canvas-9.1 {canvas id creation and deletion} {
207
    # With Tk 8.0.4 the ids are now stored in a hash table.  You
208
    # can use this test as a performance test with older versions
209
    # by changing the value of size.
210
    set size 15
211
 
212
    catch {destroy .c}
213
    set c [canvas .c]
214
    for {set i 0} {$i < $size} {incr i} {
215
        set x [expr {-10 + 3*$i}]
216
        for {set j 0; set y -10} {$j < 10} {incr j; incr y 3} {
217
            $c create rect ${x}c ${y}c [expr $x+2]c [expr $y+2]c \
218
                    -outline black -fill blue -tags rect
219
            $c create text [expr $x+1]c [expr $y+1]c -text "$i,$j" \
220
                    -anchor center -tags text
221
        }
222
    }
223
 
224
    # The actual bench mark - this code also exercises all the hash
225
    # table changes.
226
 
227
    set time [lindex [time {
228
        foreach id [$c find withtag all] {
229
            $c lower $id
230
            $c raise $id
231
            $c find withtag $id
232
            $c bind  $id {}
233
            $c delete $id
234
        }
235
    }] 0]
236
 
237
    set x ""
238
} {}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.