67f01106287cde5726b236089295767f23e41947
[platform/core/uifw/efl-theme-tizen.git] / themes / widgets / check.edc
1 /*
2  * efl-theme-tizen
3  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Apache License, Version 2.0 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an AS IS BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18
19
20 #define CHECK_STATE_DEFAULT 0
21 #define CHECK_STATE_VISIBLE 1
22 #define CHECK_STATE_DISABLED_VISIBLE 2
23 #define CHECK_STATE_DISABLED 3
24
25 #define CHECK_HIDE 0
26 #define CHECK_SHOW 1
27 ////////////////////////////////////////////////////////////////////////////////
28 #define CHECK_STYLE_DEFAULT(style_name, min_width, min_height) \
29    group { name: "elm/check/base/"style_name; \
30       images { \
31          image: "00_check_bg.png" COMP; \
32          image: "00_check_dim_bg.png" COMP; \
33          image: "00_check_dim.png" COMP; \
34          image: "00_check_Activated.png" COMP; \
35       } \
36       script { \
37          public check_state = CHECK_STATE_DEFAULT; \
38          public check_visible = CHECK_HIDE; \
39       } \
40       parts { \
41          part { name: "back_bg"; \
42             type: RECT; \
43             scale: 1; \
44             description { state: "default" 0.0; \
45                rel2.relative: 0.0 1.0; \
46                align: 0 0.5; \
47                min: min_width min_height; \
48                fixed: 1 0; \
49                color: 0 0 0 0; \
50             } \
51          } \
52          part { name: "bg"; \
53             mouse_events: 0; \
54             scale: 1; \
55             description { state: "default" 0.0; \
56                min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
57                max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
58                fixed: 1 1; \
59                rel1.to: "back_bg"; \
60                rel2.to: "back_bg"; \
61                image.normal: "00_check_bg.png"; \
62                fill.smooth : 0; \
63             } \
64             description { state: "visible" 0.0; \
65                inherit: "default" 0.0; \
66             } \
67             description { state: "disabled" 0.0; \
68                inherit: "default" 0.0; \
69                image.normal: "00_check_dim_bg.png"; \
70             } \
71          } \
72          part { name: "check"; \
73             clip_to: "sequence_clip"; \
74             mouse_events: 0; \
75             scale: 1; \
76             description { state: "default" 0.0; \
77                rel1.to: "bg"; \
78                rel2.to: "bg"; \
79                visible: 0; \
80                image.normal: "00_check_Activated.png"; \
81                color: 255 255 255 0; \
82             } \
83             description { state: "visible" 0.0; \
84                inherit: "default" 0.0; \
85                visible: 1; \
86                color: 255 255 255 255; \
87             } \
88             description { state: "disabled_visible" 0.0; \
89                inherit: "default" 0.0; \
90                visible: 1; \
91                image.normal: "00_check_dim.png"; \
92                color: 255 255 255 255; \
93             } \
94          } \
95          part { name: "sequence_clip"; \
96             type: RECT; \
97             mouse_events: 0; \
98             description { state: "default" 0.0; \
99                rel2.relative: 0.0 1.0; \
100                color: 255 255 255 255; \
101             } \
102             description { state: "visible" 0.0; \
103                inherit: "default" 0.0; \
104                rel2.relative: 1.0 1.0; \
105             } \
106          } \
107          part { name: "elm.swallow.content"; \
108             type: SWALLOW; \
109             clip_to: "disclip"; \
110             description { state: "default" 0.0; \
111                fixed: 1 0; \
112                visible: 0; \
113                align: 0.0 0.5; \
114                rel1 { \
115                   to_x: "bg"; \
116                   relative: 1.0 0.0; \
117                   offset: 1 1; \
118                } \
119                rel2 { \
120                   to_x: "bg"; \
121                   relative: 1.0 1.0; \
122                   offset: 2 -2; \
123                } \
124             } \
125             description { state: "visible" 0.0; \
126                inherit: "default" 0.0; \
127                fixed: 1 1; \
128                visible: 1; \
129                aspect: 1.0 1.0; \
130                aspect_preference: VERTICAL; \
131             } \
132             description { state: "disabled" 0.0; \
133                inherit: "default" 0.0; \
134             } \
135             description { state: "disabled_visible" 0.0; \
136                inherit: "default" 0.0; \
137                fixed: 1 1; \
138                visible: 1; \
139                aspect: 1.0 1.0; \
140             } \
141          } \
142          part { name: "elm.text"; \
143             type: TEXTBLOCK; \
144             mouse_events: 0; \
145             clip_to: "disclip"; \
146             scale: 1; \
147             description { state: "default" 0.0; \
148                visible: 0; \
149                fixed: 0 1; \
150                rel1 { \
151                   relative: 1.0 0.5; \
152                   offset: 1 1; \
153                   to_x: "elm.swallow.content"; \
154                } \
155                rel2 { \
156                   relative: 1.0 0.5; \
157                   offset: -2 -2; \
158                } \
159                align: 0.0 0.5; \
160                text { \
161                   style: "check_label_textblock_style"; \
162                   min: 0 0; \
163                } \
164                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
165             } \
166             description { state: "visible" 0.0; \
167                inherit: "default" 0.0; \
168                visible: 1; \
169                text.min: 1 1; \
170             } \
171             description { state: "disabled" 0.0; \
172                inherit: "default" 0.0; \
173             } \
174             description { state: "disabled_visible" 0.0; \
175                inherit: "default" 0.0; \
176                visible: 1; \
177                text.min: 1 1; \
178                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
179             } \
180          } \
181          part { name: "events1"; \
182             type: RECT; \
183             ignore_flags: ON_HOLD; \
184             description { state: "default" 0.0; \
185                color: 0 0 0 0; \
186             } \
187          } \
188          part { name: "events2"; \
189             type: RECT; \
190             repeat_events: 1; \
191             description { state: "default" 0.0; \
192                color: 0 0 0 0; \
193             } \
194          } \
195          part { name: "disclip"; \
196             type: RECT; \
197             mouse_events: 0; \
198             description { state: "default" 0.0; \
199                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
200             } \
201             description { state: "disabled" 0.0; \
202                inherit: "default" 0.0; \
203                color: CHECK_DISCLIP_DISABLED_COLOR_INC; \
204             } \
205          } \
206          part { name: "disabler"; \
207             type: RECT; \
208             description { state: "default" 0.0; \
209                color: 0 0 0 0; \
210                visible: 0; \
211             } \
212             description { state: "disabled" 0.0; \
213                inherit: "default" 0.0; \
214                visible: 1; \
215             } \
216          } \
217       } \
218       programs { \
219          program { name: "show"; \
220             signal: "show"; \
221             script { \
222                set_int(check_visible, CHECK_SHOW); \
223             } \
224          } \
225          program { name: "hide"; \
226             signal: "hide"; \
227             script { \
228                set_int(check_visible, CHECK_HIDE); \
229             } \
230          } \
231          program { name: "click"; \
232             signal: "mouse,clicked,1"; \
233             source: "events1"; \
234             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
235             after: "touch_sound"; \
236          } \
237          program { name: "touch_sound"; \
238             action: PLAY_SAMPLE "touch_sound" 1.0; \
239          } \
240          program { name: "mouse,out"; \
241             signal: "mouse,out"; \
242             source: "events2"; \
243             script { \
244                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
245                  { \
246                     set_state(PART:"check", "visible", 0.0); \
247                     set_state(PART:"sequence_clip", "visible", 0.0); \
248                  } \
249                else \
250                  { \
251                     set_state(PART:"check", "default", 0.0); \
252                     set_state(PART:"sequence_clip", "default", 0.0); \
253                  } \
254             } \
255          } \
256          program { name: "check_on"; \
257             signal: "elm,state,check,on"; \
258             source: "elm"; \
259             script { \
260                set_int(check_state, CHECK_STATE_VISIBLE); \
261                if (get_int(check_visible) == CHECK_SHOW) \
262                  { \
263                     run_program(PROGRAM:"check_show_effect"); \
264                     run_program(PROGRAM:"check_draw_effect"); \
265                  } \
266                else \
267                  { \
268                     set_state(PART:"check", "visible", 0.0); \
269                     set_state(PART:"sequence_clip", "visible", 0.0); \
270                  } \
271             } \
272          } \
273          program { name: "check_off"; \
274             signal: "elm,state,check,off"; \
275             source: "elm"; \
276             action: STATE_SET "default" 0.0; \
277             target: "check"; \
278             script { \
279                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
280                  { \
281                     set_int(check_state, CHECK_STATE_DEFAULT); \
282                     set_state(PART:"check", "default", 0.0); \
283                     set_state(PART:"sequence_clip", "default", 0.0); \
284                  } \
285             } \
286          } \
287          program { name: "check_show_effect"; \
288             action: STATE_SET "visible" 0.0; \
289             transition: LINEAR 0.233; \
290             target: "check"; \
291          } \
292          program { name: "check_draw_effect"; \
293             action: STATE_SET "visible" 0.0; \
294             transition: LINEAR 0.267; \
295             target: "sequence_clip"; \
296          } \
297          program { name: "text_show"; \
298             signal: "elm,state,text,visible"; \
299             source: "elm"; \
300             action: STATE_SET "visible" 0.0; \
301             target: "elm.text"; \
302          } \
303          program { name: "text_hide"; \
304             signal: "elm,state,text,hidden"; \
305             source: "elm"; \
306             action: STATE_SET "default" 0.0; \
307             target: "elm.text"; \
308          } \
309          program { name: "icon_show"; \
310             signal: "elm,state,icon,visible"; \
311             source: "elm"; \
312             action: STATE_SET "visible" 0.0; \
313             target: "elm.swallow.content"; \
314          } \
315          program { name: "icon_hide"; \
316             signal: "elm,state,icon,hidden"; \
317             source: "elm"; \
318             action: STATE_SET "default" 0.0; \
319             target: "elm.swallow.content"; \
320          } \
321          program { name: "disable"; \
322             signal: "elm,state,disabled"; \
323             source: "elm"; \
324             action: STATE_SET "disabled" 0.0; \
325             target: "disabler"; \
326             target: "disclip"; \
327             target: "bg"; \
328             after: "disable_text"; \
329          } \
330          program { name: "disable_text"; \
331             script { \
332                new st[31]; \
333                new Float:vl; \
334                get_state(PART:"elm.text", st, 30, vl); \
335                if (!strcmp(st, "visible")) \
336                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
337                else \
338                  set_state(PART:"elm.text", "disabled", 0.0); \
339                get_state(PART:"elm.swallow.content", st, 30, vl); \
340                if (!strcmp(st, "visible")) \
341                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
342                else \
343                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
344                get_state(PART:"check", st, 30, vl); \
345                if (!strcmp(st, "visible")) \
346                  { \
347                     set_state(PART:"check", "disabled_visible", 0.0); \
348                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \
349                  } \
350             } \
351          } \
352          program { name: "enable"; \
353             signal: "elm,state,enabled"; \
354             source: "elm"; \
355             action: STATE_SET "default" 0.0; \
356             target: "disabler"; \
357             target: "disclip"; \
358             target: "bg"; \
359             after: "enable_text"; \
360          } \
361          program { name: "enable_text"; \
362             script { \
363                new st[31]; \
364                new Float:vl; \
365                get_state(PART:"elm.text", st, 30, vl); \
366                if (!strcmp(st, "disabled_visible")) \
367                  set_state(PART:"elm.text", "visible", 0.0); \
368                else \
369                  set_state(PART:"elm.text", "default", 0.0); \
370                get_state(PART:"elm.swallow.content", st, 30, vl); \
371                if (!strcmp(st, "visible")) \
372                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
373                else \
374                  set_state(PART:"elm.swallow.content", "default", 0.0); \
375                get_state(PART:"check", st, 30, vl); \
376                if (!strcmp(st, "disabled_visible")) \
377                  { \
378                     set_state(PART:"check", "visible", 0.0); \
379                     set_state(PART:"sequence_clip", "visible", 0.0); \
380                     set_int(check_state, CHECK_STATE_VISIBLE); \
381                  } \
382                else \
383                  set_int(check_state, CHECK_STATE_DEFAULT); \
384             } \
385          } \
386       } \
387    }
388 ////////////////////////////////////////////////////////////////////////////////
389 CHECK_STYLE_DEFAULT("default", CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
390 ////////////////////////////////////////////////////////////////////////////////
391 CHECK_STYLE_DEFAULT("default/extended", CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC)
392 ////////////////////////////////////////////////////////////////////////////////
393
394 #define CHECK_STYLE_FOR_GENLIST(style_name, min_width, min_height) \
395    group { name: "elm/check/base/"style_name; \
396       images { \
397          image: "00_check_bg.png" COMP; \
398          image: "00_check_dim_bg.png" COMP; \
399          image: "00_check_dim.png" COMP; \
400          image: "00_check_Activated.png" COMP; \
401       } \
402       script { \
403          public check_state = CHECK_STATE_DEFAULT; \
404       } \
405       parts { \
406          part { name: "back_bg"; \
407             type: RECT; \
408             scale: 1; \
409             description { state: "default" 0.0; \
410                min: min_width min_height; \
411                fixed: 0 0; \
412                color: 0 0 0 0; \
413             } \
414          } \
415          part { name: "bg"; \
416             mouse_events: 0; \
417             scale: 1; \
418             description { state: "default" 0.0; \
419                min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
420                max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
421                fixed: 1 1; \
422                rel1.to: "back_bg"; \
423                rel2.to: "back_bg"; \
424                image.normal: "00_check_bg.png"; \
425                fill.smooth : 0; \
426             } \
427             description { state: "disabled" 0.0; \
428                inherit: "default" 0.0; \
429                image.normal: "00_check_dim_bg.png"; \
430             } \
431          } \
432          part { name: "check"; \
433             mouse_events: 0; \
434             scale: 1; \
435             description { state: "default" 0.0; \
436                rel1.to: "bg"; \
437                rel2.to: "bg"; \
438                visible: 0; \
439                image.normal: "00_check_Activated.png"; \
440             } \
441             description { state: "visible" 0.0; \
442                inherit: "default" 0.0; \
443                visible: 1; \
444             } \
445             description { state: "disabled_visible" 0.0; \
446                inherit: "default" 0.0; \
447                visible: 1; \
448                image.normal: "00_check_dim.png"; \
449             } \
450          } \
451          part { name: "elm.swallow.content"; \
452             type: SWALLOW; \
453             clip_to: "disclip"; \
454             description { state: "default" 0.0; \
455                fixed: 1 0; \
456                visible: 0; \
457                align: 0.0 0.5; \
458                rel1 { \
459                   to_x: "bg"; \
460                   relative: 1.0 0.0; \
461                   offset: 1 1; \
462                } \
463                rel2 { \
464                   to_x: "bg"; \
465                   relative: 1.0 1.0; \
466                   offset: 2 -2; \
467                } \
468             } \
469             description { state: "visible" 0.0; \
470                inherit: "default" 0.0; \
471                fixed: 1 1; \
472                visible: 1; \
473                aspect: 1.0 1.0; \
474                aspect_preference: VERTICAL; \
475             } \
476             description { state: "disabled" 0.0; \
477                inherit: "default" 0.0; \
478             } \
479             description { state: "disabled_visible" 0.0; \
480                inherit: "default" 0.0; \
481                fixed: 1 1; \
482                visible: 1; \
483                aspect: 1.0 1.0; \
484             } \
485          } \
486          part { name: "elm.text"; \
487             type: TEXTBLOCK; \
488             mouse_events: 0; \
489             clip_to: "disclip"; \
490             scale: 1; \
491             description { state: "default" 0.0; \
492                visible: 0; \
493                fixed: 0 1; \
494                rel1 { \
495                   relative: 1.0 0.5; \
496                   offset: 1 1; \
497                   to_x: "elm.swallow.content"; \
498                } \
499                rel2 { \
500                   relative: 1.0 0.5; \
501                   offset: -2 -2; \
502                } \
503                align: 0.0 0.5; \
504                text { \
505                   style: "check_label_textblock_style"; \
506                   min: 0 0; \
507                } \
508                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
509             } \
510             description { state: "visible" 0.0; \
511                inherit: "default" 0.0; \
512                visible: 1; \
513                text.min: 1 1; \
514             } \
515             description { state: "disabled" 0.0; \
516                inherit: "default" 0.0; \
517             } \
518             description { state: "disabled_visible" 0.0; \
519                inherit: "default" 0.0; \
520                visible: 1; \
521                text.min: 1 1; \
522                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
523             } \
524          } \
525          part { name: "events1"; \
526             type: RECT; \
527             ignore_flags: ON_HOLD; \
528             description { state: "default" 0.0; \
529                color: 0 0 0 0; \
530             } \
531          } \
532          part { name: "events2"; \
533             type: RECT; \
534             repeat_events: 1; \
535             description { state: "default" 0.0; \
536                color: 0 0 0 0; \
537             } \
538          } \
539          part { name: "disclip"; \
540             type: RECT; \
541             mouse_events: 0; \
542             description { state: "default" 0.0; \
543                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
544             } \
545             description { state: "disabled" 0.0; \
546                inherit: "default" 0.0; \
547                color: CHECK_DISCLIP_DISABLED_COLOR_INC; \
548             } \
549          } \
550          part { name: "disabler"; \
551             type: RECT; \
552             description { state: "default" 0.0; \
553                color: 0 0 0 0; \
554                visible: 0; \
555             } \
556             description { state: "disabled" 0.0; \
557                inherit: "default" 0.0; \
558                visible: 1; \
559             } \
560          } \
561       } \
562       programs { \
563          program { name: "click"; \
564             signal: "mouse,clicked,1"; \
565             source: "events1"; \
566             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
567             after: "touch_sound"; \
568          } \
569          program { name: "touch_sound"; \
570             action: PLAY_SAMPLE "touch_sound" 1.0; \
571          } \
572          program { name: "check_on"; \
573             signal: "elm,state,check,on"; \
574             source: "elm"; \
575             script { \
576                set_int(check_state, CHECK_STATE_VISIBLE); \
577                set_state(PART:"check", "visible", 0.0); \
578             } \
579          } \
580          program { name: "check_off"; \
581             signal: "elm,state,check,off"; \
582             source: "elm"; \
583             action: STATE_SET "default" 0.0; \
584             target: "check"; \
585             script { \
586                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
587                  { \
588                     set_int(check_state, CHECK_STATE_DEFAULT); \
589                     set_state(PART:"check", "default", 0.0); \
590                  } \
591             } \
592          } \
593          program { name: "text_show"; \
594             signal: "elm,state,text,visible"; \
595             source: "elm"; \
596             action: STATE_SET "visible" 0.0; \
597             target: "elm.text"; \
598          } \
599          program { name: "text_hide"; \
600             signal: "elm,state,text,hidden"; \
601             source: "elm"; \
602             action: STATE_SET "default" 0.0; \
603             target: "elm.text"; \
604          } \
605          program { name: "icon_show"; \
606             signal: "elm,state,icon,visible"; \
607             source: "elm"; \
608             action: STATE_SET "visible" 0.0; \
609             target: "elm.swallow.content"; \
610          } \
611          program { name: "icon_hide"; \
612             signal: "elm,state,icon,hidden"; \
613             source: "elm"; \
614             action: STATE_SET "default" 0.0; \
615             target: "elm.swallow.content"; \
616          } \
617          program { name: "disable"; \
618             signal: "elm,state,disabled"; \
619             source: "elm"; \
620             action: STATE_SET "disabled" 0.0; \
621             target: "disabler"; \
622             target: "disclip"; \
623             target: "bg"; \
624             after: "disable_text"; \
625          } \
626          program { name: "disable_text"; \
627             script { \
628                new st[31]; \
629                new Float:vl; \
630                get_state(PART:"elm.text", st, 30, vl); \
631                if (!strcmp(st, "visible")) \
632                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
633                else \
634                  set_state(PART:"elm.text", "disabled", 0.0); \
635                get_state(PART:"elm.swallow.content", st, 30, vl); \
636                if (!strcmp(st, "visible")) \
637                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
638                else \
639                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
640                get_state(PART:"check", st, 30, vl); \
641                if (!strcmp(st, "visible")) \
642                  { \
643                     set_state(PART:"check", "disabled_visible", 0.0); \
644                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \
645                  } \
646             } \
647          } \
648          program { name: "enable"; \
649             signal: "elm,state,enabled"; \
650             source: "elm"; \
651             action: STATE_SET "default" 0.0; \
652             target: "disabler"; \
653             target: "disclip"; \
654             target: "bg"; \
655             after: "enable_text"; \
656          } \
657          program { name: "enable_text"; \
658             script { \
659                new st[31]; \
660                new Float:vl; \
661                get_state(PART:"elm.text", st, 30, vl); \
662                if (!strcmp(st, "disabled_visible")) \
663                  set_state(PART:"elm.text", "visible", 0.0); \
664                else \
665                  set_state(PART:"elm.text", "default", 0.0); \
666                get_state(PART:"elm.swallow.content", st, 30, vl); \
667                if (!strcmp(st, "visible")) \
668                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
669                else \
670                  set_state(PART:"elm.swallow.content", "default", 0.0); \
671                get_state(PART:"check", st, 30, vl); \
672                if (!strcmp(st, "disabled_visible")) \
673                  { \
674                     set_state(PART:"check", "visible", 0.0); \
675                     set_int(check_state, CHECK_STATE_VISIBLE); \
676                  } \
677                else \
678                  set_int(check_state, CHECK_STATE_DEFAULT); \
679             } \
680          } \
681       } \
682    }
683 ////////////////////////////////////////////////////////////////////////////////
684 CHECK_STYLE_FOR_GENLIST("default/genlist_edit", CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
685 ////////////////////////////////////////////////////////////////////////////////
686    styles {
687       style { name: "check_label_textblock_style";
688          base: "font=Tizen:style=Roman font_size="CHECK_DEFAULT_TEXT_FONT_SIZE_INC" color=#ffffff wrap=char text_class=tizen";
689          tag: "br" "\n";
690          tag: "ps" "ps";
691          tag: "hilight" "+ font=Tizen:style=Bold";
692          tag: "b" "+ font=Tizen:style=Bold";
693          tag: "whitecolor" "+ color=#ffffff";
694          tag: "tab" "\t";
695       }
696    }
697
698    group { name: "elm/check/base/on&off";
699       images {
700          image: "00_button_on.png" COMP;
701          image: "00_button_on_dim.png" COMP;
702          image: "00_button_off.png" COMP;
703          image: "00_button_off_dim.png" COMP;
704          image: "00_button_on_off_handler.png" COMP;
705          image: "00_button_on_off_handler_dim.png" COMP;
706       }
707       script {
708          public is_rtl = 0;
709          public is_drag = 0;
710          public was_drag = 0;
711          public check_on = 0;
712       }
713       parts {
714          part { name: "bg";
715             type: RECT;
716             mouse_events: 1;
717             scale: 1;
718             description { state: "default" 0.0;
719                min: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
720                max: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
721                rel2.relative: 0.0 1.0;
722                fixed: 1 1;
723                align: 0.0 0.5;
724                visible: 0;
725             }
726          }
727          part { name: "padding_left";
728             type: RECT;
729             scale: 1;
730             mouse_events: 0;
731             description { state: "default" 0.0;
732                align: 0.0 0.0;
733                rel1{ relative: 0.0 0.0; to: "bg"; }
734                rel2{ relative: 0.0 1.0; to: "bg"; }
735                min: 0 0;
736                fixed: 1 1;
737                color: 0 0 0 0;
738             }
739          }
740          part { name: "padding_right";
741             type: RECT;
742             scale: 1;
743             mouse_events: 0;
744             description { state: "default" 0.0;
745                align: 1.0 0.0;
746                rel1 {
747                   relative: 1.0 0.0;
748                   to: "bg";
749                }
750                rel2 {
751                   relative: 1.0 1.0;
752                   to: "bg";
753                }
754                min: 0 0;
755                fixed: 1 1;
756                color: 0 0 0 0;
757             }
758          }
759          part { name: "padding_top";
760             type: RECT;
761             scale: 1;
762             mouse_events: 0;
763             description { state: "default" 0.0;
764                align: 0.0 0.0;
765                rel1.to: "bg";
766                rel2 {
767                   relative: 1.0 0.0;
768                   to: "bg";
769                }
770                min: 0 0;
771                fixed: 1 1;
772                color: 0 0 0 0;
773             }
774          }
775          part { name: "padding_bottom";
776             type: RECT;
777             scale: 1;
778             mouse_events: 0;
779             description { state: "default" 0.0;
780                align: 1.0 1.0;
781                rel1 {
782                   relative: 0.0 1.0;
783                   to: "bg";
784                }
785                rel2 {
786                   relative: 1.0 1.0;
787                   to: "bg";
788                }
789                min: 0 0;
790                fixed: 0 1;
791                color: 0 0 0 0;
792             }
793          }
794          part { name: "bg_image";
795             mouse_events: 0;
796             scale: 1;
797             description { state: "default" 0.0;
798                align: 0.0 0.5;
799                rel1 {
800                   relative: 0.0 1.0;
801                   to_x: "bg";
802                   to_y: "padding_top";
803                }
804                rel2 {
805                   relative: 1.0 0.0;
806                   to_x: "bg";
807                   to_y: "padding_bottom";
808                }
809                image.normal: "00_button_off.png";
810             }
811             description { state: "visible" 0.0;
812                inherit: "default" 0.0;
813                image.normal: "00_button_on.png";
814             }
815             description { state: "pressed" 0.0;
816                inherit: "default" 0.0;
817                image.normal: "00_button_off.png";
818             }
819             description { state: "visible_pressed" 0.0;
820                inherit: "default" 0.0;
821                image.normal: "00_button_on.png";
822             }
823             description { state: "visible_disable" 0.0;
824                inherit: "default" 0.0;
825                image.normal: "00_button_on_dim.png";
826             }
827             description { state: "off_disable" 0.0;
828                inherit: "default" 0.0;
829                image.normal: "00_button_off_dim.png";
830             }
831          }
832          part { name: "drag_container";
833             type: RECT;
834             scale: 1;
835             mouse_events: 0;
836             description { state: "default" 0.0;
837                rel1 {
838                   relative: 1.0 0.0;
839                   to_x: "padding_left";
840                   to_y: "bg";
841                }
842                rel2 {
843                   relative: 0.0 1.0;
844                   to_x: "padding_right";
845                   to_y: "bg";
846                }
847                color: 0 0 0 0;
848             }
849          }
850          part { name: "clipper";
851             type: RECT;
852             mouse_events: 0;
853             description { state: "default" 0.0;
854                rel1.to: "bg";
855                rel2.to: "bg";
856                color: 255 255 255 255;
857             }
858          }
859          part { name: "clipper_inner";
860             type: RECT;
861             mouse_events: 0;
862             description { state: "default" 0.0;
863                rel1.to: "bg_image";
864                rel2.to: "bg_image";
865                color: 255 255 255 255;
866             }
867          }
868          part { name: "button";
869             scale: 1;
870             clip_to: "clipper";
871             mouse_events: 1;
872             dragable {
873                x: 1 1 0;
874                y: 0 0 0;
875                confine: "drag_container";
876             }
877             description { state: "default" 0.0;
878                min: CHECK_ONOFF_HANDLER_MIN_MAX_INC;
879                max: CHECK_ONOFF_HANDLER_MIN_MAX_INC;
880                rel1.to: "bg";
881                rel2.to: "bg";
882                align: 0.0 0.5;
883                fixed: 1 1;
884                image.normal: "00_button_on_off_handler.png";
885             }
886             description { state: "disabled" 0.0;
887                inherit: "default" 0.0;
888                image.normal: "00_button_on_off_handler_dim.png";
889             }
890          }
891          part { name: "button_events";
892             type: RECT;
893             dragable {
894                events: "button";
895             }
896             description { state: "default" 0.0;
897                rel1.to_x: "bg";
898                rel2.to_x: "bg";
899                color: 0 0 0 0;
900             }
901          }
902          part { name: "onrect";
903             type: RECT;
904             scale: 1;
905             clip_to: "clipper";
906             mouse_events: 0;
907             description { state: "default" 0.0;
908                rel1 {
909                   relative: -1.0 0.0;
910                   to: "button";
911                }
912                rel2 {
913                   relative: 0.0 1.0;
914                   to: "button";
915                }
916                align: 1.0 0.5;
917                color: 0 0 0 0;
918             }
919          }
920          part { name: "offrect";
921             type: RECT;
922             scale: 1;
923             clip_to: "clipper";
924             mouse_events: 0;
925             description { state: "default" 0.0;
926                rel1 {
927                   relative: 1.0 0.0;
928                   to: "button";
929                }
930                rel2 {
931                   relative: 2.0 1.0;
932                   to: "button";
933                }
934                color: 0 0 0 0;
935             }
936          }
937          part { name: "elm.offtext";
938             type: TEXT;
939             mouse_events: 0;
940             scale: 1;
941             clip_to: "clipper_inner";
942             description { state: "default" 0.0;
943                rel1.to: "offrect";
944                rel2.to: "offrect";
945                color: 255 255 255 255;
946                text {
947                   font: "Tizen:style=Medium";
948                   size: 20;
949                   min: 0 1;
950                   text_class: "tizen";
951                }
952             }
953             description { state: "disabled" 0.0;
954                inherit: "default" 0.0;
955                color: 128 128 128 128;
956             }
957          }
958          part { name: "elm.ontext";
959             type: TEXT;
960             mouse_events: 0;
961             scale: 1;
962             clip_to: "clipper_inner";
963             description { state: "default" 0.0;
964                rel1.to: "onrect";
965                rel2.to: "onrect";
966                color: 255 255 255 255;
967                text {
968                   font: "Tizen:style=Medium";
969                   size: 20;
970                   min: 0 1;
971                   text_class: "tizen";
972                }
973             }
974             description { state: "disabled" 0.0;
975                inherit: "default" 0.0;
976                color: 128 128 128 128;
977             }
978          }
979          part { name: "elm.swallow.content";
980             type: SWALLOW;
981             clip_to: "disclip";
982             description { state: "default" 0.0;
983                fixed: 1 0;
984                visible: 0;
985                align: 0.0 0.5;
986                rel1 {
987                   to_x: "bg";
988                   relative: 1.0 0.0;
989                }
990                rel2 {
991                   to_x: "bg";
992                   relative: 1.0 1.0;
993                }
994             }
995             description { state: "visible" 0.0;
996                inherit: "default" 0.0;
997                fixed: 1 1;
998                visible: 1;
999                aspect: 1.0 1.0;
1000                aspect_preference: VERTICAL;
1001             }
1002             description { state: "disabled" 0.0;
1003                inherit: "default" 0.0;
1004             }
1005             description { state: "disabled_visible" 0.0;
1006                inherit: "default" 0.0;
1007                fixed: 1 1;
1008                visible: 1;
1009                aspect: 1.0 1.0;
1010             }
1011          }
1012          part { name: "elm.text";
1013             type: TEXTBLOCK;
1014             mouse_events: 0;
1015             scale: 1;
1016             clip_to: "disclip";
1017             description { state: "default" 0.0;
1018                visible: 0;
1019                fixed: 0 1;
1020                rel1 {
1021                   relative: 1.0 0.5;
1022                   offset: 1 1;
1023                   to_x: "elm.swallow.content";
1024                }
1025                rel2 {
1026                   relative: 1.0 0.5;
1027                   offset: -2 -2;
1028                }
1029                align: 0.0 0.5;
1030                text {
1031                   style: "check_label_textblock_style";
1032                   min: 0 0;
1033                }
1034                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
1035             }
1036             description { state: "visible" 0.0;
1037                inherit: "default" 0.0;
1038                visible: 1;
1039                text.min: 1 1;
1040             }
1041             description { state: "disabled" 0.0;
1042                inherit: "default" 0.0;
1043             }
1044             description { state: "disabled_visible" 0.0;
1045                inherit: "default" 0.0;
1046                visible: 1;
1047                text.min: 1 1;
1048             }
1049          }
1050          part { name: "disclip";
1051             type: RECT;
1052             mouse_events: 0;
1053             description { state: "default" 0.0;
1054                color: CHECK_DISCLIP_NORMAL_COLOR_INC;
1055             }
1056             description { state: "disabled" 0.0;
1057                inherit: "default" 0.0;
1058                color: CHECK_DISCLIP_DISABLED_COLOR_INC;
1059             }
1060          }
1061          part { name: "disabler";
1062             type: RECT;
1063             description { state: "default" 0.0;
1064                color: 0 0 0 0;
1065                visible: 0;
1066             }
1067             description { state: "disabled" 0.0;
1068                inherit: "default" 0.0;
1069                visible: 1;
1070             }
1071          }
1072       }
1073       programs {
1074          program {
1075             signal: "mouse,clicked,1";
1076             source: "button";
1077             script {
1078                new Float:dx, Float:dy;
1079                get_drag(PART:"button", dx, dy);
1080                if (!get_int(was_drag)) {
1081                   if (dx > 0.5)
1082                     set_drag(PART:"button", 0.0, 0.0);
1083                   else
1084                     set_drag(PART:"button", 1.0, 0.0);
1085                   if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
1086                       (get_int(is_rtl) == 0) && (dx > 0.5)) {
1087                      if (get_int(check_on)) {
1088                        emit("elm,action,check,off", "");
1089                        emit("elm,action,touch,sound", "");
1090                      }
1091                   }
1092                   else {
1093                      if (!get_int(check_on)) {
1094                        emit("elm,action,check,on", "");
1095                        emit("elm,action,touch,sound", "");
1096                      }
1097                   }
1098                }
1099             }
1100          }
1101          program { name: "touch_sound";
1102             signal: "elm,action,touch,sound";
1103             source: "";
1104             action: PLAY_SAMPLE "touch_sound" 1.0;
1105          }
1106          program {
1107             signal: "drag";
1108             source: "button";
1109             script {
1110                if (!get_int(is_drag)) emit("elm,action,check,drag,start", "");
1111                set_int(is_drag, 1);
1112             }
1113          }
1114          program {
1115             signal: "mouse,down,1";
1116             source: "button";
1117             script {
1118                set_int(was_drag, 0);
1119                set_int(is_drag, 0);
1120             }
1121          }
1122          program { name: "drag_end";
1123             signal: "mouse,up,1";
1124             source: "button";
1125             script {
1126                new Float:dx, Float:dy;
1127                get_drag(PART:"button", dx, dy);
1128                if (get_int(is_drag)) {
1129                   if (dx > 0.5)
1130                     set_drag(PART:"button", 1.0, 0.0);
1131                   else
1132                     set_drag(PART:"button", 0.0, 0.0);
1133                   if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
1134                       (get_int(is_rtl) == 0) && (dx > 0.5)) {
1135                      if (!get_int(check_on)) {
1136                        emit("elm,action,check,on", "");
1137                        emit("elm,action,touch,sound", "");
1138                      }
1139                   }
1140                   else {
1141                      if (get_int(check_on)) {
1142                        emit("elm,action,check,off", "");
1143                        emit("elm,action,touch,sound", "");
1144                      }
1145                   }
1146                   set_int(was_drag, get_int(is_drag));
1147                   set_int(is_drag, 0);
1148                   emit("elm,action,check,drag,stop", "");
1149                }
1150             }
1151          }
1152          program { name: "check_on";
1153             signal: "elm,state,check,on";
1154             source: "elm";
1155             script {
1156                new Float:drag;
1157                if (get_int(is_rtl) == 0) {
1158                   drag = 100.0;
1159                }
1160                else {
1161                   drag = 0.0;
1162                }
1163                set_drag(PART:"button", drag, 0.0);
1164                set_state(PART:"bg_image", "visible", 0.0);
1165                set_int(check_on, 1);
1166             }
1167          }
1168          program { name: "check_off";
1169             signal: "elm,state,check,off";
1170             source: "elm";
1171             script {
1172                new Float:drag;
1173                if (get_int(is_rtl) == 0) {
1174                   drag = 0.0;
1175                }
1176                else {
1177                   drag = 100.0;
1178                }
1179                set_drag(PART:"button", drag, 0.0);
1180                set_state(PART:"bg_image", "default", 0.0);
1181                set_int(check_on, 0);
1182             }
1183          }
1184          program { name: "text_show";
1185             signal: "elm,state,text,visible";
1186             source: "elm";
1187             action:  STATE_SET "visible" 0.0;
1188             target: "elm.text";
1189          }
1190          program { name: "text_hide";
1191             signal: "elm,state,text,hidden";
1192             source: "elm";
1193             action:  STATE_SET "default" 0.0;
1194             target: "elm.text";
1195          }
1196          program { name: "icon_show";
1197             signal: "elm,state,icon,visible";
1198             source: "elm";
1199             action:  STATE_SET "visible" 0.0;
1200             target: "elm.swallow.content";
1201          }
1202          program { name: "icon_hide";
1203             signal: "elm,state,icon,hidden";
1204             source: "elm";
1205             action: STATE_SET "default" 0.0;
1206             target: "elm.swallow.content";
1207          }
1208          program { name: "disable";
1209             signal: "elm,state,disabled";
1210             source: "elm";
1211             action: STATE_SET "disabled" 0.0;
1212             target: "elm.offtext";
1213             target: "elm.ontext";
1214             target: "onrect";
1215             target: "offrect";
1216             target: "disabler";
1217             after: "disable_text";
1218          }
1219          program { name: "disable_text";
1220             script {
1221                new st[31];
1222                new Float:vl;
1223                get_state(PART:"elm.text", st, 30, vl);
1224                if (!strcmp(st, "visible"))
1225                  set_state(PART:"elm.text", "disabled_visible", 0.0);
1226                else
1227                  set_state(PART:"elm.text", "disabled", 0.0);
1228                get_state(PART:"bg_image", st, 30, vl);
1229                if (!strcmp(st, "visible"))
1230                  set_state(PART:"bg_image", "visible_disable", 0.0);
1231                else
1232                  set_state(PART:"bg_image", "off_disable", 0.0);
1233                get_state(PART:"elm.swallow.content", st, 30, vl);
1234                if (!strcmp(st, "visible"))
1235                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
1236                else
1237                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
1238                set_state(PART:"button", "disabled", 0.0);
1239             }
1240          }
1241          program { name: "enable";
1242             signal: "elm,state,enabled";
1243             source: "elm";
1244             action: STATE_SET "default" 0.0;
1245             target: "disabler";
1246             target: "onrect";
1247             target: "offrect";
1248             after: "enable_text";
1249          }
1250          program { name: "enable_text";
1251             script {
1252                new st[31];
1253                new Float:vl;
1254                get_state(PART:"elm.text", st, 30, vl);
1255                if (!strcmp(st, "disabled_visible"))
1256                  set_state(PART:"elm.text", "visible", 0.0);
1257                else
1258                  set_state(PART:"elm.text", "default", 0.0);
1259                get_state(PART:"bg_image", st, 30, vl);
1260                if (!strcmp(st, "visible_disable"))
1261                  set_state(PART:"bg_image", "visible", 0.0);
1262                else
1263                  set_state(PART:"bg_image", "default", 0.0);
1264                get_state(PART:"elm.swallow.content", st, 30, vl);
1265                if (!strcmp(st, "visible"))
1266                  set_state(PART:"elm.swallow.content", "visible", 0.0);
1267                else
1268                  set_state(PART:"elm.swallow.content", "default", 0.0);
1269                set_state(PART:"button", "default", 0.0);
1270             }
1271          }
1272          program { name: "to_rtl";
1273             signal: "edje,state,rtl";
1274             source: "edje";
1275             script {
1276                set_int(is_rtl, 1);
1277             }
1278          }
1279          program { name: "to_ltr";
1280             signal: "edje,state,ltr";
1281             source: "edje";
1282             script {
1283                set_int(is_rtl, 0);
1284             }
1285          }
1286       }
1287    }
1288 ///////////////////////////////////////////////////////////////////////////////////////
1289
1290 #define CHECK_STYLE_FAVORITE(style_name, on_image, on_dim_image, off_image, off_dim_image, min_width, min_height) \
1291    group { name: "elm/check/base/"style_name; \
1292       images { \
1293          image: on_image COMP; \
1294          image: on_dim_image COMP; \
1295          image: off_image COMP; \
1296          image: off_dim_image COMP; \
1297       } \
1298       parts { \
1299          part { name: "back_bg"; \
1300             type: RECT; \
1301             scale: 1; \
1302             description { state: "default" 0.0; \
1303                visible: 0; \
1304                rel2.relative: 0.0 1.0; \
1305                align: 0 0.5; \
1306                min: min_width min_height; \
1307                fixed: 1 0; \
1308             } \
1309          } \
1310          part { name: "bg"; \
1311             type: RECT; \
1312             clip_to: "disclip"; \
1313             scale: 1; \
1314             description { state: "default" 0.0; \
1315                visible: 0; \
1316                rel1.to: "back_bg"; \
1317                rel2.to: "back_bg"; \
1318                min: min_width min_height; \
1319                max: min_width min_height; \
1320                fixed: 1 1; \
1321             } \
1322          } \
1323          part { name: "check"; \
1324             mouse_events: 0; \
1325             clip_to: "disclip"; \
1326             scale: 1; \
1327             description { state: "default" 0.0; \
1328                rel1.to: "bg"; \
1329                rel2.to: "bg"; \
1330                image.normal: off_image; \
1331             } \
1332             description { state: "visible" 0.0; \
1333                inherit: "default" 0.0; \
1334                image.normal: on_image; \
1335             } \
1336             description { state: "disabled" 0.0; \
1337                inherit: "default" 0.0; \
1338                image.normal: off_dim_image; \
1339             } \
1340             description { state: "disabled_visible" 0.0; \
1341                inherit: "default" 0.0; \
1342                image.normal: on_dim_image; \
1343             } \
1344          } \
1345          part { name: "elm.swallow.content"; \
1346             type: SWALLOW; \
1347             clip_to: "disclip"; \
1348             description { state: "default" 0.0; \
1349                fixed: 1 0; \
1350                visible: 0; \
1351                align: 0.0 0.5; \
1352                rel1 { \
1353                   to_x: "bg"; \
1354                   relative: 1.0 0.0; \
1355                   offset: 1 1; \
1356                } \
1357                rel2 { \
1358                   to_x: "bg"; \
1359                   relative: 1.0 1.0; \
1360                   offset: 2 -2; \
1361                } \
1362             } \
1363             description { state: "visible" 0.0; \
1364                inherit: "default" 0.0; \
1365                fixed: 1 1; \
1366                visible: 1; \
1367                aspect: 1.0 1.0; \
1368                aspect_preference: VERTICAL; \
1369             } \
1370             description { state: "disabled" 0.0; \
1371                inherit: "default" 0.0; \
1372             } \
1373             description { state: "disabled_visible" 0.0; \
1374                inherit: "default" 0.0; \
1375                fixed: 1 1; \
1376                visible: 1; \
1377                aspect: 1.0 1.0; \
1378             } \
1379          } \
1380          part { name: "elm.text"; \
1381             type: TEXTBLOCK; \
1382             clip_to: "disclip"; \
1383             mouse_events: 0; \
1384             scale: 1; \
1385             description { state: "default" 0.0; \
1386                visible: 0; \
1387                fixed: 0 1; \
1388                rel1 { \
1389                   relative: 1.0 0.5; \
1390                   offset: 1 1; \
1391                   to_x: "elm.swallow.content"; \
1392                } \
1393                rel2 { \
1394                   relative: 1.0 0.5; \
1395                   offset: -2 -2; \
1396                } \
1397                align: 0.0 0.5; \
1398                text { \
1399                  style: "check_label_textblock_style"; \
1400                  min: 0 0; \
1401                } \
1402                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
1403             } \
1404             description { state: "visible" 0.0; \
1405                inherit: "default" 0.0; \
1406                visible: 1; \
1407                text.min: 1 1; \
1408             } \
1409             description { state: "disabled" 0.0; \
1410                inherit: "default" 0.0; \
1411             } \
1412             description { state: "disabled_visible" 0.0; \
1413                inherit: "default" 0.0; \
1414                visible: 1; \
1415                text.min: 1 1; \
1416                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
1417             } \
1418          } \
1419          part { name: "disclip"; \
1420             type: RECT; \
1421             mouse_events: 0; \
1422             description { state: "default" 0.0; \
1423                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
1424             } \
1425          } \
1426          part { name: "events"; \
1427             type: RECT; \
1428             ignore_flags: ON_HOLD; \
1429             description { state: "default" 0.0; \
1430                color: 0 0 0 0; \
1431             } \
1432          } \
1433          part { name: "disabler"; \
1434             type: RECT; \
1435             description { state: "default" 0.0; \
1436                color: 0 0 0 0; \
1437                visible: 0; \
1438             } \
1439             description { state: "disabled" 0.0; \
1440                inherit: "default" 0.0; \
1441                visible: 1; \
1442             } \
1443          } \
1444       } \
1445       programs { \
1446          program { name: "click"; \
1447             signal: "mouse,clicked,1"; \
1448             source: "events"; \
1449             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
1450             after: "touch_sound"; \
1451          } \
1452          program { name: "touch_sound"; \
1453             action: PLAY_SAMPLE "touch_sound" 1.0; \
1454          } \
1455          program { name: "check_on"; \
1456             signal: "elm,state,check,on"; \
1457             source: "elm"; \
1458             action: STATE_SET "visible" 0.0; \
1459             target: "check"; \
1460          } \
1461          program { name: "check_off"; \
1462             signal: "elm,state,check,off"; \
1463             source: "elm"; \
1464             action: STATE_SET "default" 0.0; \
1465             target: "check"; \
1466          } \
1467          program { name: "text_show"; \
1468             signal: "elm,state,text,visible"; \
1469             source: "elm"; \
1470             action: STATE_SET "visible" 0.0; \
1471             target: "elm.text"; \
1472          } \
1473          program { name: "text_hide"; \
1474             signal: "elm,state,text,hidden"; \
1475             source: "elm"; \
1476             action: STATE_SET "default" 0.0; \
1477             target: "elm.text"; \
1478          } \
1479          program { name: "icon_show"; \
1480             signal: "elm,state,icon,visible"; \
1481             source: "elm"; \
1482             action: STATE_SET "visible" 0.0; \
1483             target: "elm.swallow.content"; \
1484          } \
1485          program { name: "icon_hide"; \
1486             signal: "elm,state,icon,hidden"; \
1487             source: "elm"; \
1488             action: STATE_SET "default" 0.0; \
1489             target: "elm.swallow.content"; \
1490          } \
1491          program { name: "disable"; \
1492             signal: "elm,state,disabled"; \
1493             source: "elm"; \
1494             action: STATE_SET "disabled" 0.0; \
1495             target: "disabler"; \
1496             after: "disable_text"; \
1497          } \
1498          program { name: "disable_text"; \
1499             script { \
1500                new st[31]; \
1501                new Float:vl; \
1502                get_state(PART:"elm.text", st, 30, vl); \
1503                if (!strcmp(st, "visible")) \
1504                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
1505                else \
1506                  set_state(PART:"elm.text", "disabled", 0.0); \
1507                get_state(PART:"elm.swallow.content", st, 30, vl); \
1508                if (!strcmp(st, "visible")) \
1509                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
1510                else \
1511                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
1512                get_state(PART:"check", st, 30, vl); \
1513                if (!strcmp(st, "visible")) \
1514                  set_state(PART:"check", "disabled_visible", 0.0); \
1515                else \
1516                  set_state(PART:"check", "disabled", 0.0); \
1517             } \
1518          } \
1519          program { name: "enable"; \
1520             signal: "elm,state,enabled"; \
1521             source: "elm"; \
1522             action: STATE_SET "default" 0.0; \
1523             target: "disabler"; \
1524             after: "enable_text"; \
1525          } \
1526          program { name: "enable_text"; \
1527             script { \
1528                new st[31]; \
1529                new Float:vl; \
1530                get_state(PART:"elm.text", st, 30, vl); \
1531                if (!strcmp(st, "disabled_visible")) \
1532                  set_state(PART:"elm.text", "visible", 0.0); \
1533                else \
1534                  set_state(PART:"elm.text", "default", 0.0); \
1535                get_state(PART:"elm.swallow.content", st, 30, vl); \
1536                if (!strcmp(st, "visible")) \
1537                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
1538                else \
1539                  set_state(PART:"elm.swallow.content", "default", 0.0); \
1540                get_state(PART:"check", st, 30, vl); \
1541                if (!strcmp(st, "disabled_visible")) \
1542                  set_state(PART:"check", "visible", 0.0); \
1543                else \
1544                  set_state(PART:"check", "default", 0.0); \
1545             } \
1546          } \
1547       } \
1548    }
1549 ////////////////////////////////////////////////////////////////////////////////
1550 CHECK_STYLE_FAVORITE("favorite", "00_icon_favorite_on_72x72.png", "00_icon_favorite_on_72x72_dim.png", "00_icon_favorite_off_72x72.png", "00_icon_favorite_off_72x72_dim.png", CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
1551 ////////////////////////////////////////////////////////////////////////////////
1552 CHECK_STYLE_FAVORITE("favorite_small", "00_icon_favorite_on_45x45.png", "00_icon_favorite_on_45x45.png", "00_icon_favorite_off_45x45.png", "00_icon_favorite_off_45x45.png", CHECK_STYLE_FAVORITE_SMALL_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_SMALL_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
1553 ////////////////////////////////////////////////////////////////////////////////
1554 CHECK_STYLE_FAVORITE("favorite/extended", "00_icon_favorite_on_72x72.png", "00_icon_favorite_on_72x72_dim.png", "00_icon_favorite_off_72x72.png", "00_icon_favorite_off_72x72_dim.png", CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC)
1555 ////////////////////////////////////////////////////////////////////////////////
1556
1557    group { name: "elm/check/base/grid";
1558       images.image: "00_check_bg.png" COMP;
1559       images.image: "00_check_dim_bg.png" COMP;
1560       images.image: "00_check_dim.png" COMP;
1561       images.image: "00_check_Activated.png" COMP;
1562       script {
1563          public check_state = CHECK_STATE_DEFAULT;
1564          public check_visible = CHECK_HIDE;
1565       }
1566       parts {
1567          part { name: "bg";
1568             type: RECT;
1569             scale: 1;
1570             description { state: "default" 0.0;
1571                visible: 0;
1572             }
1573          }
1574          part { name: "top_left_padding";
1575             type: RECT;
1576             mouse_events: 0;
1577             scale: 1;
1578             description { state: "default" 0.0;
1579                visible: 0;
1580                min: GENGRID_ITEM_CHECK_TOP_RIGHT_PADDING_INC;
1581                align: 0.0 0.0;
1582                fixed: 1 1;
1583                rel1 {
1584                   relative: 0.0 0.0;
1585                   to: "bg";
1586                }
1587                rel2 {
1588                   relative: 0.0 0.0;
1589                   to: "bg";
1590                }
1591             }
1592          }
1593          part { name: "bg2";
1594             mouse_events: 0;
1595             scale: 1;
1596             description { state: "default" 0.0;
1597                min: GENGRID_EDIT_MODE_CHECK_SIZE_INC;
1598                align: 0.0 0.0;
1599                fixed: 1 1;
1600                rel1 {
1601                   relative: 1.0 1.0;
1602                   to: "top_left_padding";
1603                }
1604                rel2 {
1605                   relative: 1.0 1.0;
1606                   to: "top_left_padding";
1607                }
1608                image.normal: "00_check_bg.png";
1609             }
1610             description { state: "visible" 0.0;
1611                inherit: "default" 0.0;
1612             }
1613             description { state: "disabled" 0.0;
1614                inherit: "default" 0.0;
1615                image.normal: "00_check_dim_bg.png";
1616             }
1617          }
1618          part { name: "check";
1619             mouse_events: 0;
1620             clip_to: "sequence_clip";
1621             scale: 1;
1622             description { state: "default" 0.0;
1623                visible: 0;
1624                rel1.to: "bg2";
1625                rel2.to: "bg2";
1626                image.normal: "00_check_Activated.png";
1627                color: 255 255 255 0;
1628             }
1629             description { state: "visible" 0.0;
1630                inherit: "default" 0.0;
1631                visible: 1;
1632                color: 255 255 255 255;
1633             }
1634             description { state: "pressed" 0.0;
1635                inherit: "visible" 0.0;
1636             }
1637             description { state: "disabled_visible" 0.0;
1638                inherit: "default" 0.0;
1639                visible: 1;
1640                image.normal: "00_check_dim.png";
1641             }
1642          }
1643          part { name: "sequence_clip";
1644             type: RECT;
1645             mouse_events: 0;
1646             description { state: "default" 0.0;
1647                rel1.to: "bg2";
1648                rel2.to: "bg2";
1649                rel2.relative: 0.0 1.0;
1650                color: 255 255 255 255;
1651             }
1652             description { state: "visible" 0.0;
1653                inherit: "default" 0.0;
1654                rel2.relative: 1.0 1.0;
1655             }
1656          }
1657          part { name: "elm.swallow.content";
1658             type: SWALLOW;
1659             description {
1660                state: "default" 0.0;
1661                fixed: 1 0;
1662                visible: 0;
1663                color: 255 255 255 255;
1664                align: 0.0 0.5;
1665                rel1 {
1666                   to_x: "bg2";
1667                   relative: 1.0 0.0;
1668                   offset: 1 1;
1669                }
1670                rel2 {
1671                   to_x: "bg2";
1672                   relative: 1.0 1.0;
1673                   offset: 2 -2;
1674                }
1675             }
1676             description { state: "visible" 0.0;
1677                inherit: "default" 0.0;
1678                fixed: 1 1;
1679                visible: 1;
1680                aspect: 1.0 1.0;
1681                aspect_preference: VERTICAL;
1682             }
1683             description { state: "disabled" 0.0;
1684                inherit: "default" 0.0;
1685                color: 128 128 128 128;
1686             }
1687             description { state: "disabled_visible" 0.0;
1688                inherit: "default" 0.0;
1689                color: 128 128 128 128;
1690                fixed: 1 1;
1691                visible: 1;
1692                aspect: 1.0 1.0;
1693             }
1694          }
1695          part { name: "elm.text";
1696             type: TEXTBLOCK;
1697             mouse_events: 0;
1698             scale: 1;
1699             description { state: "default" 0.0;
1700                visible: 0;
1701                fixed: 0 1;
1702                rel1 {
1703                   relative: 1.0 0.5;
1704                   offset: 1 1;
1705                   to_x: "elm.swallow.content";
1706                }
1707                rel2 {
1708                   relative: 1.0 0.5;
1709                   offset: -2 -2;
1710                }
1711                color: 255 255 255 255;
1712                align: 0.0 0.5;
1713                text {
1714                   style: "check_label_textblock_style";
1715                   min: 0 0;
1716                }
1717                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
1718             }
1719             description { state: "visible" 0.0;
1720                inherit: "default" 0.0;
1721                visible: 1;
1722                text.min: 1 1;
1723             }
1724             description { state: "disabled" 0.0;
1725                inherit: "default" 0.0;
1726             }
1727             description { state: "disabled_visible" 0.0;
1728                inherit: "default" 0.0;
1729                visible: 1;
1730                text.min: 1 1;
1731                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
1732             }
1733          }
1734          part { name: "events";
1735             type: RECT;
1736             ignore_flags: ON_HOLD;
1737             description { state: "default" 0.0;
1738                color: 0 0 0 0;
1739             }
1740          }
1741          part { name: "disabler";
1742             type: RECT;
1743             description { state: "default" 0.0;
1744                color: 0 0 0 0;
1745                visible: 0;
1746             }
1747             description { state: "disabled" 0.0;
1748                inherit: "default" 0.0;
1749                visible: 1;
1750             }
1751          }
1752       }
1753       programs {
1754          program { name: "show";
1755             signal: "show";
1756             script {
1757                set_int(check_visible, CHECK_SHOW);
1758             }
1759          }
1760          program { name: "hide";
1761             signal: "hide";
1762             script {
1763                set_int(check_visible, CHECK_HIDE);
1764             }
1765          }
1766          program { name: "click";
1767             signal: "mouse,clicked,1";
1768             source: "events";
1769             action: SIGNAL_EMIT "elm,action,check,toggle" "";
1770             after: "bg_normal";
1771          }
1772          program { name: "bg_normal";
1773             script {
1774                set_state(PART:"bg2", "default", 0.0);
1775             }
1776          }
1777          program { name: "pressed";
1778             signal: "mouse,down,1";
1779             source: "events";
1780             script {
1781                new st[31];
1782                new Float:vl;
1783                get_state(PART:"check", st, 30, vl);
1784                if (!strcmp(st, "visible"))
1785                  {
1786                     set_state(PART:"check", "pressed", 0.0);
1787                     set_state(PART:"bg2", "visible", 0.0);
1788                  }
1789             }
1790          }
1791          program { name: "mouse,out";
1792             signal: "mouse,out";
1793             source: "events";
1794             script {
1795                if (get_int(check_state) == CHECK_STATE_VISIBLE)
1796                  {
1797                     set_state(PART:"check", "visible", 0.0);
1798                     set_state(PART:"sequence_clip", "visible", 0.0);
1799                     set_state(PART:"bg2", "visible", 0.0);
1800                  }
1801                else
1802                  {
1803                     set_state(PART:"check", "default", 0.0);
1804                     set_state(PART:"sequence_clip", "default", 0.0);
1805                     set_state(PART:"bg2", "default", 0.0);
1806                  }
1807             }
1808          }
1809          program { name: "check_on";
1810             signal: "elm,state,check,on";
1811             source: "elm";
1812             script {
1813                set_int(check_state, CHECK_STATE_VISIBLE);
1814                if (get_int(check_visible) == CHECK_SHOW)
1815                  {
1816                     run_program(PROGRAM:"check_show_effect");
1817                     run_program(PROGRAM:"check_draw_effect");
1818                  }
1819                else
1820                  {
1821                     set_state(PART:"check", "visible", 0.0);
1822                     set_state(PART:"sequence_clip", "visible", 0.0);
1823                  }
1824                set_state(PART:"bg2", "visible", 0.0);
1825             }
1826          }
1827          program { name: "check_off";
1828             signal: "elm,state,check,off";
1829             source: "elm";
1830             action: STATE_SET "default" 0.0;
1831             target: "check";
1832             script {
1833                if (get_int(check_state) == CHECK_STATE_VISIBLE)
1834                  {
1835                     set_int(check_state, CHECK_STATE_DEFAULT);
1836                     set_state(PART:"check", "default", 0.0);
1837                     set_state(PART:"sequence_clip", "default", 0.0);
1838                  }
1839                set_state(PART:"bg2", "default", 0.0);
1840             }
1841          }
1842          program { name: "check_show_effect";
1843             action: STATE_SET "visible" 0.0;
1844             transition: LINEAR 0.233;
1845             target: "check";
1846          }
1847          program { name: "check_draw_effect";
1848             action: STATE_SET "visible" 0.0;
1849             transition: LINEAR 0.267;
1850             target: "sequence_clip";
1851          }
1852          program { name: "text_show";
1853             signal: "elm,state,text,visible";
1854             source: "elm";
1855             action: STATE_SET "visible" 0.0;
1856             target: "elm.text";
1857          }
1858          program { name: "text_hide";
1859             signal: "elm,state,text,hidden";
1860             source: "elm";
1861             action: STATE_SET "default" 0.0;
1862             target: "elm.text";
1863          }
1864          program { name: "icon_show";
1865             signal: "elm,state,icon,visible";
1866             source: "elm";
1867             action: STATE_SET "visible" 0.0;
1868             target: "elm.swallow.content";
1869          }
1870          program { name: "icon_hide";
1871             signal: "elm,state,icon,hidden";
1872             source: "elm";
1873             action: STATE_SET "default" 0.0;
1874             target: "elm.swallow.content";
1875          }
1876          program { name: "disable";
1877             signal: "elm,state,disabled";
1878             source: "elm";
1879             action: STATE_SET "disabled" 0.0;
1880             target: "disabler";
1881             target: "bg2";
1882             after: "disable_text";
1883          }
1884          program { name: "disable_text";
1885             script {
1886                new st[31];
1887                new Float:vl;
1888                get_state(PART:"elm.text", st, 30, vl);
1889                if (!strcmp(st, "visible"))
1890                  set_state(PART:"elm.text", "disabled_visible", 0.0);
1891                else
1892                  set_state(PART:"elm.text", "disabled", 0.0);
1893                get_state(PART:"elm.swallow.content", st, 30, vl);
1894                if (!strcmp(st, "visible"))
1895                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
1896                else
1897                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
1898                get_state(PART:"check", st, 30, vl);
1899                if (!strcmp(st, "visible"))
1900                  {
1901                     set_state(PART:"check", "disabled_visible", 0.0);
1902                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE);
1903                  }
1904             }
1905          }
1906          program { name: "enable";
1907             signal: "elm,state,enabled";
1908             source: "elm";
1909             action: STATE_SET "default" 0.0;
1910             target: "disabler";
1911             target: "bg2";
1912             after: "enable_text";
1913          }
1914          program { name: "enable_text";
1915             script {
1916                new st[31];
1917                new Float:vl;
1918                get_state(PART:"elm.text", st, 30, vl);
1919                if (!strcmp(st, "disabled_visible"))
1920                  set_state(PART:"elm.text", "visible", 0.0);
1921                else
1922                  set_state(PART:"elm.text", "default", 0.0);
1923                get_state(PART:"elm.swallow.content", st, 30, vl);
1924                if (!strcmp(st, "visible"))
1925                  set_state(PART:"elm.swallow.content", "visible", 0.0);
1926                else
1927                  set_state(PART:"elm.swallow.content", "default", 0.0);
1928                get_state(PART:"check", st, 30, vl);
1929                if (!strcmp(st, "disabled_visible"))
1930                  {
1931                     set_state(PART:"check", "visible", 0.0);
1932                     set_state(PART:"sequence_clip", "visible", 0.0);
1933                     set_int(check_state, CHECK_STATE_VISIBLE);
1934                  }
1935                else
1936                  set_int(check_state, CHECK_STATE_DEFAULT);
1937             }
1938          }
1939       }
1940    }
1941
1942 #undef CHECK_STATE_DEFAULT
1943 #undef CHECK_STATE_VISIBLE
1944 #undef CHECK_STATE_DISABLED_VISIBLE
1945 #undef CHECK_STATE_DISABLED
1946
1947 #undef CHECK_HIDE
1948 #undef CHECK_SHOW