1/**
2Group: efl/check:toggle (@since 1.23)
3	 Part Text: efl.offtext
4	 Part Text: efl.ontext
5	 Part Text: efl.text
6	 Part Swallow: efl.content
7	 Signal: efl,content,set
8	 Signal: efl,content,unset
9	 Signal: efl,state,disabled
10	 Signal: efl,state,enabled
11	 Signal: efl,state,selected
12	 Signal: efl,state,unselected
13	 Signal: efl,text,set
14	 Signal: efl,text,unset
15Group: efl/check (@since 1.23)
16	 Part Text: efl.text (required)
17	 Part Swallow: efl.content (required)
18	 Signal: efl,content,set
19	 Signal: efl,content,unset
20	 Signal: efl,state,disabled
21	 Signal: efl,state,enabled
22	 Signal: efl,state,selected
23	 Signal: efl,state,unselected
24	 Signal: efl,text,set
25	 Signal: efl,text,unset
26*/
27group { "efl/check"; data.item: "version" "123";
28   images.image: "inset_shadow_tiny.png" COMP;
29   images.image: "bevel_in.png" COMP;
30   images.image: "sym_check_alum.png" COMP;
31#define ICON     1
32#define LABEL    2
33#define MASK     3
34#define DISABLE  4
35   script {
36      public btmode;
37      public eval_mode(m) {
38         new m1 = m & MASK;
39         new d = m & DISABLE;
40         if (m1 == (ICON | LABEL)) {
41            if (!d) {
42               set_state(PART:"efl.content", "visible", 0.0);
43               set_state(PART:"sizer_content", "visible", 0.0);
44               set_state(PART:"efl.text", "visible", 0.0);
45               set_state(PART:"shadow", "default", 0.0);
46               set_state(PART:"base", "default", 0.0);
47               set_state(PART:"clip", "default", 0.0);
48               set_state(PART:"event", "default", 0.0);
49            } else {
50               set_state(PART:"efl.content", "visible", 0.0);
51               set_state(PART:"sizer_content", "visible", 0.0);
52               set_state(PART:"efl.text", "disabled_visible", 0.0);
53               set_state(PART:"shadow", "disabled", 0.0);
54               set_state(PART:"base", "disabled", 0.0);
55               set_state(PART:"clip", "disabled", 0.0);
56               set_state(PART:"event", "disabled", 0.0);
57            }
58         } else if (m1 == (ICON)) {
59            if (!d) {
60               set_state(PART:"efl.content", "visible", 0.0);
61               set_state(PART:"sizer_content", "icononly", 0.0);
62               set_state(PART:"efl.text", "default", 0.0);
63               set_state(PART:"shadow", "default", 0.0);
64               set_state(PART:"base", "default", 0.0);
65               set_state(PART:"clip", "default", 0.0);
66               set_state(PART:"event", "default", 0.0);
67            } else {
68               set_state(PART:"efl.content", "visible", 0.0);
69               set_state(PART:"sizer_content", "icononly", 0.0);
70               set_state(PART:"efl.text", "disabled", 0.0);
71               set_state(PART:"shadow", "disabled", 0.0);
72               set_state(PART:"base", "disabled", 0.0);
73               set_state(PART:"clip", "disabled", 0.0);
74               set_state(PART:"event", "disabled", 0.0);
75            }
76         } else if (m1 == (LABEL)) {
77            if (!d) {
78               set_state(PART:"efl.content", "default", 0.0);
79               set_state(PART:"sizer_content", "default", 0.0);
80               set_state(PART:"efl.text", "visible", 0.0);
81               set_state(PART:"shadow", "default", 0.0);
82               set_state(PART:"base", "default", 0.0);
83               set_state(PART:"clip", "default", 0.0);
84               set_state(PART:"event", "default", 0.0);
85            } else {
86               set_state(PART:"efl.content", "default", 0.0);
87               set_state(PART:"sizer_content", "default", 0.0);
88               set_state(PART:"efl.text", "disabled_visible", 0.0);
89               set_state(PART:"shadow", "disabled", 0.0);
90               set_state(PART:"base", "disabled", 0.0);
91               set_state(PART:"clip", "disabled", 0.0);
92               set_state(PART:"event", "disabled", 0.0);
93            }
94         } else {
95            if (!d) {
96               set_state(PART:"efl.content", "default", 0.0);
97               set_state(PART:"sizer_content", "default", 0.0);
98               set_state(PART:"efl.text", "default", 0.0);
99               set_state(PART:"shadow", "default", 0.0);
100               set_state(PART:"base", "default", 0.0);
101               set_state(PART:"clip", "default", 0.0);
102               set_state(PART:"event", "default", 0.0);
103            } else {
104               set_state(PART:"efl.content", "default", 0.0);
105               set_state(PART:"sizer_content", "default", 0.0);
106               set_state(PART:"efl.text", "default", 0.0);
107               set_state(PART:"shadow", "disabled", 0.0);
108               set_state(PART:"base", "disabled", 0.0);
109               set_state(PART:"clip", "disabled", 0.0);
110               set_state(PART:"event", "disabled", 0.0);
111            }
112         }
113      }
114   }
115   parts {
116      part { name: "base"; type: RECT;
117         description { state: "default" 0.0;
118            rel1.offset: 1 1;
119            rel1.to: "inset";
120            rel2.offset: -2 -2;
121            rel2.to: "inset";
122            color: 24 24 24 255;
123         }
124         description { state: "disabled" 0.0;
125            inherit: "default" 0.0;
126            color: 64 64 64 255;
127         }
128      }
129      part { name: "shadow"; mouse_events: 0;
130         description { state: "default" 0.0;
131            image.normal: "inset_shadow_tiny.png";
132            image.border: 4 4 4 4;
133            rel1.to: "base";
134            rel2.to: "base";
135         }
136         description { state: "disabled" 0.0;
137            inherit: "default" 0.0;
138            visible: 0;
139         }
140      }
141      part { name: "inset"; mouse_events: 0;
142         scale: 1;
143         description { state: "default" 0.0;
144            fixed: 1 0;
145            rel1.offset: 2 2;
146            rel2.relative: 0.0 1.0;
147            rel2.offset: 2 -3;
148            align: 0.0 0.5;
149            min: 13 13;
150            max: 13 13;
151            image.normal: "bevel_in.png";
152            image.border: 1 1 1 1;
153            image.middle: 0;
154            fill.smooth: 0;
155         }
156      }
157      part { name: "indicator"; mouse_events: 0;
158         scale: 1;
159         clip_to: "clip";
160         description { state: "default" 0.0;
161            fixed: 1 1;
162            rel1.to: "base";
163            rel2.to: "base";
164            image.normal: "sym_check_alum.png";
165            min: 11 11;
166            max: 11 11;
167            visible: 0;
168         }
169         description { state: "selected" 0.0;
170            inherit: "default" 0.0;
171            visible: 1;
172         }
173      }
174      part { name: "clip"; type: RECT;
175         description { state: "default" 0.0;
176         }
177         description { state: "disabled" 0.0;
178            inherit: "default" 0.0;
179            color: 255 255 255 64;
180         }
181      }
182      part { name: "efl.content"; type: SWALLOW;
183         scale: 1;
184         clip_to: "clip";
185         required;
186         description { state: "default" 0.0;
187            fixed: 1 0;
188            visible: 0;
189            align: 0.0 0.5;
190            max: 0 0;
191            rel1.to_x: "inset";
192            rel1.relative: 1.0 0.0;
193            rel1.offset: 1 1;
194            rel2.to_x: "inset";
195            rel2.offset: 1 -2;
196            rel2.relative: 1.0 1.0;
197         }
198         description { state: "visible" 0.0;
199            inherit: "default" 0.0;
200            visible: 1;
201            aspect: 1.0 1.0;
202            min: 16 16;
203         }
204      }
205      part { name: "sizer_content"; type: TEXT; mouse_events:  0;
206         scale: 1;
207         description { state: "default" 0.0;
208            fixed: 1 1;
209            visible: 0;
210            text { font: FN; size: 10;
211               min: 0 0;
212               text_class: "check_text";
213            }
214         }
215         description { state: "visible" 0.0;
216            inherit: "default" 0.0;
217            rel1.to: "efl.content";
218            rel2.to: "efl.content";
219            text {
220               min: 1 1;
221               ellipsis: -1;
222               text: "M";
223            }
224         }
225         description { state: "icononly" 0.0;
226            inherit: "default" 0.0;
227            rel1.to: "efl.content";
228            rel2.to: "efl.content";
229            text {
230               min: 1 1;
231               ellipsis: -1;
232               text: "M";
233            }
234         }
235      }
236      part { name: "efl.text"; type: TEXT; mouse_events: 0;
237         effect: SHADOW BOTTOM;
238         scale: 1;
239         required;
240         description { state: "default" 0.0;
241            rel1.offset: 2 2;
242            rel1.to_x: "efl.content";
243            rel1.relative: 1.0 0.0;
244            rel2.offset: -3 -3;
245            color: FN_COL_DEFAULT;
246            color_class: "check_text";
247            text { font: FN; size: 10;
248              min: 0 0;
249              align: 0.0 0.5;
250              text_class: "check";
251            }
252         }
253         description { state: "disabled" 0.0;
254            inherit: "default" 0.0;
255            color_class: "check_text_disabled";
256            color3: 255 255 255 255;
257         }
258         description { state: "visible" 0.0;
259            inherit: "default" 0.0;
260            visible: 1;
261            text.min: 1 1;
262            text.ellipsis: -1;
263         }
264         description { state: "disabled_visible" 0.0;
265            inherit: "default" 0.0;
266            color_class: "check_text_disabled";
267            color3: 255 255 255 255;
268            visible: 1;
269            text.min: 1 1;
270            text.ellipsis: -1;
271         }
272      }
273      part { name: "event"; type: RECT;
274         ignore_flags: ON_HOLD;
275         description { state: "default" 0.0;
276            color: 0 0 0 0;
277         }
278         description { state: "disabled" 0.0;
279            inherit: "default" 0.0;
280            visible: 0;
281         }
282      }
283   }
284   programs {
285      EFL_UI_CLICKABLE_PART_BIND(event)
286      program {
287         signal: "efl,state,selected"; source: "efl";
288         action:  STATE_SET "selected" 0.0;
289         target: "indicator";
290      }
291      program {
292         signal: "efl,state,unselected"; source: "efl";
293         action:  STATE_SET "default" 0.0;
294         target: "indicator";
295      }
296      program {
297         signal: "efl,text,set"; source: "efl";
298         script {
299            new m = get_int(btmode);
300            m |= LABEL; set_int(btmode, m);
301            eval_mode(m);
302         }
303      }
304      program {
305         signal: "efl,text,unset"; source: "efl";
306         script {
307            new m = get_int(btmode);
308            m &= ~LABEL; set_int(btmode, m);
309            eval_mode(m);
310         }
311      }
312      program {
313         signal: "efl,content,set"; source: "efl";
314         script {
315            new m = get_int(btmode);
316            m |= ICON; set_int(btmode, m);
317            eval_mode(m);
318         }
319      }
320      program {
321         signal: "efl,content,unset"; source: "efl";
322         script {
323            new m = get_int(btmode);
324            m &= ~ICON; set_int(btmode, m);
325            eval_mode(m);
326         }
327      }
328      program {
329         signal: "efl,state,disabled"; source: "efl";
330         script {
331            new m = get_int(btmode);
332            m |= DISABLE; set_int(btmode, m);
333            eval_mode(m);
334         }
335      }
336      program {
337         signal: "efl,state,enabled"; source: "efl";
338         script {
339            new m = get_int(btmode);
340            m &= ~DISABLE; set_int(btmode, m);
341            eval_mode(m);
342         }
343      }
344   }
345#undef ICON
346#undef LABEL
347#undef MASK
348#undef DISABLE
349}
350
351group { "efl/check:toggle"; data.item: "version" "123";
352   images.image: "inset_shadow_tiny.png" COMP;
353   images.image: "bevel_in.png" COMP;
354   images.image: "bevel_out.png" COMP;
355   images.image: "vgrad_med_lighter.png" COMP;
356   images.image: "shadow_square_tiny.png" COMP;
357   images.image: "glow_small.png" COMP;
358
359#define ICON     1
360#define LABEL    2
361#define MASK     3
362#define DISABLE  4
363   script {
364      public is_rtl;
365      public is_drag;
366      public was_drag;
367      public btmode;
368      public eval_mode(m) {
369         new m1 = m & MASK;
370         new d = m & DISABLE;
371         if (m1 == (ICON | LABEL)) {
372            if (!d) {
373               set_state(PART:"efl.content", "visible", 0.0);
374               set_state(PART:"sizer_content", "visible", 0.0);
375               set_state(PART:"efl.text", "visible", 0.0);
376               set_state(PART:"shadow", "default", 0.0);
377               set_state(PART:"clip", "default", 0.0);
378               set_state(PART:"event", "default", 0.0);
379               set_state(PART:"event2", "default", 0.0);
380               set_state(PART:"efl.ontext", "default", 0.0);
381               set_state(PART:"efl.offtext", "default", 0.0);
382               set_state(PART:"onrect", "default", 0.0);
383               set_state(PART:"offrect", "default", 0.0);
384            } else {
385               set_state(PART:"efl.content", "visible", 0.0);
386               set_state(PART:"sizer_content", "visible", 0.0);
387               set_state(PART:"efl.text", "disabled_visible", 0.0);
388               set_state(PART:"shadow", "disabled", 0.0);
389               set_state(PART:"clip", "disabled", 0.0);
390               set_state(PART:"event", "disabled", 0.0);
391               set_state(PART:"event2", "disabled", 0.0);
392               set_state(PART:"efl.ontext", "disabled", 0.0);
393               set_state(PART:"efl.offtext", "disabled", 0.0);
394               set_state(PART:"onrect", "disabled", 0.0);
395               set_state(PART:"offrect", "disabled", 0.0);
396            }
397         } else if (m1 == (ICON)) {
398            if (!d) {
399               set_state(PART:"efl.content", "visible", 0.0);
400               set_state(PART:"sizer_content", "icononly", 0.0);
401               set_state(PART:"efl.text", "default", 0.0);
402               set_state(PART:"shadow", "default", 0.0);
403               set_state(PART:"clip", "default", 0.0);
404               set_state(PART:"event", "default", 0.0);
405               set_state(PART:"event2", "default", 0.0);
406               set_state(PART:"efl.ontext", "default", 0.0);
407               set_state(PART:"efl.offtext", "default", 0.0);
408               set_state(PART:"onrect", "default", 0.0);
409               set_state(PART:"offrect", "default", 0.0);
410            } else {
411               set_state(PART:"efl.content", "visible", 0.0);
412               set_state(PART:"sizer_content", "icononly", 0.0);
413               set_state(PART:"efl.text", "disabled", 0.0);
414               set_state(PART:"shadow", "disabled", 0.0);
415               set_state(PART:"clip", "disabled", 0.0);
416               set_state(PART:"event", "disabled", 0.0);
417               set_state(PART:"event2", "disabled", 0.0);
418               set_state(PART:"efl.ontext", "disabled", 0.0);
419               set_state(PART:"efl.offtext", "disabled", 0.0);
420               set_state(PART:"onrect", "disabled", 0.0);
421               set_state(PART:"offrect", "disabled", 0.0);
422            }
423         } else if (m1 == (LABEL)) {
424            if (!d) {
425               set_state(PART:"efl.content", "default", 0.0);
426               set_state(PART:"sizer_content", "default", 0.0);
427               set_state(PART:"efl.text", "visible", 0.0);
428               set_state(PART:"shadow", "default", 0.0);
429               set_state(PART:"clip", "default", 0.0);
430               set_state(PART:"event", "default", 0.0);
431               set_state(PART:"event2", "default", 0.0);
432               set_state(PART:"efl.ontext", "default", 0.0);
433               set_state(PART:"efl.offtext", "default", 0.0);
434               set_state(PART:"onrect", "default", 0.0);
435               set_state(PART:"offrect", "default", 0.0);
436            } else {
437               set_state(PART:"efl.content", "default", 0.0);
438               set_state(PART:"sizer_content", "default", 0.0);
439               set_state(PART:"efl.text", "disabled_visible", 0.0);
440               set_state(PART:"shadow", "disabled", 0.0);
441               set_state(PART:"clip", "disabled", 0.0);
442               set_state(PART:"event", "disabled", 0.0);
443               set_state(PART:"event2", "disabled", 0.0);
444               set_state(PART:"efl.ontext", "disabled", 0.0);
445               set_state(PART:"efl.offtext", "disabled", 0.0);
446               set_state(PART:"onrect", "disabled", 0.0);
447               set_state(PART:"offrect", "disabled", 0.0);
448            }
449         } else {
450            if (!d) {
451               set_state(PART:"efl.content", "default", 0.0);
452               set_state(PART:"sizer_content", "default", 0.0);
453               set_state(PART:"efl.text", "default", 0.0);
454               set_state(PART:"shadow", "default", 0.0);
455               set_state(PART:"clip", "default", 0.0);
456               set_state(PART:"event", "default", 0.0);
457               set_state(PART:"event2", "default", 0.0);
458               set_state(PART:"efl.ontext", "default", 0.0);
459               set_state(PART:"efl.offtext", "default", 0.0);
460               set_state(PART:"onrect", "default", 0.0);
461               set_state(PART:"offrect", "default", 0.0);
462            } else {
463               set_state(PART:"efl.content", "default", 0.0);
464               set_state(PART:"sizer_content", "default", 0.0);
465               set_state(PART:"efl.text", "default", 0.0);
466               set_state(PART:"shadow", "disabled", 0.0);
467               set_state(PART:"clip", "disabled", 0.0);
468               set_state(PART:"event", "disabled", 0.0);
469               set_state(PART:"event2", "disabled", 0.0);
470               set_state(PART:"efl.ontext", "disabled", 0.0);
471               set_state(PART:"efl.offtext", "disabled", 0.0);
472               set_state(PART:"onrect", "disabled", 0.0);
473               set_state(PART:"offrect", "disabled", 0.0);
474            }
475         }
476      }
477   }
478   parts {
479      part { name: "tog"; type: SPACER;
480         scale: 1;
481         description { state: "default" 0.0;
482            fixed: 1 0;
483            rel1.relative: 1.0 0.0;
484            rel1.offset: 2 2;
485            rel2.offset: -3 -3;
486            align: 1.0 0.5;
487            min: 88 15;
488            max: 88 15;
489         }
490      }
491      part { name: "onrect"; type: RECT; mouse_events: 0;
492         scale: 1;
493         clip_to: "tog_clip";
494         description { state: "default" 0.0;
495            rel1.to: "button";
496            rel1.relative: -5.0 0.0;
497            rel2.to: "button";
498            rel2.relative: 0.5 1.0;
499            color: 24 24 24 255;
500         }
501         description { state: "disabled" 0.0;
502            inherit: "default" 0.0;
503            color: 64 64 64 255;
504         }
505      }
506      part { name: "offrect"; type: RECT; mouse_events: 0;
507         scale: 1;
508         clip_to: "tog_clip";
509         description { state: "default" 0.0;
510            rel1.to: "button";
511            rel1.relative: 0.5 0.0;
512            rel2.to: "button";
513            rel2.relative: 6.0 1.0;
514            color: 24 24 24 255;
515         }
516         description { state: "disabled" 0.0;
517            inherit: "default" 0.0;
518            color: 64 64 64 255;
519         }
520      }
521      part { name: "efl.offtext"; type: TEXT; mouse_events:  0;
522         effect: SHADOW BOTTOM;
523         scale: 1;
524         clip_to: "tog_clip";
525         description { state: "default" 0.0;
526            fixed: 1 1;
527            rel1.to: "button";
528            rel1.relative: 1.0 0.0;
529            rel2.to: "offrect";
530            color: FN_COL_DEFAULT;
531            color_class: "check_off_text";
532            text { font: FN; size: 10;
533               min: 0 1;
534               align: 0.5 0.5;
535               text_class: "check_off_text";
536               text: "OFF";
537            }
538         }
539         description { state: "disabled" 0.0;
540            inherit: "default" 0.0;
541            color_class: "check_off_text_disabled";
542            color3: 255 255 255 255;
543         }
544      }
545      part { name: "efl.ontext"; type: TEXT; mouse_events:  0;
546         effect: GLOW;
547         scale: 1;
548         clip_to: "tog_clip";
549         description { state: "default" 0.0;
550            fixed: 1 1;
551            rel1.to: "onrect";
552            rel1.offset: 2 -1;
553            rel2.to: "button";
554            rel2.relative: 0.0 1.0;
555            rel2.offset: -1 -2;
556            color_class: "check_on_text";
557            color2: 255 255 255 255;
558            color3: 255 255 255 255;
559            text { font: FN; size: 10;
560               min: 0 1;
561               align: 0.5 0.5;
562               text_class: "check_on_text";
563               text: "ON";
564            }
565         }
566         description { state: "disabled" 0.0;
567            inherit: "default" 0.0;
568            color_class: "check_on_text_disabled";
569            color3: 255 255 255 255;
570         }
571      }
572      part { name: "shadow"; mouse_events: 0;
573         description { state: "default" 0.0;
574            image.normal: "inset_shadow_tiny.png";
575            image.border: 4 4 4 4;
576            rel1.to: "tog";
577            rel2.to: "tog";
578         }
579         description { state: "disabled" 0.0;
580            inherit: "default" 0.0;
581            visible: 0;
582         }
583      }
584      part { name: "inset"; mouse_events: 0;
585         scale: 1;
586         description { state: "default" 0.0;
587            fixed: 1 1;
588            rel1.to: "tog";
589            rel1.offset: -1 -1;
590            rel2.to: "tog";
591            rel2.offset: 0 0;
592            image.normal: "bevel_in.png";
593            image.border: 1 1 1 1;
594            image.middle: 0;
595            fill.smooth: 0;
596         }
597      }
598      part { name: "tog_clip"; type: RECT;
599         description { state: "default" 0.0;
600            rel1.to: "tog";
601            rel2.to: "tog";
602         }
603      }
604      part { name: "button"; type: RECT;
605         scale: 1;
606         clip_to: "tog_clip";
607         dragable {
608            x: 1 1 0;
609            y: 0 0 0;
610            confine: "tog";
611         }
612         description { state: "default" 0.0;
613            fixed: 1 1;
614            rel1.to: "tog";
615            rel2.to: "tog";
616            min: 15 15;
617            max: 15 99999;
618            color: 0 0 0 0;
619         }
620      }
621      part { name: "shadow_but"; mouse_events: 0;
622         description { state: "default" 0.0;
623            rel1.offset: -3 -2;
624            rel1.to: "base_but";
625            rel2.offset: 2 4;
626            rel2.to: "base_but";
627            image.normal: "shadow_square_tiny.png";
628            image.border: 6 6 6 6;
629            fill.smooth: 0;
630         }
631         description { state: "clicked" 0.0;
632            inherit: "default" 0.0;
633            rel1.offset: -2 -2;
634            rel2.offset: 1 1;
635            color: 255 255 255 128;
636         }
637      }
638      part { name: "glow_but"; mouse_events: 0;
639         description { state: "default" 0.0;
640            rel1.offset: -3 -3;
641            rel1.to: "base_but";
642            rel2.offset: 2 2;
643            rel2.to: "base_but";
644            image.normal: "glow_small.png";
645            image.border: 7 7 7 7;
646            fill.smooth: 0;
647            visible: 0;
648         }
649         description { state: "clicked" 0.0;
650            inherit: "default" 0.0;
651            visible: 1;
652         }
653      }
654      part { name: "base_but"; mouse_events: 0;
655         description { state: "default" 0.0;
656            rel1.to: "button";
657            rel2.to: "button";
658            image.normal: "vgrad_med_lighter.png";
659            fill.smooth: 0;
660            TILED_HORIZ(120)
661         }
662      }
663      part { name: "bevel_but"; mouse_events: 0;
664         description { state: "default" 0.0;
665            rel1.to: "base_but";
666            rel2.to: "base_but";
667            image.normal: "bevel_out.png";
668            image.border: 1 1 1 1;
669            image.middle: 0;
670            fill.smooth: 0;
671         }
672      }
673      part { name: "button_events"; type: RECT;
674         dragable.events: "button";
675         description { state: "default" 0.0;
676            color: 0 0 0 0;
677         }
678      }
679      part { name: "clip"; type: RECT;
680         description { state: "default" 0.0;
681         }
682         description { state: "disabled" 0.0;
683            inherit: "default" 0.0;
684            color: 255 255 255 64;
685         }
686      }
687      part { name: "efl.content"; type: SWALLOW;
688         scale: 1;
689         clip_to: "clip";
690         description { state: "default" 0.0;
691            fixed: 1 0;
692            visible: 0;
693            align: 0.0 0.5;
694            max: 0 0;
695            rel1.offset: 1 1;
696            rel2.offset: 1 -2;
697            rel2.relative: 0.0 1.0;
698         }
699         description { state: "visible" 0.0;
700            inherit: "default" 0.0;
701            fixed: 0 0;
702            visible: 1;
703            min: 16 16;
704         }
705      }
706      part { name: "sizer_content"; type: TEXT; mouse_events:  0;
707         scale: 1;
708         description { state: "default" 0.0;
709            fixed: 1 1;
710            visible: 0;
711            text { font: FN; size: 10;
712               min: 0 0;
713               text_class: "check_text";
714            }
715         }
716         description { state: "visible" 0.0;
717            inherit: "default" 0.0;
718            rel1.to: "efl.content";
719            rel2.to: "efl.content";
720            text {
721               min: 1 1;
722               ellipsis: -1;
723               text: "M";
724            }
725         }
726         description { state: "icononly" 0.0;
727            inherit: "default" 0.0;
728            rel1.to: "efl.content";
729            rel2.to: "efl.content";
730            text {
731               min: 1 1;
732               ellipsis: -1;
733               text: "M";
734            }
735         }
736      }
737      part { name: "efl.text"; type: TEXT; mouse_events: 0;
738         effect: SHADOW BOTTOM;
739         scale: 1;
740         description { state: "default" 0.0;
741            rel1.to_x: "efl.content";
742            rel1.relative: 1.0 0.0;
743            rel1.offset: 2 2;
744            rel2.to_x: "tog";
745            rel2.relative: 0.0 1.0;
746            rel2.offset: -5 -3;
747            color: FN_COL_DEFAULT;
748            color_class: "check_text";
749            text { font: FN; size: 10;
750              min: 0 0;
751              align: 0.0 0.5;
752              text_class: "check";
753            }
754         }
755         description { state: "disabled" 0.0;
756            inherit: "default" 0.0;
757            color_class: "check_text_disabled";
758            color3: 255 255 255 255;
759         }
760         description { state: "visible" 0.0;
761            inherit: "default" 0.0;
762            visible: 1;
763            text.min: 1 1;
764            text.ellipsis: -1;
765         }
766         description { state: "disabled_visible" 0.0;
767            inherit: "default" 0.0;
768            color_class: "check_text_disabled";
769            color3: 255 255 255 255;
770            visible: 1;
771            text.min: 1 1;
772            text.ellipsis: -1;
773         }
774      }
775      part { name: "event"; type: RECT;
776         ignore_flags: ON_HOLD;
777         description { state: "default" 0.0;
778            color: 0 0 0 0;
779            rel1.to_x: "efl.content";
780            rel2.to_x: "efl.text";
781         }
782         description { state: "disabled" 0.0;
783            inherit: "default" 0.0;
784            visible: 0;
785         }
786      }
787      part { name: "event2"; type: RECT;
788         ignore_flags: ON_HOLD;
789         description { state: "default" 0.0;
790            color: 0 0 0 0;
791            visible: 0;
792         }
793         description { state: "disabled" 0.0;
794            inherit: "default" 0.0;
795            visible: 1;
796         }
797      }
798   }
799   programs {
800      EFL_UI_CLICKABLE_PART_BIND(event)
801      program {
802         signal: "efl,state,selected"; source: "efl";
803         script {
804            new Float:drag;
805            if (get_int(is_rtl) == 0) {
806               drag = 100.0;
807            } else {
808               drag = 0.0;
809            }
810            set_drag(PART:"button", drag, 0.0);
811         }
812      }
813      program {
814         signal: "efl,state,unselected"; source: "efl";
815         script {
816            new Float:drag;
817            if (get_int(is_rtl) == 0) {
818               drag = 0.0;
819            } else {
820               drag = 100.0;
821            }
822            set_drag(PART:"button", drag, 0.0);
823         }
824      }
825      program {
826         signal: "mouse,clicked,1"; source: "button";
827         script {
828            new Float:dx, Float:dy;
829            get_drag(PART:"button", dx, dy);
830            if (!get_int(was_drag)) {
831               if (dx > 0.5) {
832                  set_drag(PART:"button", 0.0, 0.0);
833               } else {
834                  set_drag(PART:"button", 1.0, 0.0);
835               }
836               if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
837                   (get_int(is_rtl) == 0) && (dx > 0.5)) {
838                  emit("efl,action,unselect", "efl");
839               } else {
840                  emit("efl,action,select", "efl");
841               }
842            }
843         }
844      }
845      program {
846         signal: "drag"; source: "button";
847         script {
848            set_int(is_drag, 1);
849         }
850      }
851      program {
852         signal: "mouse,down,1"; source: "button";
853         script {
854            set_int(was_drag, 0);
855            set_int(is_drag, 0);
856         }
857      }
858      program { name: "drag_end";
859         signal: "mouse,up,1"; source: "button";
860         script {
861            new Float:dx, Float:dy;
862            get_drag(PART:"button", dx, dy);
863            if (get_int(is_drag)) {
864               if (dx > 0.5) {
865                 set_drag(PART:"button", 1.0, 0.0);
866               } else {
867                 set_drag(PART:"button", 0.0, 0.0);
868               }
869               if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
870                   (get_int(is_rtl) == 0) && (dx > 0.5)) {
871                 emit("efl,action,select", "efl");
872               } else {
873                 emit("efl,action,unselect", "efl");
874               }
875               set_int(was_drag, 1);
876               set_int(is_drag, 0);
877            }
878         }
879      }
880      program {
881         signal: "mouse,down,1"; source: "button";
882         action: STATE_SET "clicked" 0.0;
883         target: "shadow_but";
884         target: "glow_but";
885      }
886      program {
887         signal: "mouse,up,1"; source: "button";
888         action: STATE_SET "default" 0.0;
889         target: "shadow_but";
890         target: "glow_but";
891      }
892      program {
893         signal: "efl,text,set"; source: "efl";
894         script {
895            new m = get_int(btmode);
896            m |= LABEL; set_int(btmode, m);
897            eval_mode(m);
898         }
899      }
900      program {
901         signal: "efl,text,unset"; source: "efl";
902         script {
903            new m = get_int(btmode);
904            m &= ~LABEL; set_int(btmode, m);
905            eval_mode(m);
906         }
907      }
908      program {
909         signal: "efl,content,set"; source: "efl";
910         script {
911            new m = get_int(btmode);
912            m |= ICON; set_int(btmode, m);
913            eval_mode(m);
914         }
915      }
916      program {
917         signal: "efl,content,unset"; source: "efl";
918         script {
919            new m = get_int(btmode);
920            m &= ~ICON; set_int(btmode, m);
921            eval_mode(m);
922         }
923      }
924      program {
925         signal: "efl,state,disabled"; source: "efl";
926         script {
927            new m = get_int(btmode);
928            m |= DISABLE; set_int(btmode, m);
929            eval_mode(m);
930         }
931      }
932      program {
933         signal: "efl,state,enabled"; source: "efl";
934         script {
935            new m = get_int(btmode);
936            m &= ~DISABLE; set_int(btmode, m);
937            eval_mode(m);
938         }
939      }
940      program {
941         signal: "edje,state,rtl"; source: "edje";
942         script {
943            set_int(is_rtl, 1);
944         }
945      }
946      program {
947         signal: "edje,state,ltr"; source: "edje";
948         script {
949            set_int(is_rtl, 0);
950         }
951      }
952   }
953#undef ICON
954#undef LABEL
955#undef MASK
956#undef DISABLE
957}
958