Initial commit.
[euphoria.git] / data / themes / winter / macros / toggle.inc
1 /* this makes life MUCH easier */
2
3 #define TOGGLE_BUTTON(NAME, IMG, IMG2, IMG3, IMG4, W, H, REL1_TO, REL1_REL, REL1_OFF, REL2_TO, REL2_REL, REL2_OFF) \
4       part {                                    \
5         name, NAME"-clip";                      \
6         type, RECT;                             \
7         mouse_events, 0;                        \
8         description {                           \
9           state, "default" 0.0;                 \
10           visible, 1;                           \
11           rel1 {                                \
12             relative, REL1_REL;                 \
13             offset, REL1_OFF;                   \
14             to, REL1_TO;                        \
15           }                                     \
16           rel2 {                                \
17             relative, REL2_REL;                 \
18             offset, REL2_OFF;                   \
19             to, REL2_TO;                        \
20           }                                     \
21           color, 255 255 255 128;               \
22         }                                       \
23         description {                           \
24           state, "over" 0.0;                    \
25           visible, 1;                           \
26           rel1 {                                \
27             relative, REL1_REL;                 \
28             offset, REL1_OFF;                   \
29             to, REL1_TO;                        \
30           }                                     \
31           rel2 {                                \
32             relative, REL2_REL;                 \
33             offset, REL2_OFF;                   \
34             to, REL2_TO;                        \
35           }                                     \
36           color, 255 255 255 255;               \
37         }                                       \
38       }                                         \
39       part {                            \
40         name, NAME;                     \
41         clip_to, NAME"-clip";           \
42         description {                   \
43           state, "default" 0.0;         \
44           min, W H;                     \
45           max, W H;                     \
46           visible, 1;                   \
47           color, 255 255 255 255;       \
48           rel1 {                        \
49             to, REL1_TO;                \
50             relative, REL1_REL;         \
51             offset, REL1_OFF;           \
52           }                             \
53           rel2 {                        \
54             to, REL2_TO;                \
55             relative, REL2_REL;         \
56             offset, REL2_OFF;           \
57           }                             \
58           image {                       \
59             normal, IMG;                \
60           }                             \
61         }                               \
62         description {                   \
63           state, "toggled" 0.0;         \
64           min, W H;                     \
65           max, W H;                     \
66           visible, 0;                   \
67           color, 255 255 255 0;         \
68           rel1 {                        \
69             to, REL1_TO;                \
70             relative, REL1_REL;         \
71             offset, REL1_OFF;           \
72           }                             \
73           rel2 {                        \
74             to, REL2_TO;                \
75             relative, REL2_REL;         \
76             offset, REL2_OFF;           \
77           }                             \
78           image {                       \
79             normal, IMG;                \
80           }                             \
81         }                               \
82         description {                   \
83           state, "down" 0.0;            \
84           min, W H;                     \
85           max, W H;                     \
86           color, 255 255 255 255;       \
87           rel1 {                        \
88             to, REL1_TO;                \
89             relative, REL1_REL;         \
90             offset, REL1_OFF;           \
91           }                             \
92           rel2 {                        \
93             to, REL2_TO;                \
94             relative, REL2_REL;         \
95             offset, REL2_OFF;           \
96           }                             \
97           image {                       \
98             normal, IMG2;               \
99           }                             \
100         }                               \
101       }                                 \
102       part {                            \
103         name, NAME"-2";                 \
104         clip_to, NAME"-clip";           \
105         description {                   \
106           state, "default" 0.0;         \
107           min, W H;                     \
108           max, W H;                     \
109           visible, 0;                   \
110           color, 255 255 255 0;         \
111           rel1 {                        \
112             to, REL1_TO;                \
113             relative, REL1_REL;         \
114             offset, REL1_OFF;           \
115           }                             \
116           rel2 {                        \
117             to, REL2_TO;                \
118             relative, REL2_REL;         \
119             offset, REL2_OFF;           \
120           }                             \
121           image {                       \
122             normal, IMG3;               \
123           }                             \
124         }                               \
125         description {                   \
126           state, "toggled" 0.0;         \
127           min, W H;                     \
128           max, W H;                     \
129           visible, 1;                   \
130           color, 255 255 255 255;       \
131           rel1 {                        \
132             to, REL1_TO;                \
133             relative, REL1_REL;         \
134             offset, REL1_OFF;           \
135           }                             \
136           rel2 {                        \
137             to, REL2_TO;                \
138             relative, REL2_REL;         \
139             offset, REL2_OFF;           \
140           }                             \
141           image {                       \
142             normal, IMG3;               \
143           }                             \
144         }                               \
145         description {                   \
146           state, "down" 0.0;            \
147           min, W H;                     \
148           max, W H;                     \
149           color, 255 255 255 255;       \
150           rel1 {                        \
151             to, REL1_TO;                \
152             relative, REL1_REL;         \
153             offset, REL1_OFF;           \
154           }                             \
155           rel2 {                        \
156             to, REL2_TO;                \
157             relative, REL2_REL;         \
158             offset, REL2_OFF;           \
159           }                             \
160           image {                       \
161             normal, IMG4;               \
162           }                             \
163         }                               \
164       }                                 \
165       part {                                    \
166         name, NAME"-grabber";                   \
167         type, RECT;                             \
168         mouse_events, 1;                        \
169         repeat_events, 1;                       \
170         description {                           \
171           state, "default" 0.0;                 \
172           visible, 1;                           \
173           color, 0 0 0 0;                       \
174           rel1 {                                \
175             relative, REL1_REL;                 \
176             offset, REL1_OFF;                   \
177             to, REL1_TO;                        \
178           }                                     \
179           rel2 {                                \
180             relative, REL2_REL;                 \
181             offset, REL2_OFF;                   \
182             to, REL2_TO;                        \
183           }                                     \
184         }                                       \
185       }                                         \
186
187
188
189 #define TOGGLE_BUTTON_PROG(NAME, SIG, SIG2) \
190       program {                 \
191         name, NAME"-toggle-on"; \
192         signal, "mouse,clicked,1"; \
193         source, NAME; \
194         action, STATE_SET "toggled" 0.0; \
195         transition, LINEAR 0.0; \
196         target, NAME; \
197         target, NAME"-2"; \
198         after, NAME"-sig"; \
199       } \
200       program { \
201         name, NAME"-sig"; \
202         action, SIGNAL_EMIT SIG NAME; \
203       } \
204       program { \
205         name, NAME"-toggle-off"; \
206         signal, "mouse,clicked,1"; \
207         source, NAME"-2"; \
208         action, STATE_SET "default" 0.0; \
209         transition, LINEAR 0.0; \
210         target, NAME; \
211         target, NAME"-2"; \
212         after, NAME"-sig2"; \
213       } \
214       program { \
215         name, NAME"-sig2"; \
216         action, SIGNAL_EMIT SIG2 NAME"-2"; \
217       } \
218       program { \
219         name, NAME"-grabber-in"; \
220         signal, "mouse,in"; \
221         source, NAME"-grabber"; \
222         action, STATE_SET "over" 0.0; \
223         transition, DECELERATE 0.5; \
224         target, NAME"-clip"; \
225       } \
226       program { \
227         name, NAME"-grabber-out"; \
228         signal, "mouse,out"; \
229         source, NAME"-grabber"; \
230         action, STATE_SET "default" 0.0; \
231         transition, DECELERATE 0.5; \
232         target, NAME"-clip"; \
233       } \
234       program { \
235         name, NAME"-down"; \
236         signal, "mouse,down,1"; \
237         source, NAME; \
238         action, STATE_SET "down" 0.0; \
239         transition, LINEAR 0.0; \
240         target, NAME; \
241       } \
242       program { \
243         name, NAME"-2-down"; \
244         signal, "mouse,down,1"; \
245         source, NAME"-2"; \
246         action, STATE_SET "down" 0.0; \
247         transition, LINEAR 0.0; \
248         target, NAME"-2"; \
249       } \
250
251