clean up toggle turds :)
[framework/uifw/elementary.git] / data / themes / widgets / check.edc
1 group { name: "elm/check/base/default";
2    images {
3       image: "check_base.png" COMP;
4       image: "check.png" COMP;
5       image: "check2.png" COMP;
6    }
7    parts {
8       part { name: "bg";
9          mouse_events: 0;
10          scale: 1;
11          description { state: "default" 0.0;
12             rel1.offset: 1 1;
13             rel2.relative: 0.0 1.0;
14             rel2.offset: 1 -2;
15             align: 0.0 0.5;
16             min: 16 16;
17             max: 16 16;
18             aspect: 1.0 1.0;
19             aspect_preference: VERTICAL;
20             image {
21                normal: "check_base.png";
22                border: 5 5 5 5;
23                middle: 0;
24             }
25             fill.smooth : 0;
26          }
27       }
28       part { name: "check";
29          mouse_events: 0;
30          scale: 1;
31          description { state: "default" 0.0;
32             rel1 {
33                to: "bg";
34                offset: 1 1;
35             }
36             rel2 {
37                to: "bg";
38                offset: -2 -2;
39             }
40             visible: 0;
41             color: 255 255 255 255;
42             image.normal: "check.png";
43          }
44          description { state: "visible" 0.0;
45             inherit: "default" 0.0;
46             visible: 1;
47          }
48          description { state: "disabled" 0.0;
49             inherit: "default" 0.0;
50             visible: 0;
51             color: 128 128 128 128;
52          }
53          description { state: "disabled_visible" 0.0;
54             inherit: "default" 0.0;
55             color: 128 128 128 128;
56             visible: 1;
57          }
58       }
59       part { name: "elm.swallow.content";
60          type: SWALLOW;
61          description { state: "default" 0.0;
62             fixed: 1 0;
63             visible: 0;
64             align: 0.0 0.5;
65             rel1.to_x: "bg";
66             rel1.relative: 1.0 0.0;
67             rel1.offset: 1 1;
68             rel2.to_x: "bg";
69             rel2.offset: 1 -2;
70             rel2.relative: 1.0 1.0;
71          }
72          description { state: "visible" 0.0;
73             inherit: "default" 0.0;
74             fixed: 1 0;
75             visible: 1;
76             aspect: 1.0 1.0;
77          }
78          description { state: "disabled" 0.0;
79             inherit: "default" 0.0;
80             color: 128 128 128 128;
81          }
82          description { state: "disabled_visible" 0.0;
83             inherit: "default" 0.0;
84             color: 128 128 128 128;
85             fixed: 1 0;
86             visible: 1;
87             aspect: 1.0 1.0;
88          }
89       }
90       part { name: "elm.text";
91          type: TEXT;
92          mouse_events: 0;
93          scale: 1;
94          description { state: "default" 0.0;
95             visible: 0;
96             rel1.to_x: "elm.swallow.content";
97             rel1.relative: 1.0 0.0;
98             rel1.offset: 1 1;
99             rel2.relative: 1.0 1.0;
100             rel2.offset: -2 -2;
101             color: 0 0 0 255;
102             text {
103                font: "Sans,Edje-Vera";
104                size: 10;
105                min: 0 1;
106                align: -1.0 0.5;
107             }
108          }
109          description { state: "visible" 0.0;
110             inherit: "default" 0.0;
111             visible: 1;
112             text.min: 1 1;
113          }
114          description { state: "disabled" 0.0;
115             inherit: "default" 0.0;
116             color: 0 0 0 128;
117             color3: 0 0 0 0;
118          }
119          description { state: "disabled_visible" 0.0;
120             inherit: "default" 0.0;
121             color: 0 0 0 128;
122             color3: 0 0 0 0;
123             visible: 1;
124             text.min: 1 1;
125          }
126       }
127       part { name: "events";
128          type: RECT;
129          ignore_flags: ON_HOLD;
130          description { state: "default" 0.0;
131             color: 0 0 0 0;
132          }
133       }
134       part { name: "disabler";
135          type: RECT;
136          description { state: "default" 0.0;
137             color: 0 0 0 0;
138             visible: 0;
139          }
140          description { state: "disabled" 0.0;
141             inherit: "default" 0.0;
142             visible: 1;
143          }
144       }
145    }
146    programs {
147       program { name: "click";
148          signal: "mouse,up,1";
149          source: "events";
150          action: SIGNAL_EMIT "elm,action,check,toggle" "";
151       }
152       program { name: "check_on";
153          signal: "elm,state,check,on";
154          source: "elm";
155          action:  STATE_SET "visible" 0.0;
156          target: "check";
157       }
158       program { name: "check_off";
159          signal: "elm,state,check,off";
160          source: "elm";
161          action:  STATE_SET "default" 0.0;
162          target: "check";
163       }
164       program { name: "text_show";
165          signal: "elm,state,text,visible";
166          source: "elm";
167          action:  STATE_SET "visible" 0.0;
168          target: "elm.text";
169       }
170       program { name: "text_hide";
171          signal: "elm,state,text,hidden";
172          source: "elm";
173          action:  STATE_SET "default" 0.0;
174          target: "elm.text";
175       }
176       program { name: "icon_show";
177          signal: "elm,state,icon,visible";
178          source: "elm";
179          action:  STATE_SET "visible" 0.0;
180          target: "elm.swallow.content";
181       }
182       program { name: "icon_hide";
183          signal: "elm,state,icon,hidden";
184          source: "elm";
185          action:  STATE_SET "default" 0.0;
186          target: "elm.swallow.content";
187       }
188       program { name: "disable";
189          signal: "elm,state,disabled";
190          source: "elm";
191          action: STATE_SET "disabled" 0.0;
192          target: "disabler";
193          after: "disable_text";
194       }
195       program { name: "disable_text";
196          script {
197             new st[31];
198             new Float:vl;
199             get_state(PART:"elm.text", st, 30, vl);
200             if (!strcmp(st, "visible"))
201             set_state(PART:"elm.text", "disabled_visible", 0.0);
202             else
203             set_state(PART:"elm.text", "disabled", 0.0);
204
205             get_state(PART:"elm.swallow.content", st, 30, vl);
206             if (!strcmp(st, "visible"))
207             set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
208             else
209             set_state(PART:"elm.swallow.content", "disabled", 0.0);
210
211             get_state(PART:"check", st, 30, vl);
212             if (!strcmp(st, "visible"))
213             set_state(PART:"check", "disabled_visible", 0.0);
214             else
215             set_state(PART:"check", "disabled", 0.0);
216          }
217       }
218       program { name: "enable";
219          signal: "elm,state,enabled";
220          source: "elm";
221          action: STATE_SET "default" 0.0;
222          target: "disabler";
223          after: "enable_text";
224       }
225       program { name: "enable_text";
226          script {
227             new st[31];
228             new Float:vl;
229             get_state(PART:"elm.text", st, 30, vl);
230             if (!strcmp(st, "disabled_visible"))
231             set_state(PART:"elm.text", "visible", 0.0);
232             else
233             set_state(PART:"elm.text", "default", 0.0);
234
235             get_state(PART:"elm.swallow.content", st, 30, vl);
236             if (!strcmp(st, "visible"))
237             set_state(PART:"elm.swallow.content", "visible", 0.0);
238             else
239             set_state(PART:"elm.swallow.content", "default", 0.0);
240
241             get_state(PART:"check", st, 30, vl);
242             if (!strcmp(st, "visible"))
243             set_state(PART:"check", "visible", 0.0);
244             else
245             set_state(PART:"check", "default", 0.0);
246          }
247       }
248    }
249 }
250
251 group { name: "elm/check/base/toggle";
252    images {
253       image: "shelf_inset.png" COMP;
254       image: "bt_basew.png" COMP;
255       image: "bt_bases.png" COMP;
256       image: "bt_hilightw.png" COMP;
257       image: "tog_base_on.png" COMP;
258       image: "tog_base_off.png" COMP;
259       image: "tog_dis_base_on.png" COMP;
260       image: "tog_dis_base_off.png" COMP;
261    }
262    script {
263       public is_rtl;
264    }
265    parts {
266       part { name: "bg";
267          type: RECT;
268          mouse_events: 0;
269          scale: 1;
270          description { state: "default" 0.0;
271             rel1.relative: 1.0 0.0;
272             rel1.offset: -4 3;
273             rel2.offset: -4 -4;
274             align: 1.0 0.5;
275             min: 96 16;
276             max: 96 16;
277             aspect: 4.0 4.0;
278             aspect_preference: VERTICAL;
279             color: 255 255 255 255;
280          }
281       }
282       part { name: "clipper";
283          type: RECT;
284          mouse_events: 0;
285          description { state: "default" 0.0;
286             rel1.to: "bg";
287             rel2.to: "bg";
288             color: 255 255 255 255;
289          }
290       }
291       part { name: "button";
292          type: RECT;
293          scale: 1;
294          clip_to: "clipper";
295          mouse_events: 1;
296          dragable {
297             x: 1 1 0;
298             y: 0 0 0;
299             confine: "bg";
300          }
301          description { state: "default" 0.0;
302             fixed: 1 1;
303             rel1.to: "bg";
304             rel2.to: "bg";
305             min: 16 16;
306             max: 16 16;
307             aspect: 1.0 1.0;
308             aspect_preference: VERTICAL;
309             color: 0 0 0 0;
310          }
311       }
312       part { name: "button_events";
313          type: RECT;
314          dragable {
315             events: "button";
316          }
317          description { state: "default" 0.0;
318             rel1.to_x: "bg";
319             rel1.offset: 0 0;
320             rel1.relative: 0.0 0.0;
321             rel2.to_x: "bg";
322             rel2.offset: -1 -1;
323             rel2.relative: 1.0 1.0;
324             color: 0 0 0 0;
325          }
326       }
327       part { name: "onrect";
328          type: IMAGE;
329          scale: 1;
330          clip_to: "clipper";
331          mouse_events: 0;
332          description { state: "default" 0.0;
333             rel1.to: "button";
334             rel1.relative: -5.0 0.0;
335             rel2.to: "button";
336             rel2.relative: 0.5 1.0;
337             image.normal: "tog_base_on.png";
338          }
339          description { state: "disabled" 0.0;
340             inherit: "default" 0.0;
341             image.normal: "tog_dis_base_on.png";
342          }
343       }
344       part { name: "offrect";
345          type: IMAGE;
346          scale: 1;
347          clip_to: "clipper";
348          mouse_events: 0;
349          description { state: "default" 0.0;
350             rel1.to: "button";
351             rel1.relative: 0.5 0.0;
352             rel2.to: "button";
353             rel2.relative: 6.0 1.0;
354             image.normal: "tog_base_off.png";
355          }
356          description { state: "disabled" 0.0;
357             inherit: "default" 0.0;
358             image.normal: "tog_dis_base_off.png";
359          }
360       }
361       part { name: "elm.offtext";
362          type: TEXT;
363          mouse_events:  0;
364          scale: 1;
365          clip_to: "clipper";
366          description { state: "default" 0.0;
367             fixed: 1 1;
368             rel1.to_x: "button";
369             rel1.relative: 1.0 0.0;
370             rel2.to_x: "offrect";
371             color: 0 0 0 255;
372             text {
373                font:     "Sans,Edje-Vera";
374                size:     10;
375                min:      0 1;
376                align:    0.5 0.5;
377                text:     "OFF";
378             }
379          }
380          description { state: "disabled" 0.0;
381             inherit: "default" 0.0;
382             color: 128 128 128 128;
383          }
384       }
385       part { name: "elm.ontext";
386          type: TEXT;
387          effect: SOFT_SHADOW;
388          mouse_events:  0;
389          scale: 1;
390          clip_to: "clipper";
391          description { state: "default" 0.0;
392             fixed: 1 1;
393             rel1.to_x: "onrect";
394             rel1.offset: 1 1;
395             rel2.to_x: "button";
396             rel2.offset: 0 0;
397             rel2.relative: 0.0 1.0;
398             color: 224 224 224 255;
399             color3: 0 0 0 64;
400             text {
401                font:     "Sans,Edje-Vera";
402                size:     10;
403                min:      0 1;
404                align:    0.5 0.5;
405                text:     "ON";
406             }
407          }
408          description { state: "disabled" 0.0;
409             inherit: "default" 0.0;
410             color: 128 128 128 128;
411             color3: 0 0 0 24;
412          }
413       }
414       part { name: "conf_over";
415          mouse_events:  0;
416          description { state: "default" 0.0;
417             rel1.offset: -1 -1;
418             rel1.to: "bg";
419             rel2.offset: 0 0;
420             rel2.to: "bg";
421             image {
422                normal: "shelf_inset.png";
423                border: 7 7 7 7;
424                middle: 0;
425             }
426             fill.smooth : 0;
427          }
428       }
429       part { name: "button0";
430          mouse_events:  0;
431          clip_to: "clipper";
432          description { state: "default" 0.0;
433             rel1.to: "button2";
434             rel1.offset: -4 -4;
435             rel2.to: "button2";
436             rel2.offset: 3 3;
437             image {
438                normal: "bt_bases.png";
439                border: 11 11 11 11;
440             }
441             image.middle: SOLID;
442             color: 255 255 255 128;
443          }
444       }
445       part { name: "button2";
446          mouse_events:  0;
447          clip_to: "clipper";
448          description { state: "default" 0.0;
449             rel1.to: "button";
450             rel1.offset: -2 -2;
451             rel2.to: "button";
452             rel2.offset: 1 1;
453             image {
454                normal: "bt_basew.png";
455                border: 7 7 7 7;
456             }
457             image.middle: SOLID;
458          }
459       }
460       part { name: "button3";
461          mouse_events:  0;
462          clip_to: "clipper";
463          description { state: "default" 0.0;
464             rel1.to: "button2";
465             rel2.to: "button2";
466             rel2.relative: 1.0 0.5;
467             image {
468                normal: "bt_hilightw.png";
469                border: 4 4 4 0;
470             }
471          }
472       }
473       part { name: "elm.swallow.content";
474          type: SWALLOW;
475          description { state: "default" 0.0;
476             fixed: 1 0;
477             visible: 0;
478             align: 0.0 0.5;
479             rel1.offset: 4 4;
480             rel2.relative: 0.0 1.0;
481             rel2.offset: 3 -5;
482          }
483          description { state: "visible" 0.0;
484             inherit: "default" 0.0;
485             visible: 1;
486             aspect: 1.0 1.0;
487             rel2.offset: 4 -5;
488          }
489          description { state: "disabled" 0.0;
490             inherit: "default" 0.0;
491             color: 128 128 128 128;
492          }
493          description { state: "disabled_visible" 0.0;
494             inherit: "default" 0.0;
495             color: 128 128 128 128;
496             visible: 1;
497             aspect: 1.0 1.0;
498          }
499       }
500       part { name: "elm.text";
501          type: TEXT;
502          mouse_events: 0;
503          scale: 1;
504          description { state: "default" 0.0;
505             visible: 0;
506             rel1.to_x: "elm.swallow.content";
507             rel1.relative: 1.0 0.0;
508             rel1.offset: 0 4;
509             rel2.to_x: "bg";
510             rel2.relative: 0.0 1.0;
511             rel2.offset: -5 -5;
512             color: 0 0 0 255;
513             text {
514                font: "Sans,Edje-Vera";
515                size: 10;
516                min: 0 0;
517                align: 0.0 0.5;
518             }
519          }
520          description { state: "visible" 0.0;
521             inherit: "default" 0.0;
522             visible: 1;
523             text.min: 1 1;
524          }
525          description { state: "disabled" 0.0;
526             inherit: "default" 0.0;
527             color: 128 128 128 128;
528          }
529          description { state: "disabled_visible" 0.0;
530             inherit: "default" 0.0;
531             color: 128 128 128 128;
532             visible: 1;
533             text.min: 1 1;
534          }
535       }
536       part { name: "disabler";
537          type: RECT;
538          description { state: "default" 0.0;
539             color: 0 0 0 0;
540             visible: 0;
541          }
542          description { state: "disabled" 0.0;
543             inherit: "default" 0.0;
544             visible: 1;
545          }
546       }
547    }
548    programs {
549       program { name:   "drag_end";
550          signal: "mouse,up,1";
551          source: "button";
552          script {
553             new Float:dx, Float:dy;
554             get_drag(PART:"button", dx, dy);
555             if (dx > 0.5)
556             {
557                set_drag(PART:"button", 1.0, 0.0);
558             }
559             else
560             {
561                set_drag(PART:"button", 0.0, 0.0);
562             }
563             if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
564             (get_int(is_rtl) == 0) && (dx > 0.5)) {
565                emit("elm,action,check,on", "");
566             }
567             else {
568                emit("elm,action,check,off", "");
569             }
570
571          }
572       }
573       program { name: "check_on";
574          signal: "elm,state,check,on";
575          source: "elm";
576          script {
577             new Float:drag;
578             if (get_int(is_rtl) == 0) {
579                drag = 100.0;
580             }
581             else {
582                drag = 0.0;
583             }
584             set_drag(PART:"button", drag, 0.0);
585          }
586       }
587       program { name: "check_off";
588          signal: "elm,state,check,off";
589          source: "elm";
590          script {
591             new Float:drag;
592             if (get_int(is_rtl) == 0) {
593                drag = 0.0;
594             }
595             else {
596                drag = 100.0;
597             }
598             set_drag(PART:"button", drag, 0.0);
599          }
600       }
601       program { name: "text_show";
602          signal: "elm,state,text,visible";
603          source: "elm";
604          action:  STATE_SET "visible" 0.0;
605          target: "elm.text";
606       }
607       program { name: "text_hide";
608          signal: "elm,state,text,hidden";
609          source: "elm";
610          action:  STATE_SET "default" 0.0;
611          target: "elm.text";
612       }
613       program { name: "icon_show";
614          signal: "elm,state,icon,visible";
615          source: "elm";
616          action:  STATE_SET "visible" 0.0;
617          target: "elm.swallow.content";
618       }
619       program { name: "icon_hide";
620          signal: "elm,state,icon,hidden";
621          source: "elm";
622          action:  STATE_SET "default" 0.0;
623          target: "elm.swallow.content";
624       }
625       program { name: "disable";
626          signal: "elm,state,disabled";
627          source: "elm";
628          action: STATE_SET "disabled" 0.0;
629          target: "elm.offtext";
630          target: "elm.ontext";
631          target: "onrect";
632          target: "offrect";
633          target: "disabler";
634          after: "disable_text";
635       }
636       program { name: "disable_text";
637          script {
638             new st[31];
639             new Float:vl;
640             get_state(PART:"elm.text", st, 30, vl);
641             if (!strcmp(st, "visible"))
642             set_state(PART:"elm.text", "disabled_visible", 0.0);
643             else
644             set_state(PART:"elm.text", "disabled", 0.0);
645
646             get_state(PART:"elm.swallow.content", st, 30, vl);
647             if (!strcmp(st, "visible"))
648             set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
649             else
650             set_state(PART:"elm.swallow.content", "disabled", 0.0);
651          }
652       }
653       program { name: "enable";
654          signal: "elm,state,enabled";
655          source: "elm";
656          action: STATE_SET "default" 0.0;
657          target: "disabler";
658          target: "onrect";
659          target: "offrect";
660          after: "enable_text";
661       }
662       program { name: "enable_text";
663          script {
664             new st[31];
665             new Float:vl;
666             get_state(PART:"elm.text", st, 30, vl);
667             if (!strcmp(st, "disabled_visible"))
668             set_state(PART:"elm.text", "visible", 0.0);
669             else
670             set_state(PART:"elm.text", "default", 0.0);
671
672             get_state(PART:"elm.swallow.content", st, 30, vl);
673             if (!strcmp(st, "visible"))
674             set_state(PART:"elm.swallow.content", "visible", 0.0);
675             else
676             set_state(PART:"elm.swallow.content", "default", 0.0);
677          }
678       }
679       program { name: "to_rtl";
680          signal: "edje,state,rtl";
681          source: "edje";
682          script {
683             set_int(is_rtl, 1);
684          }
685       }
686       program { name: "to_ltr";
687          signal: "edje,state,ltr";
688          source: "edje";
689          script {
690             set_int(is_rtl, 0);
691          }
692       }
693    }
694 }