1448bb6a103e64810852a24e3f7db7195e960548
[framework/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, min_width, min_height) \
1291    group { name: "elm/check/base/"style_name; \
1292       images { \
1293          image: "00_icon_favorite_on_72x72.png" COMP; \
1294          image: "00_icon_favorite_on_72x72_dim.png" COMP; \
1295          image: "00_icon_favorite_off_72x72.png" COMP; \
1296          image: "00_icon_favorite_off_72x72_dim.png" 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: CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC; \
1319                max: CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC; \
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: "00_icon_favorite_off_72x72.png"; \
1331             } \
1332             description { state: "visible" 0.0; \
1333                inherit: "default" 0.0; \
1334                image.normal: "00_icon_favorite_on_72x72.png"; \
1335             } \
1336             description { state: "disabled" 0.0; \
1337                inherit: "default" 0.0; \
1338                image.normal: "00_icon_favorite_off_72x72_dim.png"; \
1339             } \
1340             description { state: "disabled_visible" 0.0; \
1341                inherit: "default" 0.0; \
1342                image.normal: "00_icon_favorite_on_72x72_dim.png"; \
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", CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
1551 ////////////////////////////////////////////////////////////////////////////////
1552 CHECK_STYLE_FAVORITE("favorite/extended", CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC)
1553 ////////////////////////////////////////////////////////////////////////////////
1554
1555    group { name: "elm/check/base/grid";
1556       images.image: "00_check_bg.png" COMP;
1557       images.image: "00_check_dim_bg.png" COMP;
1558       images.image: "00_check_dim.png" COMP;
1559       images.image: "00_check_Activated.png" COMP;
1560       script {
1561          public check_state = CHECK_STATE_DEFAULT;
1562          public check_visible = CHECK_HIDE;
1563       }
1564       parts {
1565          part { name: "bg";
1566             type: RECT;
1567             scale: 1;
1568             description { state: "default" 0.0;
1569                visible: 0;
1570             }
1571          }
1572          part { name: "top_left_padding";
1573             type: RECT;
1574             mouse_events: 0;
1575             scale: 1;
1576             description { state: "default" 0.0;
1577                visible: 0;
1578                min: GENGRID_ITEM_CHECK_TOP_RIGHT_PADDING_INC;
1579                align: 0.0 0.0;
1580                fixed: 1 1;
1581                rel1 {
1582                   relative: 0.0 0.0;
1583                   to: "bg";
1584                }
1585                rel2 {
1586                   relative: 0.0 0.0;
1587                   to: "bg";
1588                }
1589             }
1590          }
1591          part { name: "bg2";
1592             mouse_events: 0;
1593             scale: 1;
1594             description { state: "default" 0.0;
1595                min: GENGRID_EDIT_MODE_CHECK_SIZE_INC;
1596                align: 0.0 0.0;
1597                fixed: 1 1;
1598                rel1 {
1599                   relative: 0.0 1.0;
1600                   to: "top_left_padding";
1601                }
1602                rel2 {
1603                   relative: 0.0 1.0;
1604                   to: "top_left_padding";
1605                }
1606                image.normal: "00_check_bg.png";
1607             }
1608             description { state: "visible" 0.0;
1609                inherit: "default" 0.0;
1610             }
1611             description { state: "disabled" 0.0;
1612                inherit: "default" 0.0;
1613                image.normal: "00_check_dim_bg.png";
1614             }
1615          }
1616          part { name: "check";
1617             mouse_events: 0;
1618             clip_to: "sequence_clip";
1619             scale: 1;
1620             description { state: "default" 0.0;
1621                visible: 0;
1622                rel1.to: "bg2";
1623                rel2.to: "bg2";
1624                image.normal: "00_check_Activated.png";
1625                color: 255 255 255 0;
1626             }
1627             description { state: "visible" 0.0;
1628                inherit: "default" 0.0;
1629                visible: 1;
1630                color: 255 255 255 255;
1631             }
1632             description { state: "pressed" 0.0;
1633                inherit: "visible" 0.0;
1634             }
1635             description { state: "disabled_visible" 0.0;
1636                inherit: "default" 0.0;
1637                visible: 1;
1638                image.normal: "00_check_dim.png";
1639             }
1640          }
1641          part { name: "sequence_clip";
1642             type: RECT;
1643             mouse_events: 0;
1644             description { state: "default" 0.0;
1645                rel1.to: "bg2";
1646                rel2.to: "bg2";
1647                rel2.relative: 0.0 1.0;
1648                color: 255 255 255 255;
1649             }
1650             description { state: "visible" 0.0;
1651                inherit: "default" 0.0;
1652                rel2.relative: 1.0 1.0;
1653             }
1654          }
1655          part { name: "elm.swallow.content";
1656             type: SWALLOW;
1657             description {
1658                state: "default" 0.0;
1659                fixed: 1 0;
1660                visible: 0;
1661                color: 255 255 255 255;
1662                align: 0.0 0.5;
1663                rel1 {
1664                   to_x: "bg2";
1665                   relative: 1.0 0.0;
1666                   offset: 1 1;
1667                }
1668                rel2 {
1669                   to_x: "bg2";
1670                   relative: 1.0 1.0;
1671                   offset: 2 -2;
1672                }
1673             }
1674             description { state: "visible" 0.0;
1675                inherit: "default" 0.0;
1676                fixed: 1 1;
1677                visible: 1;
1678                aspect: 1.0 1.0;
1679                aspect_preference: VERTICAL;
1680             }
1681             description { state: "disabled" 0.0;
1682                inherit: "default" 0.0;
1683                color: 128 128 128 128;
1684             }
1685             description { state: "disabled_visible" 0.0;
1686                inherit: "default" 0.0;
1687                color: 128 128 128 128;
1688                fixed: 1 1;
1689                visible: 1;
1690                aspect: 1.0 1.0;
1691             }
1692          }
1693          part { name: "elm.text";
1694             type: TEXTBLOCK;
1695             mouse_events: 0;
1696             scale: 1;
1697             description { state: "default" 0.0;
1698                visible: 0;
1699                fixed: 0 1;
1700                rel1 {
1701                   relative: 1.0 0.5;
1702                   offset: 1 1;
1703                   to_x: "elm.swallow.content";
1704                }
1705                rel2 {
1706                   relative: 1.0 0.5;
1707                   offset: -2 -2;
1708                }
1709                color: 255 255 255 255;
1710                align: 0.0 0.5;
1711                text {
1712                   style: "check_label_textblock_style";
1713                   min: 0 0;
1714                }
1715                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
1716             }
1717             description { state: "visible" 0.0;
1718                inherit: "default" 0.0;
1719                visible: 1;
1720                text.min: 1 1;
1721             }
1722             description { state: "disabled" 0.0;
1723                inherit: "default" 0.0;
1724             }
1725             description { state: "disabled_visible" 0.0;
1726                inherit: "default" 0.0;
1727                visible: 1;
1728                text.min: 1 1;
1729                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
1730             }
1731          }
1732          part { name: "events";
1733             type: RECT;
1734             ignore_flags: ON_HOLD;
1735             description { state: "default" 0.0;
1736                color: 0 0 0 0;
1737             }
1738          }
1739          part { name: "disabler";
1740             type: RECT;
1741             description { state: "default" 0.0;
1742                color: 0 0 0 0;
1743                visible: 0;
1744             }
1745             description { state: "disabled" 0.0;
1746                inherit: "default" 0.0;
1747                visible: 1;
1748             }
1749          }
1750       }
1751       programs {
1752          program { name: "show";
1753             signal: "show";
1754             script {
1755                set_int(check_visible, CHECK_SHOW);
1756             }
1757          }
1758          program { name: "hide";
1759             signal: "hide";
1760             script {
1761                set_int(check_visible, CHECK_HIDE);
1762             }
1763          }
1764          program { name: "click";
1765             signal: "mouse,clicked,1";
1766             source: "events";
1767             action: SIGNAL_EMIT "elm,action,check,toggle" "";
1768             after: "bg_normal";
1769          }
1770          program { name: "bg_normal";
1771             script {
1772                set_state(PART:"bg2", "default", 0.0);
1773             }
1774          }
1775          program { name: "pressed";
1776             signal: "mouse,down,1";
1777             source: "events";
1778             script {
1779                new st[31];
1780                new Float:vl;
1781                get_state(PART:"check", st, 30, vl);
1782                if (!strcmp(st, "visible"))
1783                  {
1784                     set_state(PART:"check", "pressed", 0.0);
1785                     set_state(PART:"bg2", "visible", 0.0);
1786                  }
1787             }
1788          }
1789          program { name: "mouse,out";
1790             signal: "mouse,out";
1791             source: "events";
1792             script {
1793                if (get_int(check_state) == CHECK_STATE_VISIBLE)
1794                  {
1795                     set_state(PART:"check", "visible", 0.0);
1796                     set_state(PART:"sequence_clip", "visible", 0.0);
1797                     set_state(PART:"bg2", "visible", 0.0);
1798                  }
1799                else
1800                  {
1801                     set_state(PART:"check", "default", 0.0);
1802                     set_state(PART:"sequence_clip", "default", 0.0);
1803                     set_state(PART:"bg2", "default", 0.0);
1804                  }
1805             }
1806          }
1807          program { name: "check_on";
1808             signal: "elm,state,check,on";
1809             source: "elm";
1810             script {
1811                set_int(check_state, CHECK_STATE_VISIBLE);
1812                if (get_int(check_visible) == CHECK_SHOW)
1813                  {
1814                     run_program(PROGRAM:"check_show_effect");
1815                     run_program(PROGRAM:"check_draw_effect");
1816                  }
1817                else
1818                  {
1819                     set_state(PART:"check", "visible", 0.0);
1820                     set_state(PART:"sequence_clip", "visible", 0.0);
1821                  }
1822                set_state(PART:"bg2", "visible", 0.0);
1823             }
1824          }
1825          program { name: "check_off";
1826             signal: "elm,state,check,off";
1827             source: "elm";
1828             action: STATE_SET "default" 0.0;
1829             target: "check";
1830             script {
1831                if (get_int(check_state) == CHECK_STATE_VISIBLE)
1832                  {
1833                     set_int(check_state, CHECK_STATE_DEFAULT);
1834                     set_state(PART:"check", "default", 0.0);
1835                     set_state(PART:"sequence_clip", "default", 0.0);
1836                  }
1837                set_state(PART:"bg2", "default", 0.0);
1838             }
1839          }
1840          program { name: "check_show_effect";
1841             action: STATE_SET "visible" 0.0;
1842             transition: LINEAR 0.233;
1843             target: "check";
1844          }
1845          program { name: "check_draw_effect";
1846             action: STATE_SET "visible" 0.0;
1847             transition: LINEAR 0.267;
1848             target: "sequence_clip";
1849          }
1850          program { name: "text_show";
1851             signal: "elm,state,text,visible";
1852             source: "elm";
1853             action: STATE_SET "visible" 0.0;
1854             target: "elm.text";
1855          }
1856          program { name: "text_hide";
1857             signal: "elm,state,text,hidden";
1858             source: "elm";
1859             action: STATE_SET "default" 0.0;
1860             target: "elm.text";
1861          }
1862          program { name: "icon_show";
1863             signal: "elm,state,icon,visible";
1864             source: "elm";
1865             action: STATE_SET "visible" 0.0;
1866             target: "elm.swallow.content";
1867          }
1868          program { name: "icon_hide";
1869             signal: "elm,state,icon,hidden";
1870             source: "elm";
1871             action: STATE_SET "default" 0.0;
1872             target: "elm.swallow.content";
1873          }
1874          program { name: "disable";
1875             signal: "elm,state,disabled";
1876             source: "elm";
1877             action: STATE_SET "disabled" 0.0;
1878             target: "disabler";
1879             target: "bg2";
1880             after: "disable_text";
1881          }
1882          program { name: "disable_text";
1883             script {
1884                new st[31];
1885                new Float:vl;
1886                get_state(PART:"elm.text", st, 30, vl);
1887                if (!strcmp(st, "visible"))
1888                  set_state(PART:"elm.text", "disabled_visible", 0.0);
1889                else
1890                  set_state(PART:"elm.text", "disabled", 0.0);
1891                get_state(PART:"elm.swallow.content", st, 30, vl);
1892                if (!strcmp(st, "visible"))
1893                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
1894                else
1895                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
1896                get_state(PART:"check", st, 30, vl);
1897                if (!strcmp(st, "visible"))
1898                  {
1899                     set_state(PART:"check", "disabled_visible", 0.0);
1900                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE);
1901                  }
1902             }
1903          }
1904          program { name: "enable";
1905             signal: "elm,state,enabled";
1906             source: "elm";
1907             action: STATE_SET "default" 0.0;
1908             target: "disabler";
1909             target: "bg2";
1910             after: "enable_text";
1911          }
1912          program { name: "enable_text";
1913             script {
1914                new st[31];
1915                new Float:vl;
1916                get_state(PART:"elm.text", st, 30, vl);
1917                if (!strcmp(st, "disabled_visible"))
1918                  set_state(PART:"elm.text", "visible", 0.0);
1919                else
1920                  set_state(PART:"elm.text", "default", 0.0);
1921                get_state(PART:"elm.swallow.content", st, 30, vl);
1922                if (!strcmp(st, "visible"))
1923                  set_state(PART:"elm.swallow.content", "visible", 0.0);
1924                else
1925                  set_state(PART:"elm.swallow.content", "default", 0.0);
1926                get_state(PART:"check", st, 30, vl);
1927                if (!strcmp(st, "disabled_visible"))
1928                  {
1929                     set_state(PART:"check", "visible", 0.0);
1930                     set_state(PART:"sequence_clip", "visible", 0.0);
1931                     set_int(check_state, CHECK_STATE_VISIBLE);
1932                  }
1933                else
1934                  set_int(check_state, CHECK_STATE_DEFAULT);
1935             }
1936          }
1937       }
1938    }
1939
1940 /////////////////////////////////////////////////////////////////////////////
1941 #if 0
1942    group { name: "elm/check/base/delete";
1943       images {
1944          image: "00_button_minus.png" COMP;
1945          image: "00_button_minus_press.png" COMP;
1946          image: "00_button_edit_Delete.png" COMP;
1947          image: "00_button_edit_Delete_press.png" COMP;
1948          image: "00_button_edit_dim.png" COMP;
1949          image: "00_button_edit_focus.png" COMP;
1950       }
1951       script {
1952          public button_state = 0; //0:enabled, 1: disabled
1953       }
1954       parts {
1955          part { name: "bg1";
1956             scale: 1;
1957             description { state: "default" 0.0;
1958                align: 1.0 0.5;
1959                rel1.to: "bg2";
1960                rel2.to: "bg2";
1961                image {
1962                   normal: "00_button_edit_Delete.png";
1963                   border: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC;
1964                   border_scale: 1;
1965                }
1966             }
1967             description { state: "clicked" 0.0;
1968                inherit: "default" 0.0;
1969                image.normal: "00_button_edit_Delete_press.png";
1970             }
1971             description { state: "intermediate" 0.0;
1972                inherit: "default" 0.0;
1973                visible: 0;
1974             }
1975             description { state: "on" 0.0;
1976                inherit: "default" 0.0;
1977                visible: 0;
1978             }
1979             description { state: "disabled" 0.0;
1980                inherit: "default" 0.0;
1981                image.normal: "00_button_edit_dim.png";
1982             }
1983             description { state: "focused" 0.0;
1984                inherit: "default" 0.0;
1985                image.normal: "00_button_edit_focus.png";
1986             }
1987          }
1988          part { name: "bg2";
1989             scale: 1;
1990             description { state: "default" 0.0;
1991                align: 1.0 0.5;
1992                min: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
1993                max: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
1994                rel1.relative: 1.0 0.0;
1995                fixed: 1 0;
1996                image.normal: "00_button_minus.png";
1997             }
1998             description { state: "clicked" 0.0;
1999                inherit: "default" 0.0;
2000                image.normal: "00_button_minus_press.png";
2001             }
2002             description { state: "intermediate" 0.0;
2003                inherit: "default" 0.0;
2004                visible: 0;
2005             }
2006             description { state: "on" 0.0;
2007                inherit: "default" 0.0;
2008                visible: 0;
2009             }
2010             description { state: "disabled" 0.0;
2011                inherit: "default" 0.0;
2012                image.normal: "00_button_minus.png";
2013             }
2014          }
2015          part { name: "clipper";
2016             type: RECT;
2017             mouse_events: 0;
2018             scale: 1;
2019             description { state: "default" 0.0;
2020                align: 1.0 0.5;
2021                min: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2022                max: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2023                color: 255 255 255 255;
2024             }
2025             description { state: "on" 0.0;
2026                align: 1.0 0.5;
2027                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2028                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2029                color: 255 255 255 255;
2030             }
2031          }
2032          part { name: "bg_expand";
2033             mouse_events: 0;
2034             scale: 1;
2035             clip_to: "clipper";
2036             description { state: "default" 0.0;
2037                align: 0.0 0.5;
2038                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2039                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2040                image {
2041                   normal: "00_button_edit_Delete.png";
2042                   border: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC;
2043                   border_scale: 1;
2044                }
2045                rel1 {
2046                   relative: 1 0; 
2047                   to_x: "bg2"; 
2048                }
2049                rel2.to_x: "bg2";
2050                fixed: 1 0;
2051             }
2052             description { state: "clicked" 0.0;
2053                inherit: "default" 0.0;
2054                align: 1.0 0.5;
2055                image.normal: "00_button_edit_Delete_press.png";
2056             }
2057             description { state: "intermediate" 0.0;
2058                inherit: "default" 0.0;
2059                rel1 {
2060                   relative: 0 0;
2061                   to_x: "bg2";
2062                }
2063                rel2 {
2064                   relative: 0 1;
2065                   to_x: "bg2";
2066                }
2067             }
2068             description { state: "on" 0.0;
2069                inherit: "default" 0.0;
2070                align: 1.0 0.5;
2071             }
2072          }
2073          part { name: "check";
2074             type: TEXT;
2075             mouse_events: 0;
2076             scale: 1;
2077             description { state: "default" 0.0;
2078                visible: 0;
2079                align: 1.0 0.5;
2080                min: 0 0;
2081                text {
2082                   font: "Tizen:style=Medium";
2083                   size: CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC;
2084                   min: 0 0;
2085                   text: "";
2086                   text_class: "tizen";
2087                }
2088             }
2089             description { state: "visible" 0.0;
2090                align: 1.0 0.5;
2091                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2092                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2093                color: CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC;
2094                text {
2095                   font: "Tizen:style=Medium";
2096                   size: CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC;
2097                   min: 1 0;
2098                   text: "Delete";
2099                   text_class: "tizen";
2100                }
2101             }
2102             description { state: "visible_pressed" 0.0;
2103                inherit: "visible" 0.0;
2104                color: CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC;
2105             }
2106          }
2107          part { name: "elm.swallow.content";
2108             type: SWALLOW;
2109             description { state: "default" 0.0;
2110                fixed: 1 0;
2111                visible: 0;
2112                color: 255 255 255 255;
2113                align: 0.0 0.5;
2114                rel1 {
2115                   to_x: "bg2";
2116                   relative: 1.0 0.0;
2117                   offset: 1 1;
2118                }
2119                rel2 {
2120                   to_x: "bg2";
2121                   relative: 1.0 1.0;
2122                   offset: 2 -2;
2123                }
2124             }
2125             description { state: "visible" 0.0;
2126                inherit: "default" 0.0;
2127                fixed: 1 1;
2128                visible: 1;
2129                aspect: 1.0 1.0;
2130                aspect_preference: VERTICAL;
2131             }
2132             description { state: "disabled" 0.0;
2133                inherit: "default" 0.0;
2134                color: 128 128 128 128;
2135             }
2136             description { state: "disabled_visible" 0.0;
2137                inherit: "default" 0.0;
2138                color: 128 128 128 128;
2139                fixed: 1 1;
2140                visible: 1;
2141                aspect: 1.0 1.0;
2142             }
2143          }
2144          part { name: "elm.text";
2145             type: TEXTBLOCK;
2146             mouse_events: 0;
2147             scale: 1;
2148             description { state: "default" 0.0;
2149                visible: 0;
2150                fixed: 1 1;
2151                rel1 {
2152                   relative: 1.0 0.5;
2153                   offset: 1 1;
2154                   to_x: "elm.swallow.content";
2155                }
2156                rel2 {
2157                   relative: 1.0 0.5;
2158                   offset: -2 -2;
2159                }
2160                color: 255 255 255 255;
2161                align: 0.0 0.5;
2162                text {
2163                   style: "check_label_textblock_style";
2164                   min: 0 0;
2165                }
2166                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
2167             }
2168             description { state: "visible" 0.0;
2169                inherit: "default" 0.0;
2170                visible: 1;
2171                text.min: 1 1;
2172             }
2173             description { state: "disabled" 0.0;
2174                inherit: "default" 0.0;
2175             }
2176             description { state: "disabled_visible" 0.0;
2177                inherit: "default" 0.0;
2178                visible: 1;
2179                text.min: 1 1;
2180                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
2181             }
2182          }
2183          part { name: "events1";
2184             type: RECT;
2185             ignore_flags: ON_HOLD;
2186             description { state: "default" 0.0;
2187                color: 0 0 0 0;
2188                rel1.to: "bg2";
2189                rel2.to_x: "elm.text";
2190                align: 0.0 0.5;
2191             }
2192             description { state: "visible" 0.0;
2193                color: 0 0 0 0;
2194                rel1.to: "bg_expand";
2195                rel2.to_x: "elm.text";
2196                align: 0.0 0.5;
2197             }
2198          }
2199          part { name: "events2";
2200             type: RECT;
2201             repeat_events: 1;
2202             description { state: "default" 0.0;
2203                color: 0 0 0 0;
2204                rel1.to: "bg2";
2205                rel2.to_x: "elm.text";
2206                align: 0.0 0.5;
2207             }
2208             description { state: "visible" 0.0;
2209                color: 0 0 0 0;
2210                rel1.to: "bg_expand";
2211                rel2.to_x: "elm.text";
2212                align: 0.0 0.5;
2213             }
2214          }
2215          part { name: "disabler";
2216             type: RECT;
2217             description { state: "default" 0.0;
2218                rel2.to_x: "elm.text";
2219                color: 0 0 0 0;
2220                visible: 0;
2221             }
2222             description { state: "disabled" 0.0;
2223                inherit: "default" 0.0;
2224                visible: 1;
2225             }
2226          }
2227       }
2228       programs {
2229          program { name: "click";
2230             signal: "mouse,clicked,1";
2231             source: "events1";
2232             script {
2233                new st[31];
2234                new Float:vl;
2235                get_state(PART:"check", st, 30, vl);
2236                if (!strcmp(st, "visible_pressed"))
2237                  set_state(PART:"check", "visible", 0.0);
2238             }
2239             after: "toggle";
2240          }
2241          program { name: "toggle";
2242             action: SIGNAL_EMIT "elm,action,check,toggle" "";
2243             after: "touch_sound";
2244          }
2245          program { name: "touch_sound";
2246             action: PLAY_SAMPLE "touch_sound" 1.0;
2247          }
2248          program { name: "unfocused";
2249             signal: "elm,action,unfocus";
2250             source: "elm";
2251             script {
2252                new st[31];
2253                new Float:vl;
2254                get_state(PART:"bg2", st, 30, vl);
2255                if (!strcmp(st, "on"))
2256                  emit("elm,action,check,toggle", "");
2257             }
2258          }
2259          program { name: "click_down";
2260             signal: "mouse,down,1";
2261             source: "events2";
2262             script {
2263                new st[31];
2264                new Float:vl;
2265                get_state(PART:"check", st, 30, vl);
2266                if (!strcmp(st, "visible"))
2267                  {
2268                     set_state(PART:"bg_expand", "clicked", 0.0);
2269                     set_state(PART:"check", "visible_pressed", 0.0);
2270                  }
2271                else 
2272                  {
2273                     set_state(PART:"bg2", "clicked", 0.0);
2274                     set_state(PART:"bg1", "clicked", 0.0);
2275                  }
2276             }
2277          }
2278          program { name: "check_normal";
2279             signal: "mouse,up,1";
2280             source: "events2";
2281             script {
2282                new st[31];
2283                new Float:vl;
2284                get_state(PART:"check", st, 30, vl);
2285                if (!strcmp(st, "visible_pressed"))
2286                  {
2287                     set_state(PART:"bg_expand", "on", 0.0);
2288                     set_state(PART:"check", "visible", 0.0);
2289                  }
2290                get_state(PART:"bg_expand", st, 30, vl);
2291                if (!strcmp(st, "default"))
2292                  {
2293                     set_state(PART:"bg2", "default", 0.0);
2294                     set_state(PART:"bg1", "default", 0.0);
2295                  }
2296             }
2297          }
2298          program { name: "check_on";
2299             signal: "elm,state,check,on";
2300             source: "elm";
2301             action: STATE_SET "on" 0.0;
2302             target: "clipper";
2303             after: "start_expand";
2304          }
2305          program { name: "start_expand";
2306             action: STATE_SET "intermediate" 0.0;
2307             target: "bg2";
2308             target: "bg1";
2309             target: "bg_expand";
2310             after: "expand";
2311          }
2312          program { name: "expand";
2313             action: STATE_SET "on" 0.0;
2314             target: "bg_expand";
2315             target: "bg2";
2316             target: "bg1";
2317             transition: ACCELERATE 0.1;
2318             after: "check_visible";
2319          }
2320          program { name: "check_visible";
2321             action: STATE_SET "visible" 0.0;
2322             target: "check";
2323             target: "events1";
2324             target: "events2";
2325          }
2326          program { name: "check_off";
2327             signal: "elm,state,check,off";
2328             source: "elm";
2329             action: STATE_SET "default" 0.0;
2330             target: "check";
2331             after: "contract";
2332          }
2333          program { name: "contract";
2334             action: STATE_SET "intermediate" 0.0;
2335             target: "bg_expand";
2336             transition: ACCELERATE 0.1;
2337             after: "normal_bg";
2338          }
2339          program { name: "normal_bg";
2340             script {
2341                if (get_int(button_state) !=1)
2342                  {
2343                     set_state(PART:"bg2", "default", 0.0);
2344                     set_state(PART:"bg1", "default", 0.0);
2345                  }
2346                else
2347                  {
2348                     set_state(PART:"bg2", "disabled", 0.0);
2349                     set_state(PART:"bg1", "disabled", 0.0);
2350                  }
2351             }
2352             after: "bg_default";
2353          }
2354          program { name: "bg_default";
2355             action: STATE_SET "default" 0.0;
2356             target: "bg_expand";
2357             target: "clipper";
2358             target: "events1";
2359             target: "events2";
2360          }
2361          program { name: "text_show";
2362             signal: "elm,state,text,visible";
2363             source: "elm";
2364             action: STATE_SET "visible" 0.0;
2365             target: "elm.text";
2366          }
2367          program { name: "text_hide";
2368             signal: "elm,state,text,hidden";
2369             source: "elm";
2370             action: STATE_SET "default" 0.0;
2371             target: "elm.text";
2372          }
2373          program { name: "icon_show";
2374             signal: "elm,state,icon,visible";
2375             source: "elm";
2376             action: STATE_SET "visible" 0.0;
2377             target: "elm.swallow.content";
2378          }
2379          program { name: "icon_hide";
2380             signal: "elm,state,icon,hidden";
2381             source: "elm";
2382             action: STATE_SET "default" 0.0;
2383             target: "elm.swallow.content";
2384          }
2385          program { name: "disable";
2386             signal: "elm,state,disabled";
2387             source: "elm";
2388             action: STATE_SET "disabled" 0.0;
2389             target: "disabler";
2390             target: "bg2";
2391             target: "bg1";
2392             after: "disable_text";
2393          }
2394          program { name: "disable_text";
2395             script {
2396                new st[31];
2397                new Float:vl;
2398                get_state(PART:"elm.text", st, 30, vl);
2399                if (!strcmp(st, "visible"))
2400                  set_state(PART:"elm.text", "disabled_visible", 0.0);
2401                else
2402                  set_state(PART:"elm.text", "disabled", 0.0);
2403                get_state(PART:"elm.swallow.content", st, 30, vl);
2404                if (!strcmp(st, "visible"))
2405                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
2406                else
2407                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
2408                set_int(button_state, 1);
2409             }
2410          }
2411          program { name: "enable";
2412             signal: "elm,state,enabled";
2413             source: "elm";
2414             action: STATE_SET "default" 0.0;
2415             target: "disabler";
2416             target: "bg2";
2417             target: "bg1";
2418             after: "enable_text";
2419          }
2420          program { name: "enable_text";
2421             script {
2422                new st[31];
2423                new Float:vl;
2424                get_state(PART:"elm.text", st, 30, vl);
2425                if (!strcmp(st, "disabled_visible"))
2426                  set_state(PART:"elm.text", "visible", 0.0);
2427                else
2428                  set_state(PART:"elm.text", "default", 0.0);
2429                get_state(PART:"elm.swallow.content", st, 30, vl);
2430                if (!strcmp(st, "visible"))
2431                  set_state(PART:"elm.swallow.content", "visible", 0.0);
2432                else
2433                  set_state(PART:"elm.swallow.content", "default", 0.0);
2434                set_int(button_state, 0);
2435             }
2436          }
2437       }
2438    }
2439
2440 ////////////////////////////////////////////////////////////////////////////////////
2441    group { name: "elm/check/base/multicheck";
2442       images {
2443          image: "00_check_bg.png" COMP;
2444          image: "00_check_bg_press.png" COMP;
2445          image: "multicheck_0001.png" COMP;
2446          image: "multicheck_0002.png" COMP;
2447          image: "multicheck_0003.png" COMP;
2448          image: "multicheck_0004.png" COMP;
2449          image: "multicheck_0005.png" COMP;
2450          image: "multicheck_0006.png" COMP;
2451          image: "00_check_checking.png" COMP;
2452       }
2453       script {
2454          public check_state = 0; //0:default, 1: visible, 2: disabled_visible
2455       }
2456       parts {
2457          part { name: "bg";
2458             scale: 1;
2459             clip_to: "disclip";
2460             description { state: "default" 0.0;
2461                rel2.relative: 0.0 1.0;
2462                align: 0.0 0.5;
2463                min: 44 44;
2464                max: 44 44;
2465                aspect: 1.0 1.0;
2466                aspect_preference: VERTICAL;
2467                image.normal: "00_check_bg.png";
2468                fill.smooth : 0;
2469             }
2470             description { state: "pressed" 0.0;
2471                inherit: "default" 0.0;
2472                image.normal: "00_check_bg_press.png";
2473                fill.smooth : 0;
2474             }
2475             description { state: "disabled" 0.0;
2476                inherit: "default" 0.0;
2477             }
2478          }
2479          part { name: "check";
2480             mouse_events: 0;
2481             clip_to: "disclip";
2482             scale: 1;
2483             description { state: "default" 0.0;
2484                rel1.to: "bg";
2485                rel2.to: "bg";
2486                visible: 0;
2487             }
2488             description { state: "visible_1" 0.0;
2489                inherit: "default" 0.0;
2490                visible: 1;
2491                image.normal: "multicheck_0001.png";
2492             }
2493             description { state: "visible_2" 0.0;
2494                inherit: "default" 0.0;
2495                visible: 1;
2496                image.normal: "multicheck_0002.png";
2497             }
2498             description { state: "visible_3" 0.0;
2499                inherit: "default" 0.0;
2500                visible: 1;
2501                image.normal: "multicheck_0003.png";
2502             }
2503             description { state: "visible_4" 0.0;
2504                inherit: "default" 0.0;
2505                visible: 1;
2506                image.normal: "multicheck_0004.png";
2507             }
2508             description { state: "visible_5" 0.0;
2509                inherit: "default" 0.0;
2510                visible: 1;
2511                image.normal: "multicheck_0005.png";
2512             }
2513             description { state: "visible" 0.0;
2514                inherit: "default" 0.0;
2515                visible: 1;
2516                image.normal: "multicheck_0006.png";
2517             }
2518             description { state: "pressed" 0.0;
2519                inherit: "default" 0.0;
2520                visible: 1;
2521                image.normal: "multicheck_0006.png";
2522             }
2523             description { state: "disabled_visible" 0.0;
2524                inherit: "default" 0.0;
2525                image.normal: "00_check_checking.png";
2526                visible: 1;
2527             }
2528          }
2529          part { name: "elm.swallow.content";
2530             type: SWALLOW;
2531             clip_to: "disclip";
2532             description { state: "default" 0.0;
2533                fixed: 1 0;
2534                visible: 0;
2535                color: 255 255 255 255;
2536                align: 0.0 0.5;
2537                rel1 {
2538                   to_x: "bg";
2539                   relative: 1.0 0.0;
2540                   offset: 1 1;
2541                }
2542                rel2 {
2543                   to_x: "bg";
2544                   relative: 1.0 1.0;
2545                   offset: 2 -2;
2546                }
2547             }
2548             description { state: "visible" 0.0;
2549                inherit: "default" 0.0;
2550                fixed: 1 1;
2551                visible: 1;
2552                aspect: 1.0 1.0;
2553                aspect_preference: VERTICAL;
2554             }
2555             description { state: "disabled" 0.0;
2556                inherit: "default" 0.0;
2557                color: 128 128 128 128;
2558             }
2559             description { state: "disabled_visible" 0.0;
2560                inherit: "default" 0.0;
2561                color: 128 128 128 128;
2562                fixed: 1 1;
2563                visible: 1;
2564                aspect: 1.0 1.0;
2565             }
2566          }
2567          part { name: "elm.text";
2568             type: TEXTBLOCK;
2569             clip_to: "disclip";
2570             mouse_events: 0;
2571             scale: 1;
2572             description { state: "default" 0.0;
2573                visible: 0;
2574                fixed: 0 1;
2575                rel1 {
2576                   relative: 1.0 0.5;
2577                   offset: 1 1;
2578                   to_x: "elm.swallow.content";
2579                }
2580                rel2 {
2581                   relative: 1.0 0.5;
2582                   offset: -2 -2;
2583                }
2584                align: 0.0 0.5;
2585                text {
2586                   style: "check_label_textblock_style";
2587                   min: 0 0;
2588                }
2589                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
2590             }
2591             description { state: "visible" 0.0;
2592                inherit: "default" 0.0;
2593                visible: 1;
2594                text.min: 1 1;
2595             }
2596             description { state: "disabled" 0.0;
2597                inherit: "default" 0.0;
2598             }
2599             description { state: "disabled_visible" 0.0;
2600                inherit: "default" 0.0;
2601                visible: 1;
2602                text.min: 1 1;
2603                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
2604             }
2605          }
2606          part { name: "events1";
2607             type: RECT;
2608             ignore_flags: ON_HOLD;
2609             description { state: "default" 0.0;
2610                color: 0 0 0 0;
2611             }
2612          }
2613          part { name: "disclip";
2614             type: RECT;
2615             mouse_events: 0;
2616             description { state: "default" 0.0;
2617                color: 255 255 255 255;
2618             }
2619             description { state: "disabled" 0.0;
2620                inherit: "default" 0.0;
2621                color: 255 255 255 102;
2622             }
2623          }
2624          part { name: "events2";
2625             type: RECT;
2626             repeat_events: 1;
2627             description { state: "default" 0.0;
2628                color: 0 0 0 0;
2629             }
2630          }
2631          part { name: "disabler";
2632             type: RECT;
2633             description { state: "default" 0.0;
2634                color: 0 0 0 0;
2635                visible: 0;
2636             }
2637             description { state: "disabled" 0.0;
2638                inherit: "default" 0.0;
2639                visible: 1;
2640             }
2641          }
2642       }
2643       programs {
2644          program { name: "click";
2645             signal: "mouse,clicked,1";
2646             source: "events1";
2647             action: SIGNAL_EMIT "elm,action,check,toggle" "";
2648             after: "touch_sound";
2649          }
2650          program { name: "touch_sound";
2651             action: PLAY_SAMPLE "touch_sound" 1.0;
2652          }
2653          program { name: "bg_normal";
2654             signal: "mouse,up,1";
2655             source: "events2";
2656             script {
2657                new st[31];
2658                new Float:vl;
2659                get_state(PART:"check", st, 30, vl);
2660                if (!strcmp(st, "pressed"))
2661                  set_state(PART:"check", "visible", 0.0);
2662                set_state(PART:"bg", "default", 0.0);
2663             }
2664          }
2665          program { name: "pressed";
2666             signal: "mouse,down,1";
2667             source: "events2";
2668             script {
2669                new st[31];
2670                new Float:vl;
2671                get_state(PART:"check", st, 30, vl);
2672                if (!strcmp(st, "default"))
2673                  set_state(PART:"check", "pressed", 0.0);
2674                else
2675                  set_state(PART:"check", "default", 0.0);
2676                set_state(PART:"bg", "pressed", 0.0);
2677             }
2678          }
2679          program { name: "mouse,out";
2680             signal: "mouse,out";
2681             source: "events2";
2682             script {
2683                if (get_int(check_state) == 1)
2684                  set_state(PART:"check", "visible", 0.0);
2685                else
2686                  set_state(PART:"check", "default", 0.0);
2687             }
2688          }
2689          program { name: "check_on";
2690             signal: "elm,state,check,on";
2691             source: "elm";
2692             script {
2693                set_int(check_state, 1);
2694             }
2695             after: "check_on_1";
2696          }
2697          program { name: "check_on_1";
2698             in: 0.05 0.0;
2699             script {
2700                if (get_int(check_state) == 1)
2701                  set_state(PART:"check", "visible_1", 0.0);
2702             }
2703             after: "check_on_2";
2704          }
2705          program { name: "check_on_2";
2706             in: 0.05 0.0;
2707             script {
2708                if (get_int(check_state) == 1)
2709                  set_state(PART:"check", "visible_2", 0.0);
2710             }
2711             after: "check_on_3";
2712          }
2713          program { name: "check_on_3";
2714             in: 0.05 0.0;
2715             script {
2716                if (get_int(check_state) == 1)
2717                  set_state(PART:"check", "visible_3", 0.0);
2718             }
2719             after: "check_on_4";
2720          }
2721          program { name: "check_on_4";
2722             in: 0.05 0.0;
2723             script {
2724                if (get_int(check_state) == 1)
2725                  set_state(PART:"check", "visible_4", 0.0);
2726             }
2727             after: "check_on_5";
2728          }
2729          program { name: "check_on_5";
2730             in: 0.05 0.0;
2731             script {
2732                if (get_int(check_state) == 1)
2733                  set_state(PART:"check", "visible_5", 0.0);
2734             }
2735             after: "check_on_6";
2736          }
2737          program { name: "check_on_6";
2738             in: 0.05 0.0;
2739             script {
2740                if (get_int(check_state) == 1)
2741                  set_state(PART:"check", "visible", 0.0);
2742             }
2743          }
2744          program { name: "check_off";
2745             signal: "elm,state,check,off";
2746             source: "elm";
2747             action: STATE_SET "default" 0.0;
2748             target: "check";
2749             script {
2750                if (get_int(check_state) == 1)
2751                  {
2752                     set_int(check_state, 0);
2753                     set_state(PART:"check", "default", 0.0);
2754                  }
2755             }
2756          }
2757          program { name: "text_show";
2758             signal: "elm,state,text,visible";
2759             source: "elm";
2760             action: STATE_SET "visible" 0.0;
2761             target: "elm.text";
2762          }
2763          program { name: "text_hide";
2764             signal: "elm,state,text,hidden";
2765             source: "elm";
2766             action: STATE_SET "default" 0.0;
2767             target: "elm.text";
2768          }
2769          program { name: "icon_show";
2770             signal: "elm,state,icon,visible";
2771             source: "elm";
2772             action: STATE_SET "visible" 0.0;
2773             target: "elm.swallow.content";
2774          }
2775          program { name: "icon_hide";
2776             signal: "elm,state,icon,hidden";
2777             source: "elm";
2778             action: STATE_SET "default" 0.0;
2779             target: "elm.swallow.content";
2780          }
2781          program { name: "disable";
2782             signal: "elm,state,disabled";
2783             source: "elm";
2784             action: STATE_SET "disabled" 0.0;
2785             target: "disabler";
2786             target: "disclip";
2787             target: "bg";
2788             after: "disable_text";
2789          }
2790          program { name: "disable_text";
2791             script {
2792                new st[31];
2793                new Float:vl;
2794                get_state(PART:"elm.text", st, 30, vl);
2795                if (!strcmp(st, "visible"))
2796                  set_state(PART:"elm.text", "disabled_visible", 0.0);
2797                else
2798                  set_state(PART:"elm.text", "disabled", 0.0);
2799                get_state(PART:"elm.swallow.content", st, 30, vl);
2800                if (!strcmp(st, "visible"))
2801                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
2802                else
2803                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
2804                get_state(PART:"check", st, 30, vl);
2805                if (!strcmp(st, "visible"))
2806                  set_state(PART:"check", "disabled_visible", 0.0);
2807                set_int(check_state, 2);
2808             }
2809          }
2810          program { name: "enable";
2811             signal: "elm,state,enabled";
2812             source: "elm";
2813             action: STATE_SET "default" 0.0;
2814             target: "disabler";
2815             target: "disclip";
2816             target: "bg";
2817             after: "enable_text";
2818          }
2819          program { name: "enable_text";
2820             script {
2821                new st[31];
2822                new Float:vl;
2823                get_state(PART:"elm.text", st, 30, vl);
2824                if (!strcmp(st, "disabled_visible"))
2825                  set_state(PART:"elm.text", "visible", 0.0);
2826                else
2827                  set_state(PART:"elm.text", "default", 0.0);
2828                get_state(PART:"elm.swallow.content", st, 30, vl);
2829                if (!strcmp(st, "visible"))
2830                  set_state(PART:"elm.swallow.content", "visible", 0.0);
2831                else
2832                  set_state(PART:"elm.swallow.content", "default", 0.0);
2833                get_state(PART:"check", st, 30, vl);
2834                if (!strcmp(st, "disabled_visible"))
2835                  {
2836                     set_state(PART:"check", "visible", 0.0);
2837                     set_int(check_state, 1);
2838                  }
2839                else
2840                  set_int(check_state, 0);
2841             }
2842          }
2843       }
2844    }
2845 #endif
2846
2847 #undef CHECK_STATE_DEFAULT
2848 #undef CHECK_STATE_VISIBLE
2849 #undef CHECK_STATE_DISABLED_VISIBLE
2850 #undef CHECK_STATE_DISABLED
2851
2852 #undef CHECK_HIDE
2853 #undef CHECK_SHOW