merge with master
[platform/core/uifw/efl-theme-tizen.git] / themes / widgets / check.edc
1 /*
2  * efl-theme-tizen
3  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4  *
5  * Licensed under the Apache License, Version 2.0 (the License);
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an AS IS BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18
19
20 #define CHECK_STATE_DEFAULT 0
21 #define CHECK_STATE_VISIBLE 1
22 #define CHECK_STATE_DISABLED_VISIBLE 2
23 #define CHECK_STATE_DISABLED 3
24
25 #define CHECK_HIDE 0
26 #define CHECK_SHOW 1
27 ////////////////////////////////////////////////////////////////////////////////
28 #define CHECK_STYLE_DEFAULT(style_name, min_width, min_height) \
29    group { name: "elm/check/base/"style_name; \
30       images { \
31          image: "00_check_bg.png" COMP; \
32          image: "00_check_bg_press.png" COMP; \
33          image: "00_check_bg_dim.png" COMP; \
34          image: "00_check_checking.png" COMP; \
35          image: "00_check_checking_dim.png" COMP; \
36       } \
37       script { \
38          public check_state = CHECK_STATE_DEFAULT; \
39          public check_visible = CHECK_HIDE; \
40       } \
41       parts { \
42          part { name: "back_bg"; \
43             type: RECT; \
44             scale: 1; \
45             description { state: "default" 0.0; \
46                rel2.relative: 0.0 1.0; \
47                align: 0 0.5; \
48                min: min_width min_height; \
49                fixed: 1 0; \
50                color: 0 0 0 0; \
51             } \
52          } \
53          part { name: "bg"; \
54             mouse_events: 0; \
55             scale: 1; \
56             description { state: "default" 0.0; \
57                min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
58                max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
59                fixed: 1 1; \
60                rel1.to: "back_bg"; \
61                rel2.to: "back_bg"; \
62                image.normal: "00_check_bg.png"; \
63                fill.smooth : 0; \
64             } \
65             description { state: "visible" 0.0; \
66                inherit: "default" 0.0; \
67             } \
68             description { state: "pressed" 0.0; \
69                inherit: "default" 0.0; \
70                image.normal: "00_check_bg_press.png"; \
71             } \
72             description { state: "disabled" 0.0; \
73                inherit: "default" 0.0; \
74                image.normal: "00_check_bg_dim.png"; \
75             } \
76          } \
77          part { name: "check"; \
78             clip_to: "sequence_clip"; \
79             mouse_events: 0; \
80             scale: 1; \
81             description { state: "default" 0.0; \
82                rel1.to: "bg"; \
83                rel2.to: "bg"; \
84                visible: 0; \
85                image.normal: "00_check_checking.png"; \
86                color: 255 255 255 0; \
87             } \
88             description { state: "visible" 0.0; \
89                inherit: "default" 0.0; \
90                visible: 1; \
91                color: 255 255 255 255; \
92             } \
93             description { state: "disabled_visible" 0.0; \
94                inherit: "default" 0.0; \
95                visible: 1; \
96                image.normal: "00_check_checking_dim.png"; \
97             } \
98          } \
99          part { name: "sequence_clip"; \
100             type: RECT; \
101             mouse_events: 0; \
102             description { state: "default" 0.0; \
103                rel2.relative: 0.0 1.0; \
104                color: 255 255 255 255; \
105             } \
106             description { state: "visible" 0.0; \
107                inherit: "default" 0.0; \
108                rel2.relative: 1.0 1.0; \
109             } \
110          } \
111          part { name: "elm.swallow.content"; \
112             type: SWALLOW; \
113             clip_to: "disclip"; \
114             description { state: "default" 0.0; \
115                fixed: 1 0; \
116                visible: 0; \
117                align: 0.0 0.5; \
118                rel1 { \
119                   to_x: "bg"; \
120                   relative: 1.0 0.0; \
121                   offset: 1 1; \
122                } \
123                rel2 { \
124                   to_x: "bg"; \
125                   relative: 1.0 1.0; \
126                   offset: 2 -2; \
127                } \
128             } \
129             description { state: "visible" 0.0; \
130                inherit: "default" 0.0; \
131                fixed: 1 1; \
132                visible: 1; \
133                aspect: 1.0 1.0; \
134                aspect_preference: VERTICAL; \
135             } \
136             description { state: "disabled" 0.0; \
137                inherit: "default" 0.0; \
138             } \
139             description { state: "disabled_visible" 0.0; \
140                inherit: "default" 0.0; \
141                fixed: 1 1; \
142                visible: 1; \
143                aspect: 1.0 1.0; \
144             } \
145          } \
146          part { name: "elm.text"; \
147             type: TEXTBLOCK; \
148             mouse_events: 0; \
149             clip_to: "disclip"; \
150             scale: 1; \
151             description { state: "default" 0.0; \
152                visible: 0; \
153                fixed: 0 1; \
154                rel1 { \
155                   relative: 1.0 0.5; \
156                   offset: 1 1; \
157                   to_x: "elm.swallow.content"; \
158                } \
159                rel2 { \
160                   relative: 1.0 0.5; \
161                   offset: -2 -2; \
162                } \
163                align: 0.0 0.5; \
164                text { \
165                   style: "check_label_textblock_style"; \
166                   min: 0 0; \
167                } \
168                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
169             } \
170             description { state: "visible" 0.0; \
171                inherit: "default" 0.0; \
172                visible: 1; \
173                text.min: 1 1; \
174             } \
175             description { state: "disabled" 0.0; \
176                inherit: "default" 0.0; \
177             } \
178             description { state: "disabled_visible" 0.0; \
179                inherit: "default" 0.0; \
180                visible: 1; \
181                text.min: 1 1; \
182                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
183             } \
184          } \
185          part { name: "events1"; \
186             type: RECT; \
187             ignore_flags: ON_HOLD; \
188             description { state: "default" 0.0; \
189                color: 0 0 0 0; \
190             } \
191          } \
192          part { name: "events2"; \
193             type: RECT; \
194             repeat_events: 1; \
195             description { state: "default" 0.0; \
196                color: 0 0 0 0; \
197             } \
198          } \
199          part { name: "disclip"; \
200             type: RECT; \
201             mouse_events: 0; \
202             description { state: "default" 0.0; \
203                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
204             } \
205             description { state: "disabled" 0.0; \
206                inherit: "default" 0.0; \
207                color: CHECK_DISCLIP_DISABLED_COLOR_INC; \
208             } \
209          } \
210          part { name: "disabler"; \
211             type: RECT; \
212             description { state: "default" 0.0; \
213                color: 0 0 0 0; \
214                visible: 0; \
215             } \
216             description { state: "disabled" 0.0; \
217                inherit: "default" 0.0; \
218                visible: 1; \
219             } \
220          } \
221       } \
222       programs { \
223          program { name: "show"; \
224             signal: "show"; \
225             script { \
226                set_int(check_visible, CHECK_SHOW); \
227             } \
228          } \
229          program { name: "hide"; \
230             signal: "hide"; \
231             script { \
232                set_int(check_visible, CHECK_HIDE); \
233             } \
234          } \
235          program { name: "click"; \
236             signal: "mouse,clicked,1"; \
237             source: "events1"; \
238             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
239          } \
240          program { name: "bg_normal"; \
241             signal: "mouse,up,1"; \
242             source: "events2"; \
243             action: STATE_SET "default" 0.0; \
244             target: "bg"; \
245          } \
246          program { name: "pressed"; \
247             signal: "mouse,down,1"; \
248             source: "events2"; \
249             action: STATE_SET "pressed" 0.0; \
250             target: "bg"; \
251          } \
252          program { name: "mouse,out"; \
253             signal: "mouse,out"; \
254             source: "events2"; \
255             script { \
256                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
257                  { \
258                     set_state(PART:"check", "visible", 0.0); \
259                     set_state(PART:"sequence_clip", "visible", 0.0); \
260                  } \
261                else \
262                  { \
263                     set_state(PART:"check", "default", 0.0); \
264                     set_state(PART:"sequence_clip", "default", 0.0); \
265                  } \
266             } \
267          } \
268          program { name: "check_on"; \
269             signal: "elm,state,check,on"; \
270             source: "elm"; \
271             script { \
272                set_int(check_state, CHECK_STATE_VISIBLE); \
273                if (get_int(check_visible) == CHECK_SHOW) \
274                  { \
275                     run_program(PROGRAM:"check_show_effect"); \
276                     run_program(PROGRAM:"check_draw_effect"); \
277                  } \
278                else \
279                  { \
280                     set_state(PART:"check", "visible", 0.0); \
281                     set_state(PART:"sequence_clip", "visible", 0.0); \
282                  } \
283             } \
284          } \
285          program { name: "check_off"; \
286             signal: "elm,state,check,off"; \
287             source: "elm"; \
288             action: STATE_SET "default" 0.0; \
289             target: "check"; \
290             script { \
291                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
292                  { \
293                     set_int(check_state, CHECK_STATE_DEFAULT); \
294                     set_state(PART:"check", "default", 0.0); \
295                     set_state(PART:"sequence_clip", "default", 0.0); \
296                  } \
297             } \
298          } \
299          program { name: "check_show_effect"; \
300             action: STATE_SET "visible" 0.0; \
301             transition: LINEAR 0.233; \
302             target: "check"; \
303          } \
304          program { name: "check_draw_effect"; \
305             action: STATE_SET "visible" 0.0; \
306             transition: LINEAR 0.267; \
307             target: "sequence_clip"; \
308          } \
309          program { name: "text_show"; \
310             signal: "elm,state,text,visible"; \
311             source: "elm"; \
312             action: STATE_SET "visible" 0.0; \
313             target: "elm.text"; \
314          } \
315          program { name: "text_hide"; \
316             signal: "elm,state,text,hidden"; \
317             source: "elm"; \
318             action: STATE_SET "default" 0.0; \
319             target: "elm.text"; \
320          } \
321          program { name: "icon_show"; \
322             signal: "elm,state,icon,visible"; \
323             source: "elm"; \
324             action: STATE_SET "visible" 0.0; \
325             target: "elm.swallow.content"; \
326          } \
327          program { name: "icon_hide"; \
328             signal: "elm,state,icon,hidden"; \
329             source: "elm"; \
330             action: STATE_SET "default" 0.0; \
331             target: "elm.swallow.content"; \
332          } \
333          program { name: "disable"; \
334             signal: "elm,state,disabled"; \
335             source: "elm"; \
336             action: STATE_SET "disabled" 0.0; \
337             target: "disabler"; \
338             target: "disclip"; \
339             target: "bg"; \
340             after: "disable_text"; \
341          } \
342          program { name: "disable_text"; \
343             script { \
344                new st[31]; \
345                new Float:vl; \
346                get_state(PART:"elm.text", st, 30, vl); \
347                if (!strcmp(st, "visible")) \
348                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
349                else \
350                  set_state(PART:"elm.text", "disabled", 0.0); \
351                get_state(PART:"elm.swallow.content", st, 30, vl); \
352                if (!strcmp(st, "visible")) \
353                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
354                else \
355                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
356                get_state(PART:"check", st, 30, vl); \
357                if (!strcmp(st, "visible")) \
358                  { \
359                     set_state(PART:"check", "disabled_visible", 0.0); \
360                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \
361                  } \
362             } \
363          } \
364          program { name: "enable"; \
365             signal: "elm,state,enabled"; \
366             source: "elm"; \
367             action: STATE_SET "default" 0.0; \
368             target: "disabler"; \
369             target: "disclip"; \
370             target: "bg"; \
371             after: "enable_text"; \
372          } \
373          program { name: "enable_text"; \
374             script { \
375                new st[31]; \
376                new Float:vl; \
377                get_state(PART:"elm.text", st, 30, vl); \
378                if (!strcmp(st, "disabled_visible")) \
379                  set_state(PART:"elm.text", "visible", 0.0); \
380                else \
381                  set_state(PART:"elm.text", "default", 0.0); \
382                get_state(PART:"elm.swallow.content", st, 30, vl); \
383                if (!strcmp(st, "visible")) \
384                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
385                else \
386                  set_state(PART:"elm.swallow.content", "default", 0.0); \
387                get_state(PART:"check", st, 30, vl); \
388                if (!strcmp(st, "disabled_visible")) \
389                  { \
390                     set_state(PART:"check", "visible", 0.0); \
391                     set_state(PART:"sequence_clip", "visible", 0.0); \
392                     set_int(check_state, CHECK_STATE_VISIBLE); \
393                  } \
394                else \
395                  set_int(check_state, CHECK_STATE_DEFAULT); \
396             } \
397          } \
398       } \
399    }
400 ////////////////////////////////////////////////////////////////////////////////
401 CHECK_STYLE_DEFAULT("default", CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
402 ////////////////////////////////////////////////////////////////////////////////
403 CHECK_STYLE_DEFAULT("default/extended", CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC)
404 ////////////////////////////////////////////////////////////////////////////////
405
406 #define CHECK_STYLE_FOR_GENLIST(style_name, min_width, min_height) \
407    group { name: "elm/check/base/"style_name; \
408       images { \
409          image: "00_check_bg.png" COMP; \
410          image: "00_check_bg_dim.png" COMP; \
411          image: "00_check_checking.png" COMP; \
412          image: "00_check_checking_dim.png" COMP; \
413       } \
414       script { \
415          public check_state = CHECK_STATE_DEFAULT; \
416       } \
417       parts { \
418          part { name: "back_bg"; \
419             type: RECT; \
420             scale: 1; \
421             description { state: "default" 0.0; \
422                min: min_width min_height; \
423                fixed: 0 0; \
424                color: 0 0 0 0; \
425             } \
426          } \
427          part { name: "bg"; \
428             mouse_events: 0; \
429             scale: 1; \
430             description { state: "default" 0.0; \
431                min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
432                max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \
433                fixed: 1 1; \
434                rel1.to: "back_bg"; \
435                rel2.to: "back_bg"; \
436                image.normal: "00_check_bg.png"; \
437                fill.smooth : 0; \
438             } \
439             description { state: "disabled" 0.0; \
440                inherit: "default" 0.0; \
441                image.normal: "00_check_bg_dim.png"; \
442             } \
443          } \
444          part { name: "check"; \
445             mouse_events: 0; \
446             scale: 1; \
447             description { state: "default" 0.0; \
448                rel1.to: "bg"; \
449                rel2.to: "bg"; \
450                visible: 0; \
451                image.normal: "00_check_checking.png"; \
452             } \
453             description { state: "visible" 0.0; \
454                inherit: "default" 0.0; \
455                visible: 1; \
456             } \
457             description { state: "disabled_visible" 0.0; \
458                inherit: "default" 0.0; \
459                visible: 1; \
460                image.normal: "00_check_checking_dim.png"; \
461             } \
462          } \
463          part { name: "elm.swallow.content"; \
464             type: SWALLOW; \
465             clip_to: "disclip"; \
466             description { state: "default" 0.0; \
467                fixed: 1 0; \
468                visible: 0; \
469                align: 0.0 0.5; \
470                rel1 { \
471                   to_x: "bg"; \
472                   relative: 1.0 0.0; \
473                   offset: 1 1; \
474                } \
475                rel2 { \
476                   to_x: "bg"; \
477                   relative: 1.0 1.0; \
478                   offset: 2 -2; \
479                } \
480             } \
481             description { state: "visible" 0.0; \
482                inherit: "default" 0.0; \
483                fixed: 1 1; \
484                visible: 1; \
485                aspect: 1.0 1.0; \
486                aspect_preference: VERTICAL; \
487             } \
488             description { state: "disabled" 0.0; \
489                inherit: "default" 0.0; \
490             } \
491             description { state: "disabled_visible" 0.0; \
492                inherit: "default" 0.0; \
493                fixed: 1 1; \
494                visible: 1; \
495                aspect: 1.0 1.0; \
496             } \
497          } \
498          part { name: "elm.text"; \
499             type: TEXTBLOCK; \
500             mouse_events: 0; \
501             clip_to: "disclip"; \
502             scale: 1; \
503             description { state: "default" 0.0; \
504                visible: 0; \
505                fixed: 0 1; \
506                rel1 { \
507                   relative: 1.0 0.5; \
508                   offset: 1 1; \
509                   to_x: "elm.swallow.content"; \
510                } \
511                rel2 { \
512                   relative: 1.0 0.5; \
513                   offset: -2 -2; \
514                } \
515                align: 0.0 0.5; \
516                text { \
517                   style: "check_label_textblock_style"; \
518                   min: 0 0; \
519                } \
520                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
521             } \
522             description { state: "visible" 0.0; \
523                inherit: "default" 0.0; \
524                visible: 1; \
525                text.min: 1 1; \
526             } \
527             description { state: "disabled" 0.0; \
528                inherit: "default" 0.0; \
529             } \
530             description { state: "disabled_visible" 0.0; \
531                inherit: "default" 0.0; \
532                visible: 1; \
533                text.min: 1 1; \
534                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
535             } \
536          } \
537          part { name: "events1"; \
538             type: RECT; \
539             ignore_flags: ON_HOLD; \
540             description { state: "default" 0.0; \
541                color: 0 0 0 0; \
542             } \
543          } \
544          part { name: "events2"; \
545             type: RECT; \
546             repeat_events: 1; \
547             description { state: "default" 0.0; \
548                color: 0 0 0 0; \
549             } \
550          } \
551          part { name: "disclip"; \
552             type: RECT; \
553             mouse_events: 0; \
554             description { state: "default" 0.0; \
555                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
556             } \
557             description { state: "disabled" 0.0; \
558                inherit: "default" 0.0; \
559                color: CHECK_DISCLIP_DISABLED_COLOR_INC; \
560             } \
561          } \
562          part { name: "disabler"; \
563             type: RECT; \
564             description { state: "default" 0.0; \
565                color: 0 0 0 0; \
566                visible: 0; \
567             } \
568             description { state: "disabled" 0.0; \
569                inherit: "default" 0.0; \
570                visible: 1; \
571             } \
572          } \
573       } \
574       programs { \
575          program { name: "click"; \
576             signal: "mouse,clicked,1"; \
577             source: "events1"; \
578             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
579          } \
580          program { name: "check_on"; \
581             signal: "elm,state,check,on"; \
582             source: "elm"; \
583             script { \
584                set_int(check_state, CHECK_STATE_VISIBLE); \
585                set_state(PART:"check", "visible", 0.0); \
586             } \
587          } \
588          program { name: "check_off"; \
589             signal: "elm,state,check,off"; \
590             source: "elm"; \
591             action: STATE_SET "default" 0.0; \
592             target: "check"; \
593             script { \
594                if (get_int(check_state) == CHECK_STATE_VISIBLE) \
595                  { \
596                     set_int(check_state, CHECK_STATE_DEFAULT); \
597                     set_state(PART:"check", "default", 0.0); \
598                  } \
599             } \
600          } \
601          program { name: "text_show"; \
602             signal: "elm,state,text,visible"; \
603             source: "elm"; \
604             action: STATE_SET "visible" 0.0; \
605             target: "elm.text"; \
606          } \
607          program { name: "text_hide"; \
608             signal: "elm,state,text,hidden"; \
609             source: "elm"; \
610             action: STATE_SET "default" 0.0; \
611             target: "elm.text"; \
612          } \
613          program { name: "icon_show"; \
614             signal: "elm,state,icon,visible"; \
615             source: "elm"; \
616             action: STATE_SET "visible" 0.0; \
617             target: "elm.swallow.content"; \
618          } \
619          program { name: "icon_hide"; \
620             signal: "elm,state,icon,hidden"; \
621             source: "elm"; \
622             action: STATE_SET "default" 0.0; \
623             target: "elm.swallow.content"; \
624          } \
625          program { name: "disable"; \
626             signal: "elm,state,disabled"; \
627             source: "elm"; \
628             action: STATE_SET "disabled" 0.0; \
629             target: "disabler"; \
630             target: "disclip"; \
631             target: "bg"; \
632             after: "disable_text"; \
633          } \
634          program { name: "disable_text"; \
635             script { \
636                new st[31]; \
637                new Float:vl; \
638                get_state(PART:"elm.text", st, 30, vl); \
639                if (!strcmp(st, "visible")) \
640                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
641                else \
642                  set_state(PART:"elm.text", "disabled", 0.0); \
643                get_state(PART:"elm.swallow.content", st, 30, vl); \
644                if (!strcmp(st, "visible")) \
645                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
646                else \
647                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
648                get_state(PART:"check", st, 30, vl); \
649                if (!strcmp(st, "visible")) \
650                  { \
651                     set_state(PART:"check", "disabled_visible", 0.0); \
652                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \
653                  } \
654             } \
655          } \
656          program { name: "enable"; \
657             signal: "elm,state,enabled"; \
658             source: "elm"; \
659             action: STATE_SET "default" 0.0; \
660             target: "disabler"; \
661             target: "disclip"; \
662             target: "bg"; \
663             after: "enable_text"; \
664          } \
665          program { name: "enable_text"; \
666             script { \
667                new st[31]; \
668                new Float:vl; \
669                get_state(PART:"elm.text", st, 30, vl); \
670                if (!strcmp(st, "disabled_visible")) \
671                  set_state(PART:"elm.text", "visible", 0.0); \
672                else \
673                  set_state(PART:"elm.text", "default", 0.0); \
674                get_state(PART:"elm.swallow.content", st, 30, vl); \
675                if (!strcmp(st, "visible")) \
676                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
677                else \
678                  set_state(PART:"elm.swallow.content", "default", 0.0); \
679                get_state(PART:"check", st, 30, vl); \
680                if (!strcmp(st, "disabled_visible")) \
681                  { \
682                     set_state(PART:"check", "visible", 0.0); \
683                     set_int(check_state, CHECK_STATE_VISIBLE); \
684                  } \
685                else \
686                  set_int(check_state, CHECK_STATE_DEFAULT); \
687             } \
688          } \
689       } \
690    }
691 ////////////////////////////////////////////////////////////////////////////////
692 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)
693 ////////////////////////////////////////////////////////////////////////////////
694    styles {
695       style { name: "check_label_textblock_style";
696          base: "font=Tizen:style=Roman font_size="CHECK_DEFAULT_TEXT_FONT_SIZE_INC" color=#ffffff wrap=char text_class=tizen";
697          tag: "br" "\n";
698          tag: "ps" "ps";
699          tag: "hilight" "+ font=Tizen:style=Bold";
700          tag: "b" "+ font=Tizen:style=Bold";
701          tag: "whitecolor" "+ color=#ffffff";
702          tag: "tab" "\t";
703       }
704    }
705
706    group { name: "elm/check/base/multicheck";
707       images {
708          image: "00_check_bg.png" COMP;
709          image: "00_check_bg_press.png" COMP;
710          image: "multicheck_0001.png" COMP;
711          image: "multicheck_0002.png" COMP;
712          image: "multicheck_0003.png" COMP;
713          image: "multicheck_0004.png" COMP;
714          image: "multicheck_0005.png" COMP;
715          image: "multicheck_0006.png" COMP;
716          image: "00_check_checking.png" COMP;
717       }
718       script {
719          public check_state = 0; //0:default, 1: visible, 2: disabled_visible
720       }
721       parts {
722          part { name: "bg";
723             scale: 1;
724             clip_to: "disclip";
725             description { state: "default" 0.0;
726                rel2.relative: 0.0 1.0;
727                align: 0.0 0.5;
728                min: 44 44;
729                max: 44 44;
730                aspect: 1.0 1.0;
731                aspect_preference: VERTICAL;
732                image.normal: "00_check_bg.png";
733                fill.smooth : 0;
734             }
735             description { state: "pressed" 0.0;
736                inherit: "default" 0.0;
737                image.normal: "00_check_bg_press.png";
738                fill.smooth : 0;
739             }
740             description { state: "disabled" 0.0;
741                inherit: "default" 0.0;
742             }
743          }
744          part { name: "check";
745             mouse_events: 0;
746             clip_to: "disclip";
747             scale: 1;
748             description { state: "default" 0.0;
749                rel1.to: "bg";
750                rel2.to: "bg";
751                visible: 0;
752             }
753             description { state: "visible_1" 0.0;
754                inherit: "default" 0.0;
755                visible: 1;
756                image.normal: "multicheck_0001.png";
757             }
758             description { state: "visible_2" 0.0;
759                inherit: "default" 0.0;
760                visible: 1;
761                image.normal: "multicheck_0002.png";
762             }
763             description { state: "visible_3" 0.0;
764                inherit: "default" 0.0;
765                visible: 1;
766                image.normal: "multicheck_0003.png";
767             }
768             description { state: "visible_4" 0.0;
769                inherit: "default" 0.0;
770                visible: 1;
771                image.normal: "multicheck_0004.png";
772             }
773             description { state: "visible_5" 0.0;
774                inherit: "default" 0.0;
775                visible: 1;
776                image.normal: "multicheck_0005.png";
777             }
778             description { state: "visible" 0.0;
779                inherit: "default" 0.0;
780                visible: 1;
781                image.normal: "multicheck_0006.png";
782             }
783             description { state: "pressed" 0.0;
784                inherit: "default" 0.0;
785                visible: 1;
786                image.normal: "multicheck_0006.png";
787             }
788             description { state: "disabled_visible" 0.0;
789                inherit: "default" 0.0;
790                image.normal: "00_check_checking.png";
791                visible: 1;
792             }
793          }
794          part { name: "elm.swallow.content";
795             type: SWALLOW;
796             clip_to: "disclip";
797             description { state: "default" 0.0;
798                fixed: 1 0;
799                visible: 0;
800                color: 255 255 255 255;
801                align: 0.0 0.5;
802                rel1 {
803                   to_x: "bg";
804                   relative: 1.0 0.0;
805                   offset: 1 1;
806                }
807                rel2 {
808                   to_x: "bg";
809                   relative: 1.0 1.0;
810                   offset: 2 -2;
811                }
812             }
813             description { state: "visible" 0.0;
814                inherit: "default" 0.0;
815                fixed: 1 1;
816                visible: 1;
817                aspect: 1.0 1.0;
818                aspect_preference: VERTICAL;
819             }
820             description { state: "disabled" 0.0;
821                inherit: "default" 0.0;
822                color: 128 128 128 128;
823             }
824             description { state: "disabled_visible" 0.0;
825                inherit: "default" 0.0;
826                color: 128 128 128 128;
827                fixed: 1 1;
828                visible: 1;
829                aspect: 1.0 1.0;
830             }
831          }
832          part { name: "elm.text";
833             type: TEXTBLOCK;
834             clip_to: "disclip";
835             mouse_events: 0;
836             scale: 1;
837             description { state: "default" 0.0;
838                visible: 0;
839                fixed: 0 1;
840                rel1 {
841                   relative: 1.0 0.5;
842                   offset: 1 1;
843                   to_x: "elm.swallow.content";
844                }
845                rel2 {
846                   relative: 1.0 0.5;
847                   offset: -2 -2;
848                }
849                align: 0.0 0.5;
850                text {
851                   style: "check_label_textblock_style";
852                   min: 0 0;
853                }
854                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
855             }
856             description { state: "visible" 0.0;
857                inherit: "default" 0.0;
858                visible: 1;
859                text.min: 1 1;
860             }
861             description { state: "disabled" 0.0;
862                inherit: "default" 0.0;
863             }
864             description { state: "disabled_visible" 0.0;
865                inherit: "default" 0.0;
866                visible: 1;
867                text.min: 1 1;
868                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
869             }
870          }
871          part { name: "events1";
872             type: RECT;
873             ignore_flags: ON_HOLD;
874             description { state: "default" 0.0;
875                color: 0 0 0 0;
876             }
877          }
878          part { name: "disclip";
879             type: RECT;
880             mouse_events: 0;
881             description { state: "default" 0.0;
882                color: 255 255 255 255;
883             }
884             description { state: "disabled" 0.0;
885                inherit: "default" 0.0;
886                color: 255 255 255 102;
887             }
888          }
889          part { name: "events2";
890             type: RECT;
891             repeat_events: 1;
892             description { state: "default" 0.0;
893                color: 0 0 0 0;
894             }
895          }
896          part { name: "disabler";
897             type: RECT;
898             description { state: "default" 0.0;
899                color: 0 0 0 0;
900                visible: 0;
901             }
902             description { state: "disabled" 0.0;
903                inherit: "default" 0.0;
904                visible: 1;
905             }
906          }
907       }
908       programs {
909          program { name: "click";
910             signal: "mouse,clicked,1";
911             source: "events1";
912             action: SIGNAL_EMIT "elm,action,check,toggle" "";
913          }
914          program { name: "bg_normal";
915             signal: "mouse,up,1";
916             source: "events2";
917             script {
918                new st[31];
919                new Float:vl;
920                get_state(PART:"check", st, 30, vl);
921                if (!strcmp(st, "pressed"))
922                  set_state(PART:"check", "visible", 0.0);
923                set_state(PART:"bg", "default", 0.0);
924             }
925          }
926          program { name: "pressed";
927             signal: "mouse,down,1";
928             source: "events2";
929             script {
930                new st[31];
931                new Float:vl;
932                get_state(PART:"check", st, 30, vl);
933                if (!strcmp(st, "default"))
934                  set_state(PART:"check", "pressed", 0.0);
935                else
936                  set_state(PART:"check", "default", 0.0);
937                set_state(PART:"bg", "pressed", 0.0);
938             }
939          }
940          program { name: "mouse,out";
941             signal: "mouse,out";
942             source: "events2";
943             script {
944                if (get_int(check_state) == 1)
945                  set_state(PART:"check", "visible", 0.0);
946                else
947                  set_state(PART:"check", "default", 0.0);
948             }
949          }
950          program { name: "check_on";
951             signal: "elm,state,check,on";
952             source: "elm";
953             script {
954                set_int(check_state, 1);
955             }
956             after: "check_on_1";
957          }
958          program { name: "check_on_1";
959             in: 0.05 0.0;
960             script {
961                if (get_int(check_state) == 1)
962                  set_state(PART:"check", "visible_1", 0.0);
963             }
964             after: "check_on_2";
965          }
966          program { name: "check_on_2";
967             in: 0.05 0.0;
968             script {
969                if (get_int(check_state) == 1)
970                  set_state(PART:"check", "visible_2", 0.0);
971             }
972             after: "check_on_3";
973          }
974          program { name: "check_on_3";
975             in: 0.05 0.0;
976             script {
977                if (get_int(check_state) == 1)
978                  set_state(PART:"check", "visible_3", 0.0);
979             }
980             after: "check_on_4";
981          }
982          program { name: "check_on_4";
983             in: 0.05 0.0;
984             script {
985                if (get_int(check_state) == 1)
986                  set_state(PART:"check", "visible_4", 0.0);
987             }
988             after: "check_on_5";
989          }
990          program { name: "check_on_5";
991             in: 0.05 0.0;
992             script {
993                if (get_int(check_state) == 1)
994                  set_state(PART:"check", "visible_5", 0.0);
995             }
996             after: "check_on_6";
997          }
998          program { name: "check_on_6";
999             in: 0.05 0.0;
1000             script {
1001                if (get_int(check_state) == 1)
1002                  set_state(PART:"check", "visible", 0.0);
1003             }
1004          }
1005          program { name: "check_off";
1006             signal: "elm,state,check,off";
1007             source: "elm";
1008             action: STATE_SET "default" 0.0;
1009             target: "check";
1010             script {
1011                if (get_int(check_state) == 1)
1012                  {
1013                     set_int(check_state, 0);
1014                     set_state(PART:"check", "default", 0.0);
1015                  }
1016             }
1017          }
1018          program { name: "text_show";
1019             signal: "elm,state,text,visible";
1020             source: "elm";
1021             action: STATE_SET "visible" 0.0;
1022             target: "elm.text";
1023          }
1024          program { name: "text_hide";
1025             signal: "elm,state,text,hidden";
1026             source: "elm";
1027             action: STATE_SET "default" 0.0;
1028             target: "elm.text";
1029          }
1030          program { name: "icon_show";
1031             signal: "elm,state,icon,visible";
1032             source: "elm";
1033             action: STATE_SET "visible" 0.0;
1034             target: "elm.swallow.content";
1035          }
1036          program { name: "icon_hide";
1037             signal: "elm,state,icon,hidden";
1038             source: "elm";
1039             action: STATE_SET "default" 0.0;
1040             target: "elm.swallow.content";
1041          }
1042          program { name: "disable";
1043             signal: "elm,state,disabled";
1044             source: "elm";
1045             action: STATE_SET "disabled" 0.0;
1046             target: "disabler";
1047             target: "disclip";
1048             target: "bg";
1049             after: "disable_text";
1050          }
1051          program { name: "disable_text";
1052             script {
1053                new st[31];
1054                new Float:vl;
1055                get_state(PART:"elm.text", st, 30, vl);
1056                if (!strcmp(st, "visible"))
1057                  set_state(PART:"elm.text", "disabled_visible", 0.0);
1058                else
1059                  set_state(PART:"elm.text", "disabled", 0.0);
1060                get_state(PART:"elm.swallow.content", st, 30, vl);
1061                if (!strcmp(st, "visible"))
1062                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
1063                else
1064                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
1065                get_state(PART:"check", st, 30, vl);
1066                if (!strcmp(st, "visible"))
1067                  set_state(PART:"check", "disabled_visible", 0.0);
1068                set_int(check_state, 2);
1069             }
1070          }
1071          program { name: "enable";
1072             signal: "elm,state,enabled";
1073             source: "elm";
1074             action: STATE_SET "default" 0.0;
1075             target: "disabler";
1076             target: "disclip";
1077             target: "bg";
1078             after: "enable_text";
1079          }
1080          program { name: "enable_text";
1081             script {
1082                new st[31];
1083                new Float:vl;
1084                get_state(PART:"elm.text", st, 30, vl);
1085                if (!strcmp(st, "disabled_visible"))
1086                  set_state(PART:"elm.text", "visible", 0.0);
1087                else
1088                  set_state(PART:"elm.text", "default", 0.0);
1089                get_state(PART:"elm.swallow.content", st, 30, vl);
1090                if (!strcmp(st, "visible"))
1091                  set_state(PART:"elm.swallow.content", "visible", 0.0);
1092                else
1093                  set_state(PART:"elm.swallow.content", "default", 0.0);
1094                get_state(PART:"check", st, 30, vl);
1095                if (!strcmp(st, "disabled_visible"))
1096                  {
1097                     set_state(PART:"check", "visible", 0.0);
1098                     set_int(check_state, 1);
1099                  }
1100                else
1101                  set_int(check_state, 0);
1102             }
1103          }
1104       }
1105    }
1106
1107 //////////////////////////////////////////////////////////////////////////////
1108    group { name: "elm/check/base/on&off";
1109       images {
1110          image: "00_button_on.png" COMP;
1111          image: "00_button_on_dim.png" COMP;
1112          image: "00_button_off.png" COMP;
1113          image: "00_button_off_dim.png" COMP;
1114          image: "00_button_on_off_handler.png" COMP;
1115          image: "00_button_on_off_handler_dim.png" COMP;
1116       }
1117       script {
1118          public is_rtl = 0;
1119          public is_drag = 0;
1120          public was_drag = 0;
1121          public check_on = 0;
1122       }
1123       parts {
1124          part { name: "bg";
1125             type: RECT;
1126             mouse_events: 1;
1127             scale: 1;
1128             description { state: "default" 0.0;
1129                min: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
1130                max: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
1131                rel2.relative: 0.0 1.0;
1132                fixed: 1 1;
1133                align: 0.0 0.5;
1134                visible: 0;
1135             }
1136          }
1137          part { name: "padding_left";
1138             type: RECT;
1139             scale: 1;
1140             mouse_events: 0;
1141             description { state: "default" 0.0;
1142                align: 0.0 0.0;
1143                rel1{ relative: 0.0 0.0; to: "bg"; }
1144                rel2{ relative: 0.0 1.0; to: "bg"; }
1145                min: 0 0;
1146                fixed: 1 1;
1147                color: 0 0 0 0;
1148             }
1149          }
1150          part { name: "padding_right";
1151             type: RECT;
1152             scale: 1;
1153             mouse_events: 0;
1154             description { state: "default" 0.0;
1155                align: 1.0 0.0;
1156                rel1 {
1157                   relative: 1.0 0.0;
1158                   to: "bg";
1159                }
1160                rel2 {
1161                   relative: 1.0 1.0;
1162                   to: "bg";
1163                }
1164                min: 0 0;
1165                fixed: 1 1;
1166                color: 0 0 0 0;
1167             }
1168          }
1169          part { name: "padding_top";
1170             type: RECT;
1171             scale: 1;
1172             mouse_events: 0;
1173             description { state: "default" 0.0;
1174                align: 0.0 0.0;
1175                rel1.to: "bg";
1176                rel2 {
1177                   relative: 1.0 0.0;
1178                   to: "bg";
1179                }
1180                min: 0 0;
1181                fixed: 1 1;
1182                color: 0 0 0 0;
1183             }
1184          }
1185          part { name: "padding_bottom";
1186             type: RECT;
1187             scale: 1;
1188             mouse_events: 0;
1189             description { state: "default" 0.0;
1190                align: 1.0 1.0;
1191                rel1 {
1192                   relative: 0.0 1.0;
1193                   to: "bg";
1194                }
1195                rel2 {
1196                   relative: 1.0 1.0;
1197                   to: "bg";
1198                }
1199                min: 0 6;
1200                fixed: 0 1;
1201                color: 0 0 0 0;
1202             }
1203          }
1204          part { name: "bg_image";
1205             mouse_events: 0;
1206             scale: 1;
1207             description { state: "default" 0.0;
1208                align: 0.0 0.0;
1209                rel1 {
1210                   relative: 0.0 1.0;
1211                   to_x: "bg";
1212                   to_y: "padding_top";
1213                }
1214                rel2 {
1215                   relative: 1.0 0.0;
1216                   to_x: "bg";
1217                   to_y: "padding_bottom";
1218                }
1219                image.normal: "00_button_off.png";
1220             }
1221             description { state: "visible" 0.0;
1222                inherit: "default" 0.0;
1223                image.normal: "00_button_on.png";
1224             }
1225             description { state: "pressed" 0.0;
1226                inherit: "default" 0.0;
1227                image.normal: "00_button_off.png";
1228             }
1229             description { state: "visible_pressed" 0.0;
1230                inherit: "default" 0.0;
1231                image.normal: "00_button_on.png";
1232             }
1233             description { state: "visible_disable" 0.0;
1234                inherit: "default" 0.0;
1235                image.normal: "00_button_on_dim.png";
1236             }
1237             description { state: "off_disable" 0.0;
1238                inherit: "default" 0.0;
1239                image.normal: "00_button_off_dim.png";
1240             }
1241          }
1242          part { name: "drag_container";
1243             type: RECT;
1244             scale: 1;
1245             mouse_events: 0;
1246             description { state: "default" 0.0;
1247                rel1 {
1248                   relative: 1.0 0.0;
1249                   to_x: "padding_left";
1250                   to_y: "bg";
1251                }
1252                rel2 {
1253                   relative: 0.0 1.0;
1254                   to_x: "padding_right";
1255                   to_y: "bg";
1256                }
1257                color: 0 0 0 0;
1258             }
1259          }
1260          part { name: "clipper";
1261             type: RECT;
1262             mouse_events: 0;
1263             description { state: "default" 0.0;
1264                rel1.to: "bg";
1265                rel2.to: "bg";
1266                color: 255 255 255 255;
1267             }
1268          }
1269          part { name: "clipper_inner";
1270             type: RECT;
1271             mouse_events: 0;
1272             description { state: "default" 0.0;
1273                rel1.to: "bg_image";
1274                rel2.to: "bg_image";
1275                color: 255 255 255 255;
1276             }
1277          }
1278          part { name: "button";
1279             scale: 1;
1280             clip_to: "clipper";
1281             mouse_events: 1;
1282             dragable {
1283                x: 1 1 0;
1284                y: 0 0 0;
1285                confine: "drag_container";
1286             }
1287             description { state: "default" 0.0;
1288                min: CHECK_ONOFF_HANDLER_MIN_MAX_INC;
1289                max: CHECK_ONOFF_HANDLER_MIN_MAX_INC;
1290                rel1.to: "bg";
1291                rel2.to: "bg";
1292                align: 0.0 0.0;
1293                fixed: 1 1;
1294                image.normal: "00_button_on_off_handler.png";
1295             }
1296             description { state: "disabled" 0.0;
1297                inherit: "default" 0.0;
1298                image.normal: "00_button_on_off_handler_dim.png";
1299             }
1300          }
1301          part { name: "button_events";
1302             type: RECT;
1303             dragable {
1304                events: "button";
1305             }
1306             description { state: "default" 0.0;
1307                rel1.to_x: "bg";
1308                rel2.to_x: "bg";
1309                color: 0 0 0 0;
1310             }
1311          }
1312          part { name: "onrect";
1313             type: RECT;
1314             scale: 1;
1315             clip_to: "clipper";
1316             mouse_events: 0;
1317             description { state: "default" 0.0;
1318                rel1 {
1319                   relative: -1.0 0.0;
1320                   to: "button";
1321                }
1322                rel2 {
1323                   relative: 0.0 1.0;
1324                   to: "button";
1325                }
1326                align: 1.0 0.5;
1327                color: 0 0 0 0;
1328             }
1329          }
1330          part { name: "offrect";
1331             type: RECT;
1332             scale: 1;
1333             clip_to: "clipper";
1334             mouse_events: 0;
1335             description { state: "default" 0.0;
1336                rel1 {
1337                   relative: 1.0 0.0;
1338                   to: "button";
1339                }
1340                rel2 {
1341                   relative: 2.0 1.0;
1342                   to: "button";
1343                }
1344                color: 0 0 0 0;
1345             }
1346          }
1347          part { name: "elm.offtext";
1348             type: TEXT;
1349             mouse_events: 0;
1350             scale: 1;
1351             clip_to: "clipper_inner";
1352             description { state: "default" 0.0;
1353                rel1.to: "offrect";
1354                rel2.to: "offrect";
1355                color: 255 255 255 255;
1356                text {
1357                   font: "Tizen:style=Medium";
1358                   size: 20;
1359                   min: 0 1;
1360                   text_class: "tizen";
1361                }
1362             }
1363             description { state: "disabled" 0.0;
1364                inherit: "default" 0.0;
1365                color: 128 128 128 128;
1366             }
1367          }
1368          part { name: "elm.ontext";
1369             type: TEXT;
1370             mouse_events: 0;
1371             scale: 1;
1372             clip_to: "clipper_inner";
1373             description { state: "default" 0.0;
1374                rel1.to: "onrect";
1375                rel2.to: "onrect";
1376                color: 255 255 255 255;
1377                text {
1378                   font: "Tizen:style=Medium";
1379                   size: 20;
1380                   min: 0 1;
1381                   text_class: "tizen";
1382                }
1383             }
1384             description { state: "disabled" 0.0;
1385                inherit: "default" 0.0;
1386                color: 128 128 128 128;
1387             }
1388          }
1389          part { name: "elm.swallow.content";
1390             type: SWALLOW;
1391             clip_to: "disclip";
1392             description { state: "default" 0.0;
1393                fixed: 1 0;
1394                visible: 0;
1395                align: 0.0 0.5;
1396                rel1 {
1397                   to_x: "bg";
1398                   relative: 1.0 0.0;
1399                   offset: 1 1;
1400                }
1401                rel2 { 
1402                   to_x: "bg";
1403                   relative: 1.0 1.0;
1404                   offset: 2 -2;
1405                }
1406             }
1407             description { state: "visible" 0.0;
1408                inherit: "default" 0.0;
1409                fixed: 1 1;
1410                visible: 1;
1411                aspect: 1.0 1.0;
1412                aspect_preference: VERTICAL;
1413             }
1414             description { state: "disabled" 0.0;
1415                inherit: "default" 0.0;
1416             }
1417             description { state: "disabled_visible" 0.0;
1418                inherit: "default" 0.0;
1419                fixed: 1 1;
1420                visible: 1;
1421                aspect: 1.0 1.0;
1422             }
1423          }
1424          part { name: "elm.text";
1425             type: TEXTBLOCK;
1426             mouse_events: 0;
1427             scale: 1;
1428             clip_to: "disclip";
1429             description { state: "default" 0.0;
1430                visible: 0;
1431                fixed: 0 1;
1432                rel1 {
1433                   relative: 1.0 0.5;
1434                   offset: 1 1;
1435                   to_x: "elm.swallow.content";
1436                }
1437                rel2 {
1438                   relative: 1.0 0.5;
1439                   offset: -2 -2;
1440                }
1441                align: 0.0 0.5;
1442                text {
1443                   style: "check_label_textblock_style";
1444                   min: 0 0;
1445                }
1446                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
1447             }
1448             description { state: "visible" 0.0;
1449                inherit: "default" 0.0;
1450                visible: 1;
1451                text.min: 1 1;
1452             }
1453             description { state: "disabled" 0.0;
1454                inherit: "default" 0.0;
1455             }
1456             description { state: "disabled_visible" 0.0;
1457                inherit: "default" 0.0;
1458                visible: 1;
1459                text.min: 1 1;
1460             }
1461          }
1462          part { name: "disclip";
1463             type: RECT;
1464             mouse_events: 0;
1465             description { state: "default" 0.0;
1466                color: CHECK_DISCLIP_NORMAL_COLOR_INC;
1467             }
1468             description { state: "disabled" 0.0;
1469                inherit: "default" 0.0;
1470                color: CHECK_DISCLIP_DISABLED_COLOR_INC;
1471             }
1472          }
1473          part { name: "disabler";
1474             type: RECT;
1475             description { state: "default" 0.0;
1476                color: 0 0 0 0;
1477                visible: 0;
1478             }
1479             description { state: "disabled" 0.0;
1480                inherit: "default" 0.0;
1481                visible: 1;
1482             }
1483          }
1484       }
1485       programs {
1486          program {
1487             signal: "mouse,clicked,1";
1488             source: "button";
1489             script {
1490                new Float:dx, Float:dy;
1491                get_drag(PART:"button", dx, dy);
1492                if (!get_int(was_drag)) {
1493                   if (dx > 0.5)
1494                     set_drag(PART:"button", 0.0, 0.0);
1495                   else
1496                     set_drag(PART:"button", 1.0, 0.0);
1497                   if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
1498                       (get_int(is_rtl) == 0) && (dx > 0.5)) {
1499                      if (get_int(check_on))
1500                        emit("elm,action,check,off", "");
1501                   }
1502                   else {
1503                      if (!get_int(check_on))
1504                        emit("elm,action,check,on", "");
1505                   }
1506                }
1507             }
1508          }
1509          program {
1510             signal: "drag";
1511             source: "button";
1512             script {
1513                if (!get_int(is_drag)) emit("elm,action,check,drag,start", "");
1514                set_int(is_drag, 1);
1515             }
1516          }
1517          program {
1518             signal: "mouse,down,1";
1519             source: "button";
1520             script {
1521                set_int(was_drag, 0);
1522                set_int(is_drag, 0);
1523             }
1524          }
1525          program { name: "drag_end";
1526             signal: "mouse,up,1";
1527             source: "button";
1528             script {
1529                new Float:dx, Float:dy;
1530                get_drag(PART:"button", dx, dy);
1531                if (get_int(is_drag)) {
1532                   if (dx > 0.5)
1533                     set_drag(PART:"button", 1.0, 0.0);
1534                   else
1535                     set_drag(PART:"button", 0.0, 0.0);
1536                   if (((get_int(is_rtl) == 1) && (dx <= 0.5)) ||
1537                       (get_int(is_rtl) == 0) && (dx > 0.5)) {
1538                      if (!get_int(check_on))
1539                        emit("elm,action,check,on", "");
1540                   }
1541                   else {
1542                      if (get_int(check_on))
1543                        emit("elm,action,check,off", "");
1544                   }
1545                   set_int(was_drag, get_int(is_drag));
1546                   set_int(is_drag, 0);
1547                   emit("elm,action,check,drag,stop", "");
1548                }
1549             }
1550          }
1551          program { name: "check_on";
1552             signal: "elm,state,check,on";
1553             source: "elm";
1554             script {
1555                new Float:drag;
1556                if (get_int(is_rtl) == 0) {
1557                   drag = 100.0;
1558                }
1559                else {
1560                   drag = 0.0;
1561                }
1562                set_drag(PART:"button", drag, 0.0);
1563                set_state(PART:"bg_image", "visible", 0.0);
1564                set_int(check_on, 1);
1565             }
1566          }
1567          program { name: "check_off";
1568             signal: "elm,state,check,off";
1569             source: "elm";
1570             script {
1571                new Float:drag;
1572                if (get_int(is_rtl) == 0) {
1573                   drag = 0.0;
1574                }
1575                else {
1576                   drag = 100.0;
1577                }
1578                set_drag(PART:"button", drag, 0.0);
1579                set_state(PART:"bg_image", "default", 0.0);
1580                set_int(check_on, 0);
1581             }
1582          }
1583          program { name: "text_show";
1584             signal: "elm,state,text,visible";
1585             source: "elm";
1586             action:  STATE_SET "visible" 0.0;
1587             target: "elm.text";
1588          }
1589          program { name: "text_hide";
1590             signal: "elm,state,text,hidden";
1591             source: "elm";
1592             action:  STATE_SET "default" 0.0;
1593             target: "elm.text";
1594          }
1595          program { name: "icon_show";
1596             signal: "elm,state,icon,visible";
1597             source: "elm";
1598             action:  STATE_SET "visible" 0.0;
1599             target: "elm.swallow.content";
1600          }
1601          program { name: "icon_hide";
1602             signal: "elm,state,icon,hidden";
1603             source: "elm";
1604             action: STATE_SET "default" 0.0;
1605             target: "elm.swallow.content";
1606          }
1607          program { name: "disable";
1608             signal: "elm,state,disabled";
1609             source: "elm";
1610             action: STATE_SET "disabled" 0.0;
1611             target: "elm.offtext";
1612             target: "elm.ontext";
1613             target: "onrect";
1614             target: "offrect";
1615             target: "disabler";
1616             after: "disable_text";
1617          }
1618          program { name: "disable_text";
1619             script {
1620                new st[31];
1621                new Float:vl;
1622                get_state(PART:"elm.text", st, 30, vl);
1623                if (!strcmp(st, "visible"))
1624                  set_state(PART:"elm.text", "disabled_visible", 0.0);
1625                else
1626                  set_state(PART:"elm.text", "disabled", 0.0);
1627                get_state(PART:"bg_image", st, 30, vl);
1628                if (!strcmp(st, "visible"))
1629                  set_state(PART:"bg_image", "visible_disable", 0.0);
1630                else
1631                  set_state(PART:"bg_image", "off_disable", 0.0);
1632                get_state(PART:"elm.swallow.content", st, 30, vl);
1633                if (!strcmp(st, "visible"))
1634                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
1635                else
1636                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
1637                set_state(PART:"button", "disabled", 0.0);
1638             }
1639          }
1640          program { name: "enable";
1641             signal: "elm,state,enabled";
1642             source: "elm";
1643             action: STATE_SET "default" 0.0;
1644             target: "disabler";
1645             target: "onrect";
1646             target: "offrect";
1647             after: "enable_text";
1648          }
1649          program { name: "enable_text";
1650             script {
1651                new st[31];
1652                new Float:vl;
1653                get_state(PART:"elm.text", st, 30, vl);
1654                if (!strcmp(st, "disabled_visible"))
1655                  set_state(PART:"elm.text", "visible", 0.0);
1656                else
1657                  set_state(PART:"elm.text", "default", 0.0);
1658                get_state(PART:"bg_image", st, 30, vl);
1659                if (!strcmp(st, "visible_disable"))
1660                  set_state(PART:"bg_image", "visible", 0.0);
1661                else
1662                  set_state(PART:"bg_image", "default", 0.0);
1663                get_state(PART:"elm.swallow.content", st, 30, vl);
1664                if (!strcmp(st, "visible"))
1665                  set_state(PART:"elm.swallow.content", "visible", 0.0);
1666                else
1667                  set_state(PART:"elm.swallow.content", "default", 0.0);
1668                set_state(PART:"button", "default", 0.0);
1669             }
1670          }
1671          program { name: "to_rtl";
1672             signal: "edje,state,rtl";
1673             source: "edje";
1674             script {
1675                set_int(is_rtl, 1);
1676             }
1677          }
1678          program { name: "to_ltr";
1679             signal: "edje,state,ltr";
1680             source: "edje";
1681             script {
1682                set_int(is_rtl, 0);
1683             }
1684          }
1685       }
1686    }
1687 ///////////////////////////////////////////////////////////////////////////////////////
1688
1689 #define CHECK_STYLE_FAVORITE(style_name, min_width, min_height) \
1690    group { name: "elm/check/base/"style_name; \
1691       images { \
1692          image: "00_icon_favorite_on_72x72.png" COMP; \
1693          image: "00_icon_favorite_on_72x72_dim.png" COMP; \
1694          image: "00_icon_favorite_off_72x72.png" COMP; \
1695          image: "00_icon_favorite_off_72x72_dim.png" COMP; \
1696       } \
1697       parts { \
1698          part { name: "back_bg"; \
1699             type: RECT; \
1700             scale: 1; \
1701             description { state: "default" 0.0; \
1702                visible: 0; \
1703                rel2.relative: 0.0 1.0; \
1704                align: 0 0.5; \
1705                min: min_width min_height; \
1706                fixed: 1 0; \
1707             } \
1708          } \
1709          part { name: "bg"; \
1710             type: RECT; \
1711             clip_to: "disclip"; \
1712             scale: 1; \
1713             description { state: "default" 0.0; \
1714                visible: 0; \
1715                rel1.to: "back_bg"; \
1716                rel2.to: "back_bg"; \
1717                min: CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC; \
1718                max: CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC; \
1719                fixed: 1 1; \
1720             } \
1721          } \
1722          part { name: "check"; \
1723             mouse_events: 0; \
1724             clip_to: "disclip"; \
1725             scale: 1; \
1726             description { state: "default" 0.0; \
1727                rel1.to: "bg"; \
1728                rel2.to: "bg"; \
1729                image.normal: "00_icon_favorite_off_72x72.png"; \
1730             } \
1731             description { state: "visible" 0.0; \
1732                inherit: "default" 0.0; \
1733                image.normal: "00_icon_favorite_on_72x72.png"; \
1734             } \
1735             description { state: "disabled" 0.0; \
1736                inherit: "default" 0.0; \
1737                image.normal: "00_icon_favorite_off_72x72_dim.png"; \
1738             } \
1739             description { state: "disabled_visible" 0.0; \
1740                inherit: "default" 0.0; \
1741                image.normal: "00_icon_favorite_on_72x72_dim.png"; \
1742             } \
1743          } \
1744          part { name: "elm.swallow.content"; \
1745             type: SWALLOW; \
1746             clip_to: "disclip"; \
1747             description { state: "default" 0.0; \
1748                fixed: 1 0; \
1749                visible: 0; \
1750                align: 0.0 0.5; \
1751                rel1 { \
1752                   to_x: "bg"; \
1753                   relative: 1.0 0.0; \
1754                   offset: 1 1; \
1755                } \
1756                rel2 { \
1757                   to_x: "bg"; \
1758                   relative: 1.0 1.0; \
1759                   offset: 2 -2; \
1760                } \
1761             } \
1762             description { state: "visible" 0.0; \
1763                inherit: "default" 0.0; \
1764                fixed: 1 1; \
1765                visible: 1; \
1766                aspect: 1.0 1.0; \
1767                aspect_preference: VERTICAL; \
1768             } \
1769             description { state: "disabled" 0.0; \
1770                inherit: "default" 0.0; \
1771             } \
1772             description { state: "disabled_visible" 0.0; \
1773                inherit: "default" 0.0; \
1774                fixed: 1 1; \
1775                visible: 1; \
1776                aspect: 1.0 1.0; \
1777             } \
1778          } \
1779          part { name: "elm.text"; \
1780             type: TEXTBLOCK; \
1781             clip_to: "disclip"; \
1782             mouse_events: 0; \
1783             scale: 1; \
1784             description { state: "default" 0.0; \
1785                visible: 0; \
1786                fixed: 0 1; \
1787                rel1 { \
1788                   relative: 1.0 0.5; \
1789                   offset: 1 1; \
1790                   to_x: "elm.swallow.content"; \
1791                } \
1792                rel2 { \
1793                   relative: 1.0 0.5; \
1794                   offset: -2 -2; \
1795                } \
1796                align: 0.0 0.5; \
1797                text { \
1798                  style: "check_label_textblock_style"; \
1799                  min: 0 0; \
1800                } \
1801                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \
1802             } \
1803             description { state: "visible" 0.0; \
1804                inherit: "default" 0.0; \
1805                visible: 1; \
1806                text.min: 1 1; \
1807             } \
1808             description { state: "disabled" 0.0; \
1809                inherit: "default" 0.0; \
1810             } \
1811             description { state: "disabled_visible" 0.0; \
1812                inherit: "default" 0.0; \
1813                visible: 1; \
1814                text.min: 1 1; \
1815                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \
1816             } \
1817          } \
1818          part { name: "disclip"; \
1819             type: RECT; \
1820             mouse_events: 0; \
1821             description { state: "default" 0.0; \
1822                color: CHECK_DISCLIP_NORMAL_COLOR_INC; \
1823             } \
1824          } \
1825          part { name: "events"; \
1826             type: RECT; \
1827             ignore_flags: ON_HOLD; \
1828             description { state: "default" 0.0; \
1829                color: 0 0 0 0; \
1830             } \
1831          } \
1832          part { name: "disabler"; \
1833             type: RECT; \
1834             description { state: "default" 0.0; \
1835                color: 0 0 0 0; \
1836                visible: 0; \
1837             } \
1838             description { state: "disabled" 0.0; \
1839                inherit: "default" 0.0; \
1840                visible: 1; \
1841             } \
1842          } \
1843       } \
1844       programs { \
1845          program { name: "click"; \
1846             signal: "mouse,up,1"; \
1847             source: "events"; \
1848             action: SIGNAL_EMIT "elm,action,check,toggle" ""; \
1849          } \
1850          program { name: "check_on"; \
1851             signal: "elm,state,check,on"; \
1852             source: "elm"; \
1853             action: STATE_SET "visible" 0.0; \
1854             target: "check"; \
1855          } \
1856          program { name: "check_off"; \
1857             signal: "elm,state,check,off"; \
1858             source: "elm"; \
1859             action: STATE_SET "default" 0.0; \
1860             target: "check"; \
1861          } \
1862          program { name: "text_show"; \
1863             signal: "elm,state,text,visible"; \
1864             source: "elm"; \
1865             action: STATE_SET "visible" 0.0; \
1866             target: "elm.text"; \
1867          } \
1868          program { name: "text_hide"; \
1869             signal: "elm,state,text,hidden"; \
1870             source: "elm"; \
1871             action: STATE_SET "default" 0.0; \
1872             target: "elm.text"; \
1873          } \
1874          program { name: "icon_show"; \
1875             signal: "elm,state,icon,visible"; \
1876             source: "elm"; \
1877             action: STATE_SET "visible" 0.0; \
1878             target: "elm.swallow.content"; \
1879          } \
1880          program { name: "icon_hide"; \
1881             signal: "elm,state,icon,hidden"; \
1882             source: "elm"; \
1883             action: STATE_SET "default" 0.0; \
1884             target: "elm.swallow.content"; \
1885          } \
1886          program { name: "disable"; \
1887             signal: "elm,state,disabled"; \
1888             source: "elm"; \
1889             action: STATE_SET "disabled" 0.0; \
1890             target: "disabler"; \
1891             after: "disable_text"; \
1892          } \
1893          program { name: "disable_text"; \
1894             script { \
1895                new st[31]; \
1896                new Float:vl; \
1897                get_state(PART:"elm.text", st, 30, vl); \
1898                if (!strcmp(st, "visible")) \
1899                  set_state(PART:"elm.text", "disabled_visible", 0.0); \
1900                else \
1901                  set_state(PART:"elm.text", "disabled", 0.0); \
1902                get_state(PART:"elm.swallow.content", st, 30, vl); \
1903                if (!strcmp(st, "visible")) \
1904                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \
1905                else \
1906                  set_state(PART:"elm.swallow.content", "disabled", 0.0); \
1907                get_state(PART:"check", st, 30, vl); \
1908                if (!strcmp(st, "visible")) \
1909                  set_state(PART:"check", "disabled_visible", 0.0); \
1910                else \
1911                  set_state(PART:"check", "disabled", 0.0); \
1912             } \
1913          } \
1914          program { name: "enable"; \
1915             signal: "elm,state,enabled"; \
1916             source: "elm"; \
1917             action: STATE_SET "default" 0.0; \
1918             target: "disabler"; \
1919             after: "enable_text"; \
1920          } \
1921          program { name: "enable_text"; \
1922             script { \
1923                new st[31]; \
1924                new Float:vl; \
1925                get_state(PART:"elm.text", st, 30, vl); \
1926                if (!strcmp(st, "disabled_visible")) \
1927                  set_state(PART:"elm.text", "visible", 0.0); \
1928                else \
1929                  set_state(PART:"elm.text", "default", 0.0); \
1930                get_state(PART:"elm.swallow.content", st, 30, vl); \
1931                if (!strcmp(st, "visible")) \
1932                  set_state(PART:"elm.swallow.content", "visible", 0.0); \
1933                else \
1934                  set_state(PART:"elm.swallow.content", "default", 0.0); \
1935                get_state(PART:"check", st, 30, vl); \
1936                if (!strcmp(st, "disabled_visible")) \
1937                  set_state(PART:"check", "visible", 0.0); \
1938                else \
1939                  set_state(PART:"check", "default", 0.0); \
1940             } \
1941          } \
1942       } \
1943    }
1944 ////////////////////////////////////////////////////////////////////////////////
1945 CHECK_STYLE_FAVORITE("favorite", CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC)
1946 ////////////////////////////////////////////////////////////////////////////////
1947 CHECK_STYLE_FAVORITE("favorite/extended", CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC, CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC)
1948 ////////////////////////////////////////////////////////////////////////////////
1949
1950    group { name: "elm/check/base/delete";
1951       images {
1952          image: "00_button_minus.png" COMP;
1953          image: "00_button_minus_press.png" COMP;
1954          image: "00_button_edit_Delete.png" COMP;
1955          image: "00_button_edit_Delete_press.png" COMP;
1956          image: "00_button_edit_dim.png" COMP;
1957          image: "00_button_edit_focus.png" COMP;
1958       }
1959       script {
1960          public button_state = 0; //0:enabled, 1: disabled
1961       }
1962       parts {
1963          part { name: "bg1";
1964             scale: 1;
1965             description { state: "default" 0.0;
1966                align: 1.0 0.5;
1967                rel1.to: "bg2";
1968                rel2.to: "bg2";
1969                image {
1970                   normal: "00_button_edit_Delete.png";
1971                   border: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC;
1972                   border_scale: 1;
1973                }
1974             }
1975             description { state: "clicked" 0.0;
1976                inherit: "default" 0.0;
1977                image.normal: "00_button_edit_Delete_press.png";
1978             }
1979             description { state: "intermediate" 0.0;
1980                inherit: "default" 0.0;
1981                visible: 0;
1982             }
1983             description { state: "on" 0.0;
1984                inherit: "default" 0.0;
1985                visible: 0;
1986             }
1987             description { state: "disabled" 0.0;
1988                inherit: "default" 0.0;
1989                image.normal: "00_button_edit_dim.png";
1990             }
1991             description { state: "focused" 0.0;
1992                inherit: "default" 0.0;
1993                image.normal: "00_button_edit_focus.png";
1994             }
1995          }
1996          part { name: "bg2";
1997             scale: 1;
1998             description { state: "default" 0.0;
1999                align: 1.0 0.5;
2000                min: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2001                max: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2002                rel1.relative: 1.0 0.0;
2003                fixed: 1 0;
2004                image.normal: "00_button_minus.png";
2005             }
2006             description { state: "clicked" 0.0;
2007                inherit: "default" 0.0;
2008                image.normal: "00_button_minus_press.png";
2009             }
2010             description { state: "intermediate" 0.0;
2011                inherit: "default" 0.0;
2012                visible: 0;
2013             }
2014             description { state: "on" 0.0;
2015                inherit: "default" 0.0;
2016                visible: 0;
2017             }
2018             description { state: "disabled" 0.0;
2019                inherit: "default" 0.0;
2020                image.normal: "00_button_minus.png";
2021             }
2022          }
2023          part { name: "clipper";
2024             type: RECT;
2025             mouse_events: 0;
2026             scale: 1;
2027             description { state: "default" 0.0;
2028                align: 1.0 0.5;
2029                min: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2030                max: CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC;
2031                color: 255 255 255 255;
2032             }
2033             description { state: "on" 0.0;
2034                align: 1.0 0.5;
2035                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2036                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2037                color: 255 255 255 255;
2038             }
2039          }
2040          part { name: "bg_expand";
2041             mouse_events: 0;
2042             scale: 1;
2043             clip_to: "clipper";
2044             description { state: "default" 0.0;
2045                align: 0.0 0.5;
2046                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2047                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2048                image {
2049                   normal: "00_button_edit_Delete.png";
2050                   border: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC;
2051                   border_scale: 1;
2052                }
2053                rel1 {
2054                   relative: 1 0; 
2055                   to_x: "bg2"; 
2056                }
2057                rel2.to_x: "bg2";
2058                fixed: 1 0;
2059             }
2060             description { state: "clicked" 0.0;
2061                inherit: "default" 0.0;
2062                align: 1.0 0.5;
2063                image.normal: "00_button_edit_Delete_press.png";
2064             }
2065             description { state: "intermediate" 0.0;
2066                inherit: "default" 0.0;
2067                rel1 {
2068                   relative: 0 0;
2069                   to_x: "bg2";
2070                }
2071                rel2 {
2072                   relative: 0 1;
2073                   to_x: "bg2";
2074                }
2075             }
2076             description { state: "on" 0.0;
2077                inherit: "default" 0.0;
2078                align: 1.0 0.5;
2079             }
2080          }
2081          part { name: "check";
2082             type: TEXT;
2083             mouse_events: 0;
2084             scale: 1;
2085             description { state: "default" 0.0;
2086                visible: 0;
2087                align: 1.0 0.5;
2088                min: 0 0;
2089                text {
2090                   font: "Tizen:style=Medium";
2091                   size: CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC;
2092                   min: 0 0;
2093                   text: "";
2094                   text_class: "tizen";
2095                }
2096             }
2097             description { state: "visible" 0.0;
2098                align: 1.0 0.5;
2099                min: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2100                max: CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC;
2101                color: CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC;
2102                text {
2103                   font: "Tizen:style=Medium";
2104                   size: CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC;
2105                   min: 1 0;
2106                   text: "Delete";
2107                   text_class: "tizen";
2108                }
2109             }
2110             description { state: "visible_pressed" 0.0;
2111                inherit: "visible" 0.0;
2112                color: CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC;
2113             }
2114          }
2115          part { name: "elm.swallow.content";
2116             type: SWALLOW;
2117             description { state: "default" 0.0;
2118                fixed: 1 0;
2119                visible: 0;
2120                color: 255 255 255 255;
2121                align: 0.0 0.5;
2122                rel1 {
2123                   to_x: "bg2";
2124                   relative: 1.0 0.0;
2125                   offset: 1 1;
2126                }
2127                rel2 {
2128                   to_x: "bg2";
2129                   relative: 1.0 1.0;
2130                   offset: 2 -2;
2131                }
2132             }
2133             description { state: "visible" 0.0;
2134                inherit: "default" 0.0;
2135                fixed: 1 1;
2136                visible: 1;
2137                aspect: 1.0 1.0;
2138                aspect_preference: VERTICAL;
2139             }
2140             description { state: "disabled" 0.0;
2141                inherit: "default" 0.0;
2142                color: 128 128 128 128;
2143             }
2144             description { state: "disabled_visible" 0.0;
2145                inherit: "default" 0.0;
2146                color: 128 128 128 128;
2147                fixed: 1 1;
2148                visible: 1;
2149                aspect: 1.0 1.0;
2150             }
2151          }
2152          part { name: "elm.text";
2153             type: TEXTBLOCK;
2154             mouse_events: 0;
2155             scale: 1;
2156             description { state: "default" 0.0;
2157                visible: 0;
2158                fixed: 1 1;
2159                rel1 {
2160                   relative: 1.0 0.5;
2161                   offset: 1 1;
2162                   to_x: "elm.swallow.content";
2163                }
2164                rel2 {
2165                   relative: 1.0 0.5;
2166                   offset: -2 -2;
2167                }
2168                color: 255 255 255 255;
2169                align: 0.0 0.5;
2170                text {
2171                   style: "check_label_textblock_style";
2172                   min: 0 0;
2173                }
2174                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
2175             }
2176             description { state: "visible" 0.0;
2177                inherit: "default" 0.0;
2178                visible: 1;
2179                text.min: 1 1;
2180             }
2181             description { state: "disabled" 0.0;
2182                inherit: "default" 0.0;
2183             }
2184             description { state: "disabled_visible" 0.0;
2185                inherit: "default" 0.0;
2186                visible: 1;
2187                text.min: 1 1;
2188                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
2189             }
2190          }
2191          part { name: "events1";
2192             type: RECT;
2193             ignore_flags: ON_HOLD;
2194             description { state: "default" 0.0;
2195                color: 0 0 0 0;
2196                rel1.to: "bg2";
2197                rel2.to_x: "elm.text";
2198                align: 0.0 0.5;
2199             }
2200             description { state: "visible" 0.0;
2201                color: 0 0 0 0;
2202                rel1.to: "bg_expand";
2203                rel2.to_x: "elm.text";
2204                align: 0.0 0.5;
2205             }
2206          }
2207          part { name: "events2";
2208             type: RECT;
2209             repeat_events: 1;
2210             description { state: "default" 0.0;
2211                color: 0 0 0 0;
2212                rel1.to: "bg2";
2213                rel2.to_x: "elm.text";
2214                align: 0.0 0.5;
2215             }
2216             description { state: "visible" 0.0;
2217                color: 0 0 0 0;
2218                rel1.to: "bg_expand";
2219                rel2.to_x: "elm.text";
2220                align: 0.0 0.5;
2221             }
2222          }
2223          part { name: "disabler";
2224             type: RECT;
2225             description { state: "default" 0.0;
2226                rel2.to_x: "elm.text";
2227                color: 0 0 0 0;
2228                visible: 0;
2229             }
2230             description { state: "disabled" 0.0;
2231                inherit: "default" 0.0;
2232                visible: 1;
2233             }
2234          }
2235       }
2236       programs {
2237          program { name: "click";
2238             signal: "mouse,clicked,1";
2239             source: "events1";
2240             script {
2241                new st[31];
2242                new Float:vl;
2243                get_state(PART:"check", st, 30, vl);
2244                if (!strcmp(st, "visible_pressed"))
2245                  set_state(PART:"check", "visible", 0.0);
2246             }
2247             after: "toggle";
2248          }
2249          program { name: "toggle";
2250             action: SIGNAL_EMIT "elm,action,check,toggle" "";
2251          }
2252          program { name: "unfocused";
2253             signal: "elm,action,unfocus";
2254             source: "elm";
2255             script {
2256                new st[31];
2257                new Float:vl;
2258                get_state(PART:"bg2", st, 30, vl);
2259                if (!strcmp(st, "on"))
2260                  emit("elm,action,check,toggle", "");
2261             }
2262          }
2263          program { name: "click_down";
2264             signal: "mouse,down,1";
2265             source: "events2";
2266             script {
2267                new st[31];
2268                new Float:vl;
2269                get_state(PART:"check", st, 30, vl);
2270                if (!strcmp(st, "visible"))
2271                  {
2272                     set_state(PART:"bg_expand", "clicked", 0.0);
2273                     set_state(PART:"check", "visible_pressed", 0.0);
2274                  }
2275                else 
2276                  {
2277                     set_state(PART:"bg2", "clicked", 0.0);
2278                     set_state(PART:"bg1", "clicked", 0.0);
2279                  }
2280             }
2281          }
2282          program { name: "check_normal";
2283             signal: "mouse,up,1";
2284             source: "events2";
2285             script {
2286                new st[31];
2287                new Float:vl;
2288                get_state(PART:"check", st, 30, vl);
2289                if (!strcmp(st, "visible_pressed"))
2290                  {
2291                     set_state(PART:"bg_expand", "on", 0.0);
2292                     set_state(PART:"check", "visible", 0.0);
2293                  }
2294                get_state(PART:"bg_expand", st, 30, vl);
2295                if (!strcmp(st, "default"))
2296                  {
2297                     set_state(PART:"bg2", "default", 0.0);
2298                     set_state(PART:"bg1", "default", 0.0);
2299                  }
2300             }
2301          }
2302          program { name: "check_on";
2303             signal: "elm,state,check,on";
2304             source: "elm";
2305             action: STATE_SET "on" 0.0;
2306             target: "clipper";
2307             after: "start_expand";
2308          }
2309          program { name: "start_expand";
2310             action: STATE_SET "intermediate" 0.0;
2311             target: "bg2";
2312             target: "bg1";
2313             target: "bg_expand";
2314             after: "expand";
2315          }
2316          program { name: "expand";
2317             action: STATE_SET "on" 0.0;
2318             target: "bg_expand";
2319             target: "bg2";
2320             target: "bg1";
2321             transition: ACCELERATE 0.1;
2322             after: "check_visible";
2323          }
2324          program { name: "check_visible";
2325             action: STATE_SET "visible" 0.0;
2326             target: "check";
2327             target: "events1";
2328             target: "events2";
2329          }
2330          program { name: "check_off";
2331             signal: "elm,state,check,off";
2332             source: "elm";
2333             action: STATE_SET "default" 0.0;
2334             target: "check";
2335             after: "contract";
2336          }
2337          program { name: "contract";
2338             action: STATE_SET "intermediate" 0.0;
2339             target: "bg_expand";
2340             transition: ACCELERATE 0.1;
2341             after: "normal_bg";
2342          }
2343          program { name: "normal_bg";
2344             script {
2345                if (get_int(button_state) !=1)
2346                  {
2347                     set_state(PART:"bg2", "default", 0.0);
2348                     set_state(PART:"bg1", "default", 0.0);
2349                  }
2350                else
2351                  {
2352                     set_state(PART:"bg2", "disabled", 0.0);
2353                     set_state(PART:"bg1", "disabled", 0.0);
2354                  }
2355             }
2356             after: "bg_default";
2357          }
2358          program { name: "bg_default";
2359             action: STATE_SET "default" 0.0;
2360             target: "bg_expand";
2361             target: "clipper";
2362             target: "events1";
2363             target: "events2";
2364          }
2365          program { name: "text_show";
2366             signal: "elm,state,text,visible";
2367             source: "elm";
2368             action: STATE_SET "visible" 0.0;
2369             target: "elm.text";
2370          }
2371          program { name: "text_hide";
2372             signal: "elm,state,text,hidden";
2373             source: "elm";
2374             action: STATE_SET "default" 0.0;
2375             target: "elm.text";
2376          }
2377          program { name: "icon_show";
2378             signal: "elm,state,icon,visible";
2379             source: "elm";
2380             action: STATE_SET "visible" 0.0;
2381             target: "elm.swallow.content";
2382          }
2383          program { name: "icon_hide";
2384             signal: "elm,state,icon,hidden";
2385             source: "elm";
2386             action: STATE_SET "default" 0.0;
2387             target: "elm.swallow.content";
2388          }
2389          program { name: "disable";
2390             signal: "elm,state,disabled";
2391             source: "elm";
2392             action: STATE_SET "disabled" 0.0;
2393             target: "disabler";
2394             target: "bg2";
2395             target: "bg1";
2396             after: "disable_text";
2397          }
2398          program { name: "disable_text";
2399             script {
2400                new st[31];
2401                new Float:vl;
2402                get_state(PART:"elm.text", st, 30, vl);
2403                if (!strcmp(st, "visible"))
2404                  set_state(PART:"elm.text", "disabled_visible", 0.0);
2405                else
2406                  set_state(PART:"elm.text", "disabled", 0.0);
2407                get_state(PART:"elm.swallow.content", st, 30, vl);
2408                if (!strcmp(st, "visible"))
2409                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
2410                else
2411                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
2412                set_int(button_state, 1);
2413             }
2414          }
2415          program { name: "enable";
2416             signal: "elm,state,enabled";
2417             source: "elm";
2418             action: STATE_SET "default" 0.0;
2419             target: "disabler";
2420             target: "bg2";
2421             target: "bg1";
2422             after: "enable_text";
2423          }
2424          program { name: "enable_text";
2425             script {
2426                new st[31];
2427                new Float:vl;
2428                get_state(PART:"elm.text", st, 30, vl);
2429                if (!strcmp(st, "disabled_visible"))
2430                  set_state(PART:"elm.text", "visible", 0.0);
2431                else
2432                  set_state(PART:"elm.text", "default", 0.0);
2433                get_state(PART:"elm.swallow.content", st, 30, vl);
2434                if (!strcmp(st, "visible"))
2435                  set_state(PART:"elm.swallow.content", "visible", 0.0);
2436                else
2437                  set_state(PART:"elm.swallow.content", "default", 0.0);
2438                set_int(button_state, 0);
2439             }
2440          }
2441       }
2442    }
2443
2444 ////////////////////////////////////////////////////////////////////////////////
2445
2446    group { name: "elm/check/base/grid";
2447       images.image: "00_grid_select_check.png" COMP;
2448       images.image: "00_grid_select_check_bg.png" COMP;
2449       images.image: "00_grid_select_check_bg_press.png" COMP;
2450       script {
2451          public check_state = CHECK_STATE_DEFAULT;
2452          public check_visible = CHECK_HIDE;
2453       }
2454       parts {
2455          part { name: "bg";
2456             type: RECT;
2457             scale: 1;
2458             description { state: "default" 0.0;
2459                visible: 0;
2460             }
2461          }
2462          part { name: "top_right_padding";
2463             type: RECT;
2464             mouse_events: 0;
2465             scale: 1;
2466             description { state: "default" 0.0;
2467                visible: 0;
2468                min: GENGRID_ITEM_CHECK_TOP_RIGHT_PADDING_INC;
2469                align: 1.0 0.0;
2470                fixed: 1 1;
2471                rel1 {
2472                   relative: 1.0 0.0;
2473                   to: "bg";
2474                }
2475                rel2 {
2476                   relative: 1.0 0.0;
2477                   to: "bg";
2478                }
2479             }
2480          }
2481          part { name: "selected_bg";
2482             scale: 1;
2483             type: RECT;
2484             description { state: "default" 0.0;
2485                visible: 0;
2486                rel1.to: "bg";
2487                rel2.to: "bg";
2488             }
2489             description { state: "visible" 0.0;
2490                inherit: "default" 0.0;
2491                visible: 1;
2492                color: GENGRID_EDIT_MODE_CHECK_BG_COLOR_INC;
2493             }
2494          }
2495          part { name: "bg2";
2496             mouse_events: 0;
2497             scale: 1;
2498             description { state: "default" 0.0;
2499                min: GENGRID_EDIT_MODE_CHECK_SIZE_INC;
2500                align: 1.0 0.0;
2501                fixed: 1 1;
2502                rel1 {
2503                   relative: 0.0 1.0;
2504                   to: "top_right_padding";
2505                }
2506                rel2 {
2507                   relative: 0.0 1.0;
2508                   to: "top_right_padding";
2509                }
2510                image.normal: "00_grid_select_check_bg.png";
2511             }
2512             description { state: "visible" 0.0;
2513                inherit: "default" 0.0;
2514                image.normal: "00_grid_select_check_bg_press.png";
2515             }
2516             description { state: "disabled" 0.0;
2517                inherit: "default" 0.0;
2518             }
2519          }
2520          part { name: "check";
2521             mouse_events: 0;
2522             clip_to: "sequence_clip";
2523             scale: 1;
2524             description { state: "default" 0.0;
2525                visible: 0;
2526                rel1.to: "bg2";
2527                rel2.to: "bg2";
2528                image.normal: "00_grid_select_check.png";
2529                color: 255 255 255 0;
2530             }
2531             description { state: "visible" 0.0;
2532                inherit: "default" 0.0;
2533                visible: 1;
2534                color: 255 255 255 255;
2535             }
2536             description { state: "pressed" 0.0;
2537                inherit: "visible" 0.0;
2538             }
2539             description { state: "disabled_visible" 0.0;
2540                inherit: "default" 0.0;
2541                visible: 1;
2542             }
2543          }
2544          part { name: "sequence_clip";
2545             type: RECT;
2546             mouse_events: 0;
2547             description { state: "default" 0.0;
2548                rel1.to: "bg2";
2549                rel2.to: "bg2";
2550                rel2.relative: 0.0 1.0;
2551                color: 255 255 255 255;
2552             }
2553             description { state: "visible" 0.0;
2554                inherit: "default" 0.0;
2555                rel2.relative: 1.0 1.0;
2556             }
2557          }
2558          part { name: "elm.swallow.content";
2559             type: SWALLOW;
2560             description {
2561                state: "default" 0.0;
2562                fixed: 1 0;
2563                visible: 0;
2564                color: 255 255 255 255;
2565                align: 0.0 0.5;
2566                rel1 {
2567                   to_x: "bg2";
2568                   relative: 1.0 0.0;
2569                   offset: 1 1;
2570                }
2571                rel2 {
2572                   to_x: "bg2";
2573                   relative: 1.0 1.0;
2574                   offset: 2 -2;
2575                }
2576             }
2577             description { state: "visible" 0.0;
2578                inherit: "default" 0.0;
2579                fixed: 1 1;
2580                visible: 1;
2581                aspect: 1.0 1.0;
2582                aspect_preference: VERTICAL;
2583             }
2584             description { state: "disabled" 0.0;
2585                inherit: "default" 0.0;
2586                color: 128 128 128 128;
2587             }
2588             description { state: "disabled_visible" 0.0;
2589                inherit: "default" 0.0;
2590                color: 128 128 128 128;
2591                fixed: 1 1;
2592                visible: 1;
2593                aspect: 1.0 1.0;
2594             }
2595          }
2596          part { name: "elm.text";
2597             type: TEXTBLOCK;
2598             mouse_events: 0;
2599             scale: 1;
2600             description { state: "default" 0.0;
2601                visible: 0;
2602                fixed: 0 1;
2603                rel1 {
2604                   relative: 1.0 0.5;
2605                   offset: 1 1;
2606                   to_x: "elm.swallow.content";
2607                }
2608                rel2 {
2609                   relative: 1.0 0.5;
2610                   offset: -2 -2;
2611                }
2612                color: 255 255 255 255;
2613                align: 0.0 0.5;
2614                text {
2615                   style: "check_label_textblock_style";
2616                   min: 0 0;
2617                }
2618                color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
2619             }
2620             description { state: "visible" 0.0;
2621                inherit: "default" 0.0;
2622                visible: 1;
2623                text.min: 1 1;
2624             }
2625             description { state: "disabled" 0.0;
2626                inherit: "default" 0.0;
2627             }
2628             description { state: "disabled_visible" 0.0;
2629                inherit: "default" 0.0;
2630                visible: 1;
2631                text.min: 1 1;
2632                color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC;
2633             }
2634          }
2635          part { name: "events";
2636             type: RECT;
2637             ignore_flags: ON_HOLD;
2638             description { state: "default" 0.0;
2639                color: 0 0 0 0;
2640             }
2641          }
2642          part { name: "disabler";
2643             type: RECT;
2644             description { state: "default" 0.0;
2645                color: 0 0 0 0;
2646                visible: 0;
2647             }
2648             description { state: "disabled" 0.0;
2649                inherit: "default" 0.0;
2650                visible: 1;
2651             }
2652          }
2653       }
2654       programs {
2655          program { name: "show";
2656             signal: "show";
2657             script {
2658                set_int(check_visible, CHECK_SHOW);
2659             }
2660          }
2661          program { name: "hide";
2662             signal: "hide";
2663             script {
2664                set_int(check_visible, CHECK_HIDE);
2665             }
2666          }
2667          program { name: "click";
2668             signal: "mouse,up,1";
2669             source: "events";
2670             action: SIGNAL_EMIT "elm,action,check,toggle" "";
2671             after: "bg_normal";
2672          }
2673          program { name: "bg_normal";
2674             script {
2675                set_state(PART:"bg2", "default", 0.0);
2676             }
2677          }
2678          program { name: "pressed";
2679             signal: "mouse,down,1";
2680             source: "events";
2681             script {
2682                new st[31];
2683                new Float:vl;
2684                get_state(PART:"check", st, 30, vl);
2685                if (!strcmp(st, "visible"))
2686                  {
2687                     set_state(PART:"check", "pressed", 0.0);
2688                     set_state(PART:"bg2", "visible", 0.0);
2689                  }
2690             }
2691          }
2692          program { name: "mouse,out";
2693             signal: "mouse,out";
2694             source: "events";
2695             script {
2696                if (get_int(check_state) == CHECK_STATE_VISIBLE)
2697                  {
2698                     set_state(PART:"check", "visible", 0.0);
2699                     set_state(PART:"sequence_clip", "visible", 0.0);
2700                     set_state(PART:"bg2", "visible", 0.0);
2701                  }
2702                else
2703                  {
2704                     set_state(PART:"check", "default", 0.0);
2705                     set_state(PART:"sequence_clip", "default", 0.0);
2706                     set_state(PART:"bg2", "default", 0.0);
2707                  }
2708             }
2709          }
2710          program { name: "check_on";
2711             signal: "elm,state,check,on";
2712             source: "elm";
2713             script {
2714                set_int(check_state, CHECK_STATE_VISIBLE);
2715                if (get_int(check_visible) == CHECK_SHOW)
2716                  {
2717                     run_program(PROGRAM:"check_show_effect");
2718                     run_program(PROGRAM:"check_draw_effect");
2719                  }
2720                else
2721                  {
2722                     set_state(PART:"check", "visible", 0.0);
2723                     set_state(PART:"sequence_clip", "visible", 0.0);
2724                  }
2725                set_state(PART:"bg2", "visible", 0.0);
2726                set_state(PART:"selected_bg", "visible", 0.0);
2727             }
2728          }
2729          program { name: "check_off";
2730             signal: "elm,state,check,off";
2731             source: "elm";
2732             action: STATE_SET "default" 0.0;
2733             target: "check";
2734             script {
2735                if (get_int(check_state) == CHECK_STATE_VISIBLE)
2736                  {
2737                     set_int(check_state, CHECK_STATE_DEFAULT);
2738                     set_state(PART:"check", "default", 0.0);
2739                     set_state(PART:"sequence_clip", "default", 0.0);
2740                  }
2741                set_state(PART:"bg2", "default", 0.0);
2742                set_state(PART:"selected_bg", "default", 0.0);
2743             }
2744          }
2745          program { name: "check_show_effect";
2746             action: STATE_SET "visible" 0.0;
2747             transition: LINEAR 0.233;
2748             target: "check";
2749          }
2750          program { name: "check_draw_effect";
2751             action: STATE_SET "visible" 0.0;
2752             transition: LINEAR 0.267;
2753             target: "sequence_clip";
2754          }
2755          program { name: "text_show";
2756             signal: "elm,state,text,visible";
2757             source: "elm";
2758             action: STATE_SET "visible" 0.0;
2759             target: "elm.text";
2760          }
2761          program { name: "text_hide";
2762             signal: "elm,state,text,hidden";
2763             source: "elm";
2764             action: STATE_SET "default" 0.0;
2765             target: "elm.text";
2766          }
2767          program { name: "icon_show";
2768             signal: "elm,state,icon,visible";
2769             source: "elm";
2770             action: STATE_SET "visible" 0.0;
2771             target: "elm.swallow.content";
2772          }
2773          program { name: "icon_hide";
2774             signal: "elm,state,icon,hidden";
2775             source: "elm";
2776             action: STATE_SET "default" 0.0;
2777             target: "elm.swallow.content";
2778          }
2779          program { name: "disable";
2780             signal: "elm,state,disabled";
2781             source: "elm";
2782             action: STATE_SET "disabled" 0.0;
2783             target: "disabler";
2784             target: "bg2";
2785             after: "disable_text";
2786          }
2787          program { name: "disable_text";
2788             script {
2789                new st[31];
2790                new Float:vl;
2791                get_state(PART:"elm.text", st, 30, vl);
2792                if (!strcmp(st, "visible"))
2793                  set_state(PART:"elm.text", "disabled_visible", 0.0);
2794                else
2795                  set_state(PART:"elm.text", "disabled", 0.0);
2796                get_state(PART:"elm.swallow.content", st, 30, vl);
2797                if (!strcmp(st, "visible"))
2798                  set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
2799                else
2800                  set_state(PART:"elm.swallow.content", "disabled", 0.0);
2801                get_state(PART:"check", st, 30, vl);
2802                if (!strcmp(st, "visible"))
2803                  {
2804                     set_state(PART:"check", "disabled_visible", 0.0);
2805                     set_int(check_state, CHECK_STATE_DISABLED_VISIBLE);
2806                  }
2807             }
2808          }
2809          program { name: "enable";
2810             signal: "elm,state,enabled";
2811             source: "elm";
2812             action: STATE_SET "default" 0.0;
2813             target: "disabler";
2814             target: "bg2";
2815             after: "enable_text";
2816          }
2817          program { name: "enable_text";
2818             script {
2819                new st[31];
2820                new Float:vl;
2821                get_state(PART:"elm.text", st, 30, vl);
2822                if (!strcmp(st, "disabled_visible"))
2823                  set_state(PART:"elm.text", "visible", 0.0);
2824                else
2825                  set_state(PART:"elm.text", "default", 0.0);
2826                get_state(PART:"elm.swallow.content", st, 30, vl);
2827                if (!strcmp(st, "visible"))
2828                  set_state(PART:"elm.swallow.content", "visible", 0.0);
2829                else
2830                  set_state(PART:"elm.swallow.content", "default", 0.0);
2831                get_state(PART:"check", st, 30, vl);
2832                if (!strcmp(st, "disabled_visible"))
2833                  {
2834                     set_state(PART:"check", "visible", 0.0);
2835                     set_state(PART:"sequence_clip", "visible", 0.0);
2836                     set_int(check_state, CHECK_STATE_VISIBLE);
2837                  }
2838                else
2839                  set_int(check_state, CHECK_STATE_DEFAULT);
2840             }
2841          }
2842       }
2843    }
2844
2845 #undef CHECK_STATE_DEFAULT
2846 #undef CHECK_STATE_VISIBLE
2847 #undef CHECK_STATE_DISABLED_VISIBLE
2848 #undef CHECK_STATE_DISABLED
2849
2850 #undef CHECK_HIDE
2851 #undef CHECK_SHOW