]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/gadgets/packs/packs-tests.factor
more test IN: cleanup.
[factor.git] / basis / ui / gadgets / packs / packs-tests.factor
1 USING: ui.gadgets.packs ui.gadgets.packs.private
2 ui.gadgets.labels ui.gadgets ui.gadgets.debug ui.render
3 ui.baseline-alignment kernel namespaces tools.test math.parser
4 sequences math.rectangles accessors math ;
5
6 { t } [
7     { 0 0 } { 100 100 } <rect> clip set
8
9     <pile>
10         100 [ number>string <label> add-gadget ] each-integer
11     dup layout
12
13     visible-children [ label? ] all?
14 ] unit-test
15
16 { { { 10 30 } } } [
17     { { 10 20 } }
18     { { 100 30 } }
19     <gadget> vertical >>orientation
20     orient
21 ] unit-test
22
23 ! Test baseline alignment
24 <shelf> +baseline+ >>align
25     5 5 { 10 10 } <baseline-gadget> add-gadget
26     10 10 { 10 10 } <baseline-gadget> add-gadget
27 "g" set
28
29 { } [ "g" get prefer ] unit-test
30
31 { { 20 15 } } [ "g" get dim>> ] unit-test
32
33 { V{ { 0 5 } { 10 0 } } } [
34     "g" get
35     dup layout
36     children>> [ loc>> ] map
37 ] unit-test
38
39 ! Test mixed baseline and ordinary alignment
40 <shelf> +baseline+ >>align
41     <gadget> { 20 20 } >>dim add-gadget
42     10 10 { 10 10 } <baseline-gadget> add-gadget
43 "g" set
44
45 { { 30 20 } } [ "g" get pref-dim ] unit-test
46
47 { } [ "g" get layout ] unit-test
48
49 { V{ { 0 0 } { 20 5 } } } [
50     "g" get children>> [ loc>> ] map
51 ] unit-test
52
53 <shelf> +baseline+ >>align
54     <gadget> { 15 15 } >>dim add-gadget
55     5 5 { 10 10 } <baseline-gadget> add-gadget
56 "g" set
57
58 { { 25 15 } } [ "g" get pref-dim ] unit-test
59
60 { } [ "g" get prefer ] unit-test
61
62 { } [ "g" get layout ] unit-test
63
64 { V{ { 0 0 } { 15 5 } } } [
65     "g" get children>> [ loc>> ] map
66 ] unit-test
67
68 <shelf> +baseline+ >>align
69     <gadget> { 20 20 } >>dim add-gadget
70     30 30 { 10 50 } <baseline-gadget> add-gadget
71 "g" set
72
73 { { 30 50 } } [ "g" get pref-dim ] unit-test
74
75 { } [ "g" get prefer ] unit-test
76
77 { } [ "g" get layout ] unit-test
78
79 { V{ { 0 5 } { 20 0 } } } [
80     "g" get children>> [ loc>> ] map
81 ] unit-test
82
83 <shelf> +baseline+ >>align
84     <gadget> { 30 30 } >>dim add-gadget
85     30 4 { 30 30 } <baseline-gadget> add-gadget
86 "g" set
87
88 { { 60 43 } } [ "g" get pref-dim ] unit-test
89
90 { } [ "g" get prefer ] unit-test
91
92 { } [ "g" get layout ] unit-test
93
94 ! Baseline alignment without any text gadgets should behave like align=1/2
95 <shelf> +baseline+ >>align
96     <gadget> { 30 30 } >>dim add-gadget
97     <gadget> { 30 20 } >>dim add-gadget
98 "g" set
99
100 { { 60 30 } } [ "g" get pref-dim ] unit-test
101
102 { } [ "g" get prefer ] unit-test
103
104 { } [ "g" get layout ] unit-test
105
106 { V{ { 0 0 } { 30 5 } } }
107 [ "g" get children>> [ loc>> ] map ] unit-test
108
109 <shelf> +baseline+ >>align
110 <gadget> { 30 30 } >>dim add-gadget
111 10 10 { 10 10 } <baseline-gadget> add-gadget
112 "g" set
113
114 { } [ "g" get prefer ] unit-test
115
116 { } [ "g" get layout ] unit-test
117
118 { V{ { 0 0 } { 30 10 } } }
119 [ "g" get children>> [ loc>> ] map ] unit-test
120
121 <shelf> +baseline+ >>align
122 <shelf> <gadget> { 30 30 } >>dim add-gadget add-gadget
123 10 10 { 10 10 } <baseline-gadget> add-gadget
124 "g" set
125
126 { } [ "g" get prefer ] unit-test
127
128 { } [ "g" get layout ] unit-test
129
130 { V{ { 0 0 } { 30 10 } } }
131 [ "g" get children>> [ loc>> ] map ] unit-test
132
133 <shelf> +baseline+ >>align
134 <gadget> { 24 24 } >>dim add-gadget
135 12 9 { 15 15 } <baseline-gadget> add-gadget
136 "g" set
137
138 { { 39 24 } } [ "g" get pref-dim ] unit-test