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