1 ; Copyright 2022 Frank Duncan (frank@consxy.com) under AGPL3. See distributed LICENSE.txt.
2 (in-package #:clnl-gltk-test)
5 "8A20F6ABDEB91C20EDA85C78AED49767AB3A70EB"
8 (clnl-gltk:font-print "Hello World"))
11 ((tb (clnl-gltk:textbox 5 5 5 1 :text "Hello")))
13 "2CECA2C51025389617AA9A710B3625106009DF2E"
14 (clnl-gltk:render tb)))
17 ((tb (clnl-gltk:textbox 5 5 7 2 :text "Hello")))
19 "9BF11B56936F547523203EA2A81CC2DB2CB3CC19"
20 (clnl-gltk:render tb)))
23 ((tb (clnl-gltk:textbox 5 5 5 2 :text (format nil "Hello~%World"))))
24 (deftest "Text Box Multiline"
25 "D805DA6096FB970B1C5B4268B76F1917DCA4AE1C"
26 (clnl-gltk:render tb)))
29 ((tb (clnl-gltk:textbox 5 5 5 2 :text (format nil "Helloare~%Worlding~%fdsa"))))
30 (deftest "Text Box Multiline Clip"
31 "D805DA6096FB970B1C5B4268B76F1917DCA4AE1C"
32 (clnl-gltk:render tb)))
35 ((tb (clnl-gltk:textbox 5 50 5 2 :text (format nil "Helloare~%Worlding~%fdsa") :border nil)))
36 (deftest "Text Box Borderless"
37 "8D3B592B51A60A2BBC18564E6CBAF231B0AE19DD"
38 (clnl-gltk:render tb)))
41 ((tb (clnl-gltk:textbox 5 5 6 5 :text (format nil "Hi my name is~%frank") :border nil :word-wrap t)))
42 (deftest "Text Box Wrap 1"
43 "AB467A1E7195B299F2218995A05DD2E13C27DEE9"
44 (clnl-gltk:render tb)))
47 ((tb (clnl-gltk:textbox 5 5 3 5 :text (format nil "Hi my name is~%frank") :border nil :word-wrap t)))
48 (deftest "Text Box Wrap 2"
49 "021D8496E23E955D4315C08540CEBAACFF626E26"
50 (clnl-gltk:render tb)))
53 ((tb (clnl-gltk:textbox 5 5 2 5 :text (format nil "Hi m name is~%frank") :border nil :word-wrap t)))
54 (deftest "Text Box Wrap 3"
55 "5351DCF1D442B6313BD357B1DFB2C80ED3E0E6FB"
56 (clnl-gltk:render tb)))
59 ((ib (clnl-gltk:inputbox 5 5 5)))
60 (deftest "Input Box 1"
61 "17D991E70A129C1A57F503690D364BB0975A595B"
63 (clnl-gltk:render ib)))
66 ((ib (clnl-gltk:inputbox 5 5 5)))
67 (clnl-gltk:key-pressed ib 65)
68 (clnl-gltk:key-pressed ib 66)
69 (clnl-gltk:key-pressed ib 67)
70 (clnl-gltk:key-pressed ib :key-left)
71 (clnl-gltk:key-pressed ib :key-left)
72 (clnl-gltk:key-pressed ib 8)
73 (clnl-gltk:key-pressed ib :key-right)
74 (deftest "Input Box 2"
75 "D03BD310CB1CF22AE7A0F143BE523F9FC6F20D73"
77 (clnl-gltk:render ib)))
80 ((ib (clnl-gltk:inputbox 5 5 5)))
81 (clnl-gltk:key-pressed ib 65)
82 (clnl-gltk:key-pressed ib 66)
83 (clnl-gltk:key-pressed ib 67)
84 (clnl-gltk:key-pressed ib 68)
85 (clnl-gltk:key-pressed ib :key-left)
86 (clnl-gltk:key-pressed ib 21)
87 (deftest "Input Box 3"
88 "19EA65A5299EBF16021AE01F4BB9C39945829665"
90 (clnl-gltk:render ib)))
93 ((ib (clnl-gltk:inputbox 5 5 5))
94 (tb (clnl-gltk:textbox 5 28 5 1)))
95 (clnl-gltk:key-pressed ib 65)
96 (clnl-gltk:key-pressed ib 66)
97 (clnl-gltk:key-pressed ib 67)
98 (clnl-gltk:key-pressed ib 68)
99 (clnl-gltk:key-pressed ib 8)
100 (setf (clnl-gltk:textbox-text tb) (clnl-gltk:value ib))
102 (deftest "Input Box / Text Box"
103 "3456140503547591726C56C3E5A2956CBAB066F9"
105 (clnl-gltk:render tb)
106 (clnl-gltk:render ib)))
109 ((ib (clnl-gltk:inputbox 5 5 1))
110 (tb (clnl-gltk:textbox 5 28 1 1)))
111 (clnl-gltk:resize ib (truncate (- 100 12) clnl-gltk:*font-width*) 1)
112 (clnl-gltk:resize tb (truncate (- 100 12) clnl-gltk:*font-width*) (truncate (- 100 40) clnl-gltk:*font-height*))
113 (deftest "Resize Input Box / Text Box"
114 "A005D7F79A462A12CC4C8FA2D4E08D9705EE653D"
116 (clnl-gltk:render tb)
117 (clnl-gltk:render ib)))
119 (defvar *button-base-sum* "57FE772A7F3F06632F7CAB6EDCED93D1D98EFE17")
120 (defvar *button-hover-sum* "0471DF593568AC35F0F91FCB0CF8B7C95CE76FAA")
123 ((but (clnl-gltk:button 5 5 40 30 "test" (lambda () (format t "This button was pressed~%")))))
126 (clnl-gltk:render but)))
129 ((but (clnl-gltk:button 5 5 40 30 "te" (lambda () (format t "This button was pressed~%")))))
131 "12595E272032268A6BD31DAE25405DFBBC18537E"
132 (clnl-gltk:render but)))
135 ((checksum "8C3017E28B5F4DA4832193DB1ECB9F1C2D8B9B81"))
137 ((but (clnl-gltk:button 5 5 40 30 "te..." (lambda () (format t "This button was pressed~%")))))
140 (clnl-gltk:render but)))
143 ((but (clnl-gltk:button 5 5 40 30 "testing" (lambda () (format t "This button was pressed~%")))))
146 (clnl-gltk:render but))))
149 ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
150 (clnl-gltk:mousemove but 10 10)
151 (deftest "Button Hover 1"
153 (clnl-gltk:render but)))
156 ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
157 (clnl-gltk:mousemove but 10 10)
158 (clnl-gltk:mousemove but 50 50)
159 (deftest "Button Hover 2"
161 (clnl-gltk:render but)))
164 ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
165 (clnl-gltk:mousemove but 10 10)
166 (clnl-gltk:mousedown but 10 10)
167 (deftest "Button Down"
168 "CF9AB21372A9D72ECDE1351B6C834DE8E020DC67"
169 (clnl-gltk:render but)))
172 ((but (clnl-gltk:button 5 5 40 30 "test" nil)))
173 (clnl-gltk:mousemove but 10 10)
174 (clnl-gltk:mousedown but 10 10)
175 (clnl-gltk:mousemove but 50 50)
176 (deftest "Button Down Moved"
177 "C2A2F8B8B1C70BE32A35D050DC9AB03F310EB44D"
178 (clnl-gltk:render but)))
182 (but (clnl-gltk:button 5 5 40 30 "test" (lambda () (setf clicked t)))))
183 (clnl-gltk:mousemove but 10 10)
184 (clnl-gltk:mousedown but 10 10)
185 (clnl-gltk:mouseup but 10 10)
186 (deftest "Button Clicked"
188 (clnl-gltk:render but)
189 (when (not clicked) (fail-test))))
193 (but (clnl-gltk:button 5 5 40 30 "test" (lambda () (setf clicked t)))))
194 (clnl-gltk:mousemove but 10 10)
195 (clnl-gltk:mousedown but 10 10)
196 (clnl-gltk:mousemove but 50 50)
197 (clnl-gltk:mouseup but 50 50)
198 (deftest "Button Clicked Abort"
200 (clnl-gltk:render but)
201 (when clicked (fail-test))))
204 ((but (clnl-gltk:button 20 20 50 40 "test" nil)))
205 (clnl-gltk:resize but 40 30)
206 (clnl-gltk:reposition but 5 5)
207 (deftest "Button Reize/Reposition"
209 (clnl-gltk:render but)))
213 (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
214 (deftest "Button Forever 1"
215 "C7F4CC201EF3DDB4474D537CA6F1D7462F5822D1"
216 (clnl-gltk:render but)))
220 (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
221 (clnl-gltk:mousemove but 30 30)
222 (clnl-gltk:mousedown but 30 30)
223 (clnl-gltk:mouseup but 30 30)
224 (deftest "Button Forever - Toggle mouse on"
225 "AAD25A1A35FFC0306C0257450530B19421BB1B97"
226 (clnl-gltk:render but)))
230 (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
231 (clnl-gltk:mousemove but 30 30)
232 (clnl-gltk:mousedown but 30 30)
233 (clnl-gltk:mouseup but 30 30)
234 (clnl-gltk:mousemove but 10 10)
235 (deftest "Button Forever - Toggle mouse off"
236 "CE0153ACE89F075279C24FB28A9538730B307048"
237 (clnl-gltk:render but)))
241 (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but)) :forever t))
242 (clnl-gltk:mousemove but 30 30)
243 (clnl-gltk:mousedown but 30 30)
244 (clnl-gltk:mouseup but 30 30)
245 (clnl-gltk:mousedown but 30 30)
246 (clnl-gltk:mouseup but 30 30)
247 (clnl-gltk:mousemove but 10 10)
248 (deftest "Button Forever - Toggle twice"
249 "C7F4CC201EF3DDB4474D537CA6F1D7462F5822D1"
250 (clnl-gltk:render but)))
254 (setf but (clnl-gltk:button 20 20 60 40 "test" (lambda () (clnl-gltk:toggle but t)) :forever t))
255 (clnl-gltk:mousemove but 30 30)
256 (clnl-gltk:mousedown but 30 30)
257 (clnl-gltk:mouseup but 30 30)
258 (clnl-gltk:mousedown but 30 30)
259 (clnl-gltk:mouseup but 30 30)
260 (clnl-gltk:mousemove but 10 10)
261 (deftest "Button Forever - Toggle state T"
262 "CE0153ACE89F075279C24FB28A9538730B307048"
263 (clnl-gltk:render but)))
265 (defvar *switch-on* "CA21940F7F585E98B70F54165FA9617E8720B084")
266 (defvar *switch-off* "25F8B2D544795DC953FF3F880F4762FEEFCCEF04")
267 (defvar *switch-hover* "9643E58C1E160530B3B4467DE121C83F445EE444")
270 ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)) t)))
273 (setf *mouse-reactor* switch)
274 (clnl-gltk:render switch)))
277 ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
280 (clnl-gltk:render switch)))
283 ((switch (clnl-gltk:switch 5 5 80 "testing switch" (lambda (state) (format t "The new state is: ~A~%" state)))))
285 "C7362964BB4CB6C1C89AABFAD956C65A42823296"
286 (clnl-gltk:render switch)))
289 ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
290 (clnl-gltk:mousemove switch 30 30)
291 (deftest "Switch Hover"
293 (clnl-gltk:render switch)))
296 ((switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (format t "The new state is: ~A~%" state)))))
297 (clnl-gltk:mousemove switch 30 30)
298 (clnl-gltk:mousemove switch 50 50)
299 (deftest "Switch Hover 2"
301 (clnl-gltk:render switch)))
305 (switch (clnl-gltk:switch 5 5 80 "test" (lambda (state) (setf on state)))))
306 (clnl-gltk:mousedown switch 30 30)
307 (deftest "Switch Click"
309 (clnl-gltk:render switch)
310 (when (not on) (fail-test))))
313 ((slider (clnl-gltk:slider 5 5 80 "test" (lambda (val) (format t "The new val is: ~A~%" val)) 0 100 5 100)))
315 "87CCD09486DBA9A0115034E454B28658121EE6DE"
316 (setf *mouse-reactor* slider)
317 (clnl-gltk:render slider)))