d7b96b3c672a0b31bd382c50153e43bea5be1c0d
[profile/ivi/efl-theme-tizen.git] / themes / widgets / genlist / genlist_macro.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 //****************************************************************************//
21 // *******************************  Default size macro **********************//
22 //**************************************************************************//
23 // if size is different for each theme, split it into each theme inc.
24
25 #define GENLIST_HEIGHT_1LINE              112
26 #define GENLIST_HEIGHT_2LINE_MAIN         54
27 #define GENLIST_HEIGHT_2LINE_SUB          42
28 #define GENLIST_HEIGHT_MULTILINE_SUB      38
29 #define GENLIST_PART_LIST_LINE_HEIGHT     1
30 #define GENLIST_HEIGHT_GROUPTITLE         46
31
32 #define GENLIST_PADDING_SIZE_DEFAULT            16
33 #define GENLIST_PADDING_SIZE_LEFT               26
34 #define GENLIST_PADDING_SIZE_RIGHT              26
35 // Dialogue group image has bottom padding (2piexl), Giant font can overlapped bottom line of image.
36 #define GENLIST_PADDING_SIZE_TOP                2
37 #define GENLIST_PADDING_SIZE_BOTTOM             2
38 // -----------------------------------------------------
39 #define GENLIST_PADDING_SIZE_TOP_2LINE          22
40 #define GENLIST_PADDING_SIZE_BOTTOM_2LINE       22
41 #define GENLIST_PADDING_SIZE_TOP_3LINE          17
42 #define GENLIST_PADDING_SIZE_BOTTOM_3LINE       17
43 #define GENLIST_PADDING_SIZE_NDEPTH             26
44
45 #define DIALOGUE_PADDING_SCROLLER         16
46 #define DIALOGUE_PADDING_SIZE_LEFT        16+20
47 #define DIALOGUE_PADDING_SIZE_RIGHT       16+20
48
49 #define GENLIST_ICON_BIG_SIZE             74
50 #define GENLIST_ICON_SMALL_SIZE           38
51 #define GENLIST_ICON_STAR_SIZE            38
52 #define GENLIST_ICON_THUMBNAIL1_SIZE      104
53 #define GENLIST_BTN_01_HEIGHT             74
54 #define GENLIST_BTN_02_SIZE               74
55 #define GENLIST_ICON_ONOFF_WIDTH          132
56 #define GENLIST_ICON_ONOFF_HEIGHT         70
57 #define GENLIST_ICON_CHECK_RADIO_SIZE     64
58 #define GENLIST_ICON_COLORBAR_SIZE        7
59 #define GENLIST_ICON_PASSWORD_SIZE        82
60
61 #define GENLIST_TREESIZE_DEFAULT          26
62
63 //#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40
64
65 //****************************************************************************//
66 // *****************  EDJE description have 24 patterns **********************//
67  //**************************************************************************//
68 // ------------------
69 // |  PART == HERE  |
70 // ------------------
71  #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
72       description { state: "default" 0.0;\
73          rel1 { \
74             relative: 0 0; \
75             to: PART; \
76          }\
77          rel2 {\
78             relative: 1 1;\
79             to: PART; \
80          }\
81          PARAM\
82       }
83
84 //      |   top  |
85 // ---------------------
86 // left |  HERE  | right
87 // ---------------------
88 //      | bottom |
89 #define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
90       description { state: "default" 0.0;\
91          rel1 { \
92             relative: 1 1; \
93             to_x: left; \
94             to_y: top; \
95          }\
96          rel2 {\
97             relative: 0 0;\
98             to_x: right;\
99             to_y: bottom;\
100          }\
101          param\
102       }
103
104 // ---------------------
105 // left |--> HERE
106 // ---------------------
107 #define GENLIST_DESCRIPTION_L( left, param ) \
108       description { state: "default" 0.0;\
109          align: 0 0.5; \
110          fixed: 1 0; \
111          rel1 { \
112             relative: 1 0; \
113             to_x: left; \
114             to_y: "base"; \
115          }\
116          rel2 { \
117             relative: 1 1;\
118             to_x: left; \
119             to_y: "base"; \
120          }\
121          param\
122       }
123
124 // ---------------------
125 //   HERE  <--| right
126 // ---------------------
127 #define GENLIST_DESCRIPTION_R( right, param ) \
128       description { state: "default" 0.0;\
129          align: 1 0.5; \
130          fixed: 1 0; \
131          rel1 { \
132             relative: 0 0; \
133             to_x: right; \
134             to_y: "base"; \
135          }\
136          rel2 {\
137             relative: 0 1;\
138             to_x: right; \
139             to_y: "base"; \
140          }\
141          param\
142       }
143
144 // --------------------------
145 // left |--> HERE  <--| right
146 // --------------------------
147 #define GENLIST_DESCRIPTION_LR( left, right, param ) \
148       description { state: "default" 0.0;\
149          rel1 { \
150             relative: 1 0; \
151             to_x: left; \
152             to_y: "base"; \
153          }\
154          rel2 {\
155             relative: 0 1;\
156             to_x: right;\
157             to_y: "base"; \
158          }\
159          param\
160       }
161
162 //   |  top     |
163 // -----------------
164 //  |  HERE  <--| right
165 // -----------------
166 //  | bottom   |
167 #define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
168       description { state: "default" 0.0;\
169          align: 1 0.5;\
170          rel1 { \
171             relative: 0 1; \
172             to_x: right; \
173             to_y: top; \
174          }\
175          rel2 {\
176             relative: 0 0;\
177             to_x: right;\
178             to_y: bottom;\
179          }\
180          param\
181       }
182
183 // left |  HERE  | right
184 // ---------------------
185 //      | bottom |
186 #define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
187       description { state: "default" 0.0;\
188          align: 0.5 1;\
189          rel1 { \
190             relative: 1 0; \
191             to_x: left; \
192             to_y: bottom; \
193          }\
194          rel2 {\
195             relative: 0 0;\
196             to_x: right;\
197             to_y: bottom;\
198          }\
199          param\
200       }
201
202 //      |   top  |
203 // ---------------------
204 // left |  HERE  | right
205 #define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
206       description { state: "default" 0.0;\
207          align: 0.5 0;\
208          rel1 { \
209             relative: 1 1; \
210             to_x: left; \
211             to_y: top; \
212          }\
213          rel2 {\
214             relative: 0 1;\
215             to_x: right;\
216             to_y: top;\
217          }\
218          param\
219       }
220
221 //      |       top  |
222 // ---------------------
223 // left | -->  HERE  |
224 #define GENLIST_DESCRIPTION_LT( left, top, param ) \
225       description { state: "default" 0.0;\
226          align: 0 0;\
227          rel1 { \
228             relative: 1 1; \
229             to_x: left; \
230             to_y: top; \
231          }\
232          rel2 {\
233             relative: 1 1;\
234             to_x: left;\
235             to_y: top;\
236          }\
237          param\
238       }
239
240 // left |  --> HERE  |
241 // ---------------------
242 //      |     bottom |
243 #define GENLIST_DESCRIPTION_LB( left, bottom, param ) \
244       description { state: "default" 0.0;\
245          align: 0 1;\
246          rel1 { \
247             relative: 1 0; \
248             to_x: left; \
249             to_y: bottom; \
250          }\
251          rel2 {\
252             relative: 1 0;\
253             to_x: left;\
254             to_y: bottom;\
255          }\
256          param\
257       }
258
259 //      |     top  |
260 // ---------------------
261 // left |--> HERE  |
262 // ---------------------
263 //      |   bottom |
264 #define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
265       description { state: "default" 0.0;\
266          align: 0 0.5;\
267          rel1 { \
268             relative: 1 1; \
269             to_x: left; \
270             to_y: top; \
271          }\
272          rel2 {\
273             relative: 1 0;\
274             to_x: left;\
275             to_y: bottom;\
276          }\
277          param\
278       }
279
280 //      |   top  |
281 // ---------------------
282 //     |  HERE <--| right
283 #define GENLIST_DESCRIPTION_RT( right, top, param ) \
284       description { state: "default" 0.0;\
285          align: 1 0;\
286          rel1 { \
287             relative: 0 1; \
288             to_x: right; \
289             to_y: top; \
290          }\
291          rel2 {\
292             relative: 0 1;\
293             to_x: right;\
294             to_y: top;\
295          }\
296          param\
297       }
298
299 //  | HERE <-- | right
300 // ---------------------
301 //  |  bottom  |
302 #define GENLIST_DESCRIPTION_RB( right, bottom, param ) \
303       description { state: "default" 0.0;\
304          align: 1 1;\
305          rel1 { \
306             relative: 0 0; \
307             to_x: right; \
308             to_y: bottom; \
309          }\
310          rel2 {\
311             relative: 0 0;\
312             to_x: right;\
313             to_y: bottom;\
314          }\
315          param\
316       }
317
318 // |   top  |
319 // ----------
320 // |  HERE  |
321 // ----------
322 // | bottom |
323 #define GENLIST_DESCRIPTION_TB( top, bottom, param ) \
324       description { state: "default" 0.0;\
325          align: 0.5 0.5;\
326          rel1 { \
327             relative: 0 1; \
328             to_y: top; \
329          }\
330          rel2 {\
331             relative: 1 0;\
332             to_y: bottom;\
333          }\
334          param\
335       }
336
337 #define GENLIST_DATA_ITEM_NORMAL \
338       data.item: "stacking" "above"; \
339       data.item: "selectraise" "on"; \
340       data.item: "flips" "elm.flip.icon elm.flip.content"; \
341       data.item: "treesize" GENLIST_TREESIZE_DEFAULT;
342
343 /*****************************************************************************/
344 /******************************* Dialogue group ******************************/
345 /*****************************************************************************/
346 #define GENLIST_DIALOGUE_INHERIT_BODY( _PARTS ) \
347       data.item: "treesize" 0; \
348       GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
349       parts { \
350          GENLIST_PART_BG_IMAGE_DIALOGUE \
351          GENLIST_PART_BOTTOM_LINE_OFF \
352          GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) \
353          GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT ) \
354          _PARTS \
355          GENLIST_PART_FLIP \
356       }
357
358 //****************************************************************************//
359 // ****************************** BG Image **********************************//
360 //****************************************************************************//
361 #define GENLIST_IMAGE_GROUPINDEX \
362       images { \
363          image: "00_index list_bg.png" COMP; \
364       }
365 #define GENLIST_PART_INDEX_BG_IMAGE \
366          part { name: "bg_image"; \
367             type: RECT; \
368             scale: 1; \
369             mouse_events: 0; \
370             description { state: "default" 0.0; \
371                color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
372             } \
373             description { state: "selected" 0.0; \
374                inherit: "default" 0.0; \
375                color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
376             } \
377             GENLIST_DESCRIPTION_FADE \
378          }
379
380 #define GENLIST_PART_BG_IMAGE \
381          part { name: "bg_image_depth_clip"; \
382             type: RECT; \
383             scale: 1; \
384             mouse_events: 0; \
385             description { state: "default" 0.0; \
386                color: 0 0 0 0; \
387             } \
388             description { state: "2depth" 0.0; \
389                color: 0 0 0 0; \
390             } \
391          } \
392          part { name: "bg_image"; \
393             type: RECT; \
394             scale: 1; \
395             mouse_events: 0; \
396             description { state: "default" 0.0; \
397                color: GENLIST_LIST_BG_COLOR; \
398             } \
399             description { state: "selected" 0.0; \
400                color: GENLIST_LIST_PRESS_COLOR; \
401             } \
402             description { state: "disabled" 0.0; \
403                color: GENLIST_LIST_DIM_COLOR; \
404             } \
405             GENLIST_DESCRIPTION_FADE \
406          }
407
408 #define GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
409          images { \
410             image : "00_list_group_bg.png" COMP; \
411             image : "00_list_group_bg_top.png" COMP; \
412             image : "00_list_group_bg_center.png" COMP; \
413             image : "00_list_group_bg_bottom.png" COMP; \
414             image : "00_list_group_bg_press.png" COMP; \
415             image : "00_list_group_bg_top_press.png" COMP; \
416             image : "00_list_group_bg_center_press.png" COMP; \
417             image : "00_list_group_bg_bottom_press.png" COMP; \
418          }
419
420 #define GENLIST_PARAM_BG_IMAGE_DIALOGUE \
421          rel1 { \
422             to_x: "bg_image_left"; \
423             relative: 1 0; \
424          } \
425          rel2 { \
426             to_x: "bg_image_right"; \
427             relative: 0 1; \
428          }
429
430 #define GENLIST_PART_BG_IMAGE_DIALOGUE \
431          part { name: "bg_image_depth_clip"; \
432             type: RECT; \
433             scale: 1; \
434             mouse_events: 0; \
435             description { state: "default" 0.0; \
436                color: 255 255 255 255; \
437             } \
438             description { state: "2depth" 0.0; \
439                color: 220 218 211 255; \
440             } \
441          } \
442          part { name: "bg_image_left"; \
443             type: SPACER; \
444             scale: 1; \
445             mouse_events: 0; \
446             description { state: "default" 0.0; \
447                min: 16 0; \
448                max: 16 -1; \
449                fixed: 1 0; \
450                align: 0 0.5; \
451                rel2.relative: 0 1; \
452             } \
453          } \
454          part { name: "bg_image_right"; \
455             type: SPACER; \
456             scale: 1; \
457             mouse_events: 0; \
458             description { state: "default" 0.0; \
459                min: 16 0; \
460                max: 16 -1; \
461                fixed: 1 0; \
462                align: 1 0.5; \
463                rel1.relative: 1 0; \
464             } \
465             description { state: "editmode" 0.0; \
466                inherit: "default" 0.0; \
467                min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
468                max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
469             } \
470          } \
471          part { name: "bg_image"; \
472             clip_to: "bg_image_depth_clip"; \
473             type: IMAGE; \
474             scale: 1; \
475             mouse_events: 0; \
476             description { state: "default" 0.0; \
477                color: 255 255 255 255; \
478                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
479                image { \
480                   normal: "00_list_group_bg.png"; \
481                   border: 15 15 55 55; \
482                   border_scale: 1; \
483                } \
484             } \
485             description { state: "selected" 0.0; \
486                color: 255 255 255 255; \
487                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
488                image { \
489                   normal: "00_list_group_bg_press.png"; \
490                   border: 15 15 55 55; \
491                   border_scale: 1; \
492                } \
493             } \
494             description { state: "disabled" 0.0; \
495                inherit: "default"; \
496                color: 255 255 255 255; \
497             } \
498             description { state: "top" 0.0; \
499                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
500                image { \
501                   normal: "00_list_group_bg_top.png"; \
502                   border: 15 15 55 2; \
503                   border_scale: 1; \
504                } \
505             } \
506             description { state: "top_selected" 0.0; \
507                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
508                image { \
509                   normal: "00_list_group_bg_top_press.png"; \
510                   border: 15 15 55 2; \
511                   border_scale: 1; \
512                } \
513             } \
514             description { state: "top_disabled" 0.0; \
515                inherit: "top"; \
516             } \
517             description { state: "center" 0.0; \
518                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
519                image { \
520                   normal: "00_list_group_bg_center.png"; \
521                   border: 15 15 2 2; \
522                   border_scale: 1; \
523                } \
524             } \
525             description { state: "center_selected" 0.0; \
526                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
527                image { \
528                   normal: "00_list_group_bg_center_press.png"; \
529                   border: 15 15 2 2; \
530                   border_scale: 1; \
531                } \
532             } \
533             description { state: "center_disabled" 0.0; \
534                inherit: "center"; \
535             } \
536             description { state: "bottom" 0.0; \
537                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
538                image { \
539                   normal: "00_list_group_bg_bottom.png"; \
540                   border: 15 15 2 55; \
541                   border_scale: 1; \
542                } \
543             } \
544             description { state: "bottom_selected" 0.0; \
545                GENLIST_PARAM_BG_IMAGE_DIALOGUE \
546                image { \
547                   normal: "00_list_group_bg_bottom_press.png"; \
548                   border: 15 15 2 10; \
549                   border_scale: 1; \
550                } \
551             } \
552             description { state: "bottom_disabled" 0.0; \
553                inherit: "bottom"; \
554             } \
555             GENLIST_DESCRIPTION_FADE \
556          }
557
558 //****************************************************************************//
559 // ****************************** BASE  ********************************//
560 //****************************************************************************//
561 #define GENLIST_PART_BASE \
562          part { name: "base"; \
563             type: RECT; \
564             repeat_events: 1; \
565             scale: 1; \
566             description { state: "default" 0.0; \
567                align: 0.5 0.5; \
568                color: 0 0 0 0; \
569             } \
570          } \
571          GENLIST_PART_PERSPECTIVE_POINT
572
573 #define GENLIST_PART_BASE_REORDER \
574          part { name: "base"; \
575             type: RECT; \
576             repeat_events: 1; \
577             scale: 1; \
578             description { state: "default" 0.0; \
579                align: 0.5 0.5; \
580                color: 0 0 0 0; \
581                rel1 { \
582                   relative: 1 0; \
583                   to_x: "reorder.padding.left"; \
584                } \
585                rel2 { \
586                   relative: 0 1; \
587                   to_x: "reorder.padding.right"; \
588                } \
589             } \
590          } \
591          part { name: "reorder.padding.left"; \
592             type: SPACER; \
593             scale: 1; \
594             mouse_events: 0; \
595             description { state: "default" 0.0; \
596                rel2.relative: 0 1; \
597                align: 0 0.5; \
598             } \
599             description { state: "reorder" 0.0; \
600                inherit: "default" 0.0; \
601                min: 16 0; \
602                max: 16 -1; \
603             } \
604          } \
605          part { name: "reorder.padding.right"; \
606             type: SPACER; \
607             scale: 1; \
608             mouse_events: 0; \
609             description { state: "default" 0.0; \
610                rel1.relative: 1 0; \
611                align: 1 0.5; \
612             } \
613             description { state: "reorder" 0.0; \
614                inherit: "default" 0.0; \
615                min: 16 0; \
616                max: 16 -1; \
617             } \
618          } \
619          GENLIST_PART_PERSPECTIVE_POINT
620
621 //****************************************************************************//
622 // ****************************** LINE ********************************//
623 //****************************************************************************//
624 #define GENLIST_PART_BOTTOM_LINE \
625          part { name: "bottom_line"; \
626             type: RECT; \
627             scale: 1; \
628             mouse_events: 0; \
629             description { state: "default" 0.0; \
630                min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
631                max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
632                fixed: 0 1; \
633                align: 0.5 1; \
634                color: GENLIST_LIST_LINE1_COLOR; \
635                rel1.to: "bottom_line2"; \
636                rel2.to: "bottom_line2"; \
637                rel2.relative: 1 0; \
638             } \
639             description { state: "reorder" 0.0; \
640                inherit: "default" 0.0; \
641                visible: 0; \
642             } \
643             description { state: "selected" 0.0; \
644                inherit: "default" 0.0; \
645                color: GENLIST_LIST_PRESS_COLOR; \
646             } \
647             description { state: "disabled" 0.0; \
648                inherit: "default" 0.0; \
649                color: GENLIST_LIST_DIM_COLOR; \
650             } \
651             GENLIST_DESCRIPTION_FADE \
652          } \
653          part { name: "bottom_line2"; \
654             type: RECT; \
655             scale: 1; \
656             mouse_events: 0; \
657             description { state: "default" 0.0; \
658                min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
659                max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
660                fixed: 0 1; \
661                align: 0.5 1; \
662                color: GENLIST_LIST_LINE2_COLOR; \
663                rel1.to_x: "elm.padding.left"; \
664                rel1.relative: 1 0; \
665                rel2.to_x: "elm.padding.right"; \
666                rel2.relative: 0 1; \
667             } \
668             description { state: "selected" 0.0; \
669                inherit: "default" 0.0; \
670                color: GENLIST_LIST_PRESS_COLOR; \
671             } \
672             description { state: "reorder" 0.0; \
673                inherit: "default" 0.0; \
674                visible: 0; \
675             } \
676             description { state: "disabled" 0.0; \
677                inherit: "default" 0.0; \
678                color: GENLIST_LIST_DIM_COLOR; \
679             } \
680             GENLIST_DESCRIPTION_FADE \
681          }
682
683 #define GENLIST_PART_BOTTOM_LINE_OFF \
684          part { name: "bottom_line"; \
685             type: RECT; \
686             scale: 1; \
687             mouse_events: 0; \
688             description { state: "default" 0.0; \
689                min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
690                max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
691                fixed: 0 1; \
692                align: 0.5 1; \
693                rel1.to: "bottom_line2"; \
694                rel2.to: "bottom_line2"; \
695                rel2.relative: 1 0; \
696                visible: 0; \
697             } \
698             GENLIST_DESCRIPTION_FADE \
699          } \
700          part { name: "bottom_line2"; \
701             type: RECT; \
702             scale: 1; \
703             mouse_events: 0; \
704             description { state: "default" 0.0; \
705                min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
706                max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
707                fixed: 0 1; \
708                align: 0.5 1; \
709                rel1.to_x: "elm.padding.left"; \
710                rel1.relative: 1 0; \
711                rel2.to_x: "elm.padding.right"; \
712                rel2.relative: 0 1; \
713                visible: 0; \
714             } \
715             GENLIST_DESCRIPTION_FADE \
716          }
717
718 #define GENLIST_PART_DIVIDER_MARGIN \
719          GENLIST_PART_SPACER("elm.padding.divider.top", \
720             GENLIST_DESCRIPTION_ENVELOP("base", \
721                align: 0.5 0; \
722                min: 0 30; \
723                max: -1 30; \
724                fixed: 0 1; \
725                rel2.relative: 1 0; \
726             ) \
727          ) \
728          GENLIST_PART_SPACER("elm.padding.divider.bottom", \
729             GENLIST_DESCRIPTION_ENVELOP("base", \
730                align: 0.5 1; \
731                min: 0 30; \
732                max: -1 30; \
733                fixed: 0 1; \
734                rel1.relative: 0 1; \
735             ) \
736          ) \
737
738 #define GENLIST_PART_DIVIDER_L(LEFT) \
739          GENLIST_PART_DIVIDER_MARGIN \
740          GENLIST_PART_RECT("elm.divider1", \
741             mouse_events: 0; \
742             GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
743                min: 1 0; \
744                max: 1 -1; \
745                fixed: 1 0; \
746                color: GENLIST_LIST_DIVIDER1_COLOR; \
747             ) \
748             GENLIST_DESCRIPTION_FADE \
749          ) \
750          GENLIST_PART_RECT("elm.divider2", \
751             mouse_events: 0; \
752             GENLIST_DESCRIPTION_LTB("elm.divider1", "elm.padding.divider.top", "elm.padding.divider.bottom", \
753                min: 1 0; \
754                max: 1 -1; \
755                fixed: 1 0; \
756                color: GENLIST_LIST_DIVIDER2_COLOR; \
757             ) \
758             GENLIST_DESCRIPTION_FADE \
759          )
760
761 #define GENLIST_PART_DIVIDER_R(RIGHT) \
762          GENLIST_PART_DIVIDER_MARGIN \
763          GENLIST_PART_RECT("elm.divider1", \
764             mouse_events: 0; \
765             GENLIST_DESCRIPTION_RTB("elm.divider2", "elm.padding.divider.top", "elm.padding.divider.bottom", \
766                min: 1 0; \
767                max: 1 -1; \
768                fixed: 1 0; \
769                color: GENLIST_LIST_DIVIDER1_COLOR; \
770             ) \
771             GENLIST_DESCRIPTION_FADE \
772          ) \
773          GENLIST_PART_RECT("elm.divider2", \
774             mouse_events: 0; \
775             GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
776                min: 1 0; \
777                max: 1 -1; \
778                fixed: 1 0; \
779                color: GENLIST_LIST_DIVIDER2_COLOR; \
780             ) \
781             GENLIST_DESCRIPTION_FADE \
782          )
783
784 #define GENLIST_PART_CENTER_LINE_LT(LEFT, TOP) \
785          GENLIST_PART_SPACER("elm.padding.divider.left", \
786             GENLIST_DESCRIPTION_L(LEFT, \
787                min: 16 0; \
788                max: 16 -1; \
789                fixed: 1 0; \
790             ) \
791          ) \
792          GENLIST_PART_SPACER("elm.padding.divider.right", \
793             GENLIST_DESCRIPTION_ENVELOP("base", \
794                min: 16 0; \
795                max: 16 -1; \
796                fixed: 1 0; \
797                align: 1 0.5; \
798                rel1.relative: 1 0; \
799             ) \
800          ) \
801          GENLIST_PART_RECT("center_line", \
802             mouse_events: 0; \
803             GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", TOP, \
804                min: 0 1; \
805                max: -1 1; \
806                fixed: 0 1; \
807                color: GENLIST_LIST_DIVIDER1_COLOR; \
808             ) \
809             GENLIST_DESCRIPTION_FADE \
810          ) \
811          GENLIST_PART_RECT("center_line2", \
812             GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", "center_line", \
813                min: 0 1; \
814                max: -1 1; \
815                fixed: 0 1; \
816                color: GENLIST_LIST_DIVIDER2_COLOR; \
817             ) \
818             GENLIST_DESCRIPTION_FADE \
819          )
820
821 #define GENLIST_PART_COLORBAR \
822          GENLIST_PART_SPACER("elm.padding.colorbar.top", \
823              GENLIST_DESCRIPTION_ENVELOP("base", \
824                align: 0.5 0; \
825                fixed: 0 1; \
826                min: 0 4; \
827                max: -1 4; \
828                rel2.relative: 1 0; \
829              ) \
830          ) \
831          GENLIST_PART_SPACER("elm.padding.colorbar.bottom", \
832              GENLIST_DESCRIPTION_ENVELOP("base", \
833                align: 0.5 1; \
834                fixed: 0 1; \
835                min: 0 4; \
836                max: -1 4; \
837                rel1.relative: 0 1; \
838              ) \
839          ) \
840          GENLIST_PART_ICON("elm.swallow.colorbar", \
841             GENLIST_DESCRIPTION_LTB("bg_image", "elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \
842                min: GENLIST_ICON_COLORBAR_SIZE 0; \
843                max: GENLIST_ICON_COLORBAR_SIZE -1; \
844                fixed: 1 0; \
845                rel1.relative: 0 1; \
846                rel2.relative: 0 0; \
847             ) \
848             GENLIST_DESCRIPTION_FADE \
849          )
850
851 //****************************************************************************//
852 //********************************* PADDING **********************************//
853 //****************************************************************************//
854 #define GENLIST_PART_EXPANDED_PAD \
855          part { name: "elm.swallow.pad"; \
856             type: SWALLOW; \
857             scale: 1; \
858             mouse_events: 0; \
859             description { state: "default" 0.0; \
860                visible: 0; \
861                min: 0 0; \
862                fixed: 1 0; \
863                align: 0.0 0.5; \
864                rel1.to: "base"; \
865                rel2.to: "base"; \
866                rel2.relative: 0.0 1.0; \
867             } \
868          } \
869
870 #define GENLIST_PART_PADDING( NAME, SIZE, REL1, REL2 ) \
871       GENLIST_PART_SPACER(NAME, \
872          description { state: "default" 0.0; \
873             min: SIZE 0; \
874             max: SIZE -1; \
875             fixed: 1 0; \
876             align: 0.5 0.5; \
877             rel1 { \
878                relative: REL1; \
879                to: "base"; \
880             } \
881             rel2 { \
882                relative: REL2; \
883                to: "base"; \
884             } \
885          } \
886       )
887
888 #define GENLIST_PART_PADDING_LEFT \
889          GENLIST_PART_EXPANDED_PAD \
890          GENLIST_PART_SPACER("elm.padding.left", \
891             GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
892                min: GENLIST_PADDING_SIZE_LEFT 0; \
893                max: GENLIST_PADDING_SIZE_LEFT -1; \
894                fixed: 1 0; \
895             ) \
896             description { state: "decorate" 0.0; \
897                inherit: "default" 0.0; \
898                min: 0 0; \
899                max: 0 0; \
900             } \
901          )
902
903 #define GENLIST_PART_PADDING_LEFT_SIZE( SIZE ) \
904          GENLIST_PART_EXPANDED_PAD \
905          GENLIST_PART_SPACER("elm.padding.left", \
906             GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
907                min: SIZE 0; \
908                max: SIZE -1; \
909                fixed: 1 0; \
910             ) \
911             description { state: "decorate" 0.0; \
912                inherit: "default" 0.0; \
913                min: 0 0; \
914                max: 0 0; \
915             } \
916          )
917
918 #define GENLIST_PART_EDITBTN \
919          part { name: "elm.icon.edit"; \
920             type: SWALLOW; \
921             scale: 1; \
922             GENLIST_DESCRIPTION_R("elm.padding.edit.right", \
923                fixed: 1 1; \
924                visible: 0; \
925                min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
926                max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
927             ) \
928             description { state: "editmode" 0.0; \
929                inherit: "default" 0.0; \
930                visible: 1; \
931             } \
932          } \
933          GENLIST_PART_SPACER("elm.padding.edit.right", \
934             description { state: "default" 0.0; \
935                fixed: 1 0; \
936                align: 1.0 0.5; \
937                rel1.to: "base"; \
938                rel2.to: "base"; \
939                rel1.relative: 1 0; \
940                min: GENLIST_PADDING_SIZE_RIGHT 0; \
941                max: GENLIST_PADDING_SIZE_RIGHT -1; \
942             } \
943          )
944
945 #define GENLIST_PART_PADDING_RIGHT \
946          GENLIST_PART_SPACER("elm.padding.right", \
947             description { state: "default" 0.0; \
948                min: GENLIST_PADDING_SIZE_RIGHT 0; \
949                max: GENLIST_PADDING_SIZE_RIGHT -1; \
950                fixed: 1 0; \
951                align: 1.0 0.5; \
952                rel1.to: "base"; \
953                rel2.to: "base"; \
954                rel1.relative: 1 0; \
955             } \
956             description { state: "decorate" 0.0; \
957                inherit: "default" 0.0; \
958                min: 0 0; \
959                max: 0 0; \
960             } \
961          )
962
963 #define GENLIST_PART_PADDING_RIGHT_SIZE( SIZE ) \
964          GENLIST_PART_SPACER("elm.padding.right", \
965             description { state: "default" 0.0; \
966                min: SIZE 0; \
967                max: SIZE -1; \
968                fixed: 1 0; \
969                align: 1.0 0.5; \
970                rel1.to: "base"; \
971                rel2.to: "base"; \
972                rel1.relative: 1 0; \
973             } \
974             description { state: "decorate" 0.0; \
975                inherit: "default" 0.0; \
976                min: 0 0; \
977                max: 0 0; \
978             } \
979          )
980
981 #define GENLIST_PART_PADDING_RIGHT_EDIT \
982          GENLIST_PART_SPACER("elm.padding.right", \
983             description { state: "default" 0.0; \
984                min: GENLIST_PADDING_SIZE_RIGHT 0; \
985                max: GENLIST_PADDING_SIZE_RIGHT -1; \
986                fixed: 1 0; \
987                align: 1.0 0.5; \
988                rel1.to: "base"; \
989                rel2.to: "base"; \
990                rel1.relative: 1 0; \
991             } \
992             description { state: "editmode" 0.0; \
993                inherit: "default" 0.0; \
994                min: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) 0; \
995                max: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) -1; \
996             } \
997             description { state: "decorate" 0.0; \
998                inherit: "default" 0.0; \
999                min: 0 0; \
1000                max: 0 0; \
1001             } \
1002          ) \
1003          GENLIST_PART_EDITBTN
1004
1005 #define GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( SIZE ) \
1006          GENLIST_PART_SPACER("elm.padding.right", \
1007             description { state: "default" 0.0; \
1008                min: SIZE 0; \
1009                max: SIZE -1; \
1010                fixed: 1 0; \
1011                align: 1.0 0.5; \
1012                rel1.to: "base"; \
1013                rel2.to: "base"; \
1014                rel1.relative: 1 0; \
1015             } \
1016             description { state: "editmode" 0.0; \
1017                inherit: "default" 0.0; \
1018                min: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) 0; \
1019                max: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) -1; \
1020             } \
1021             description { state: "decorate" 0.0; \
1022                inherit: "default" 0.0; \
1023                min: 0 0; \
1024                max: 0 0; \
1025             } \
1026          ) \
1027          GENLIST_PART_EDITBTN
1028
1029 #define GENLIST_PART_PADDING_TOP \
1030          GENLIST_PART_SPACER("elm.padding.top", \
1031             description { \
1032                state: "default" 0.0; \
1033                min: 0 GENLIST_PADDING_SIZE_TOP; \
1034                max: -1 GENLIST_PADDING_SIZE_TOP; \
1035                fixed: 0 1; \
1036                rel1.to: "base"; \
1037                rel2.to: "base"; \
1038                rel2.relative: 1.0 0.0; \
1039                align: 0.5 0.0; \
1040             } \
1041          )
1042
1043 #define GENLIST_PART_PADDING_TOP_2LINE \
1044          GENLIST_PART_SPACER("elm.padding.top", \
1045             description { \
1046                state: "default" 0.0; \
1047                min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
1048                max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
1049                fixed: 0 1; \
1050                rel1.to: "base"; \
1051                rel2.to: "base"; \
1052                rel2.relative: 1.0 0.0; \
1053                align: 0.5 0.0; \
1054             } \
1055          )
1056
1057 #define GENLIST_PART_PADDING_TOP_SIZE( SIZE ) \
1058          GENLIST_PART_SPACER("elm.padding.top", \
1059             description { \
1060                state: "default" 0.0; \
1061                min: 0 SIZE; \
1062                max: -1 SIZE; \
1063                fixed: 0 1; \
1064                rel1.to: "base"; \
1065                rel2.to: "base"; \
1066                rel2.relative: 1.0 0.0; \
1067                align: 0.5 0.0; \
1068             } \
1069          )
1070
1071 #define GENLIST_PART_PADDING_BOTTOM \
1072          GENLIST_PART_SPACER("elm.padding.bottom", \
1073             description { state: "default" 0.0; \
1074                min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
1075                max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
1076                fixed: 0 1; \
1077                rel1.to: "base"; \
1078                rel2.to: "base"; \
1079                rel1.relative: 0.0 1.0; \
1080                align: 0.5 1.0; \
1081             } \
1082          )
1083
1084 #define GENLIST_PART_PADDING_BOTTOM_2LINE \
1085          GENLIST_PART_SPACER("elm.padding.bottom", \
1086             description { state: "default" 0.0; \
1087                min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
1088                max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
1089                fixed: 0 1; \
1090                rel1.to: "base"; \
1091                rel2.to: "base"; \
1092                rel1.relative: 0.0 1.0; \
1093                align: 0.5 1.0; \
1094             } \
1095          )
1096
1097 #define GENLIST_PART_PADDING_BOTTOM_SIZE( SIZE ) \
1098          GENLIST_PART_SPACER("elm.padding.bottom", \
1099             description { state: "default" 0.0; \
1100                min: 0 SIZE; \
1101                max: -1 SIZE; \
1102                fixed: 0 1; \
1103                rel1.to: "base"; \
1104                rel2.to: "base"; \
1105                rel1.relative: 0.0 1.0; \
1106                align: 0.5 1.0; \
1107             } \
1108          )
1109
1110 #define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
1111          GENLIST_PART_SPACER(NAME, \
1112             description { state: "default" 0.0; \
1113                fixed: 1 0; \
1114                min: GENLIST_PADDING_SIZE_DEFAULT 0; \
1115                max: GENLIST_PADDING_SIZE_DEFAULT -1; \
1116                align: 1 0.5; \
1117                rel1 { \
1118                   relative: 0 0; \
1119                   to_x: RIGHT; \
1120                } \
1121                rel2 { \
1122                   relative: 0 1; \
1123                   to_x: RIGHT; \
1124                } \
1125             } \
1126          )
1127
1128 #define GENLIST_PART_PADDING_R_SIZE( NAME, RIGHT, SIZE ) \
1129          GENLIST_PART_SPACER(NAME, \
1130             description { state: "default" 0.0; \
1131                fixed: 1 0; \
1132                min: SIZE 0; \
1133                max: SIZE -1; \
1134                align: 1 0.5; \
1135                rel1 { \
1136                   relative: 0 0; \
1137                   to_x: RIGHT; \
1138                } \
1139                rel2 { \
1140                   relative: 0 1; \
1141                   to_x: RIGHT; \
1142                } \
1143             } \
1144          )
1145
1146 #define GENLIST_PART_PADDING_L( NAME, LEFT ) \
1147          GENLIST_PART_SPACER(NAME, \
1148             description { state: "default" 0.0; \
1149                fixed: 1 0; \
1150                min: GENLIST_PADDING_SIZE_DEFAULT 0; \
1151                max: GENLIST_PADDING_SIZE_DEFAULT -1; \
1152                align: 0 0.5; \
1153                rel1 { \
1154                   relative: 1 0; \
1155                   to_x: LEFT; \
1156                } \
1157                rel2 { \
1158                   relative: 1 1; \
1159                   to_x: LEFT; \
1160                } \
1161             } \
1162          )
1163
1164 #define GENLIST_PART_PADDING_L_SIZE( NAME, LEFT, SIZE ) \
1165          GENLIST_PART_SPACER(NAME, \
1166             description { state: "default" 0.0; \
1167                fixed: 1 0; \
1168                min: SIZE 0; \
1169                max: SIZE -1; \
1170                align: 0 0.5; \
1171                rel1 { \
1172                   relative: 1 0; \
1173                   to_x: LEFT; \
1174                } \
1175                rel2 { \
1176                   relative: 1 1; \
1177                   to_x: LEFT; \
1178                } \
1179             } \
1180          )
1181
1182
1183 #define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
1184          GENLIST_PART_SPACER(NAME, \
1185             description { state: "default" 0.0; \
1186                min: 0 SIZE; \
1187                max: -1 SIZE; \
1188                fixed: 0 1; \
1189                align: 0.5 0; \
1190                rel1 { \
1191                   relative: 0 1; \
1192                   to: TOP; \
1193                } \
1194                rel2 { \
1195                   relative: 1 1; \
1196                   to: TOP; \
1197                } \
1198             } \
1199          )
1200
1201 #define GENLIST_PART_PADDING_B_SIZE( NAME, BOTTOM, SIZE ) \
1202          GENLIST_PART_SPACER(NAME, \
1203             description { state: "default" 0.0; \
1204                min: 0 SIZE; \
1205                max: -1 SIZE; \
1206                fixed: 0 1; \
1207                align: 0.5 1; \
1208                rel1 { \
1209                   relative: 0.5 0; \
1210                   to: BOTTOM; \
1211                } \
1212                rel2 { \
1213                   relative: 0.5 0; \
1214                   to: BOTTOM; \
1215                } \
1216             } \
1217          )
1218
1219 #define GENLIST_PART_PERSPECTIVE_POINT \
1220          GENLIST_PART_RECT("point", \
1221             description { \
1222                state: "default" 0.0; \
1223                color: 0 0 0 0; \
1224                rel1 { relative: 0.0 0.0; } \
1225                rel2 { relative: 1.0 0.0; } \
1226             } \
1227          )
1228
1229 #define GENLIST_DESCRIPTION_ROTATE( param_x, param_y, param_z ) \
1230    description { state: "map_contracted" 0.0; \
1231       inherit: "default" 0.0; \
1232       map { \
1233          perspective: "point"; \
1234          on: 1; \
1235          smooth: 1; \
1236          perspective_on: 1; \
1237          backface_cull: 1; \
1238          rotation { \
1239             center: "point"; \
1240             x: param_x; \
1241             y: param_y; \
1242             z: param_z; \
1243          } \
1244       } \
1245    } \
1246    description { state: "map_expanded" 0.0; \
1247       inherit: "default" 0.0; \
1248       map { \
1249          perspective: "point"; \
1250          on: 1; \
1251          smooth: 1; \
1252          perspective_on: 1; \
1253          backface_cull: 1; \
1254          rotation { \
1255             center: "point"; \
1256             x: 0; \
1257             y: 0; \
1258             z: 0; \
1259          } \
1260       } \
1261    } \
1262    description { \
1263       state: "hide" 0.0; \
1264       inherit: "default" 0.0; \
1265       visible: 0; \
1266    }
1267
1268 #define GENLIST_PROGRAM_ROTATE( TARGET ) \
1269    program { name: "map_expand_start"; \
1270       signal: "flip_item"; \
1271       action: STATE_SET "map_contracted" 0.0; \
1272       target: "bg_image"; \
1273       TARGET \
1274       after: "map_expanding"; \
1275    } \
1276    program { name: "map_expanding"; \
1277       action: STATE_SET "hide" 0.0; \
1278       transition: LINEAR 0.2; \
1279       target: "bg_image"; \
1280       TARGET \
1281       after: "map_expand_end"; \
1282    } \
1283    program { name: "map_expand_end"; \
1284       action: STATE_SET "default" 0.0; \
1285       target: "bg_image"; \
1286       TARGET \
1287    } \
1288    program { name: "map_contract_start"; \
1289       signal: "elm,state,contract_flip"; \
1290       action: STATE_SET "map_expanded" 0.0; \
1291       target: "bg_image"; \
1292       TARGET \
1293       after: "map_contracting"; \
1294    } \
1295    program { name: "map_contracting"; \
1296       action: STATE_SET "map_contracted" 0.0; \
1297       transition: LINEAR 0.3; \
1298       target: "bg_image"; \
1299       TARGET \
1300       after: "map_contract_end"; \
1301    } \
1302    program { name: "map_contract_end"; \
1303       action: STATE_SET "hide" 0.0; \
1304       target: "bg_image"; \
1305       TARGET \
1306    }
1307
1308 // FIXME: swallow part cannot be fade out ???
1309 #define GENLIST_DESCRIPTION_FADE_ICON \
1310    description { state: "fadeout" 0.0; \
1311       inherit: "default" 0.0; \
1312       color: 0 0 0 10; \
1313       visible: 0; \
1314    } \
1315    description { state: "fadein" 0.0; \
1316       inherit: "default" 0.0; \
1317    } \
1318
1319 #define GENLIST_DESCRIPTION_FADE \
1320    description { state: "fadeout" 0.0; \
1321       inherit: "default" 0.0; \
1322       color: 255 255 255 10; \
1323    } \
1324    description { state: "fadein" 0.0; \
1325       inherit: "default" 0.0; \
1326    } \
1327
1328 // FIXME: bg_color_change is used temporary
1329 #define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \
1330    program { name: "bg_color_change"; \
1331       signal: "bg_color_change"; \
1332       action: STATE_SET "2depth" 0.0; \
1333       target: "bg_image_depth_clip"; \
1334       after: "expand_start_fade"; \
1335    } \
1336    program { name: "expand_start_fade"; \
1337       signal: "flip_item"; \
1338       action: STATE_SET "fadeout" 0.0; \
1339       target: "bg_image"; \
1340       TARGET \
1341       after: "expand_end_fade"; \
1342    } \
1343    program { name: "expand_end_fade"; \
1344       action: STATE_SET "default" 0.0; \
1345       transition: DECELERATE 0.3; \
1346       target: "bg_image"; \
1347       TARGET \
1348    } \
1349    program { name: "contract_fade"; \
1350       signal: "elm,state,contract_flip"; \
1351       action: STATE_SET "fadein" 0.0; \
1352       target: "bg_image"; \
1353       TARGET \
1354       after: "contract_end_fade"; \
1355    } \
1356    program { name: "contract_end_fade"; \
1357       action: STATE_SET "fadeout" 0.0; \
1358       transition: ACCELERATE 0.3; \
1359       target: "bg_image"; \
1360       TARGET \
1361    }
1362
1363 // FIXME: This do need now. I should find why this is used in genlist
1364 #if 0
1365          program { \
1366             name: "show"; \
1367             signal: "elm,state,show"; \
1368             action: STATE_SET "default" 0.0; \
1369             TARGET \
1370          } \
1371          program { \
1372             name: "hide"; \
1373             signal: "elm,state,hide"; \
1374             action: STATE_SET "hide" 0.0; \
1375             TARGET \
1376          }
1377 #endif
1378
1379 #define GENLIST_PROGRAM_EXPAND_ROOT( TARGET ) \
1380          program { \
1381             name: "go_expanded"; \
1382             signal: "elm,state,expanded"; \
1383             source: "elm"; \
1384             action: STATE_SET "expand_opened" 0.0; \
1385             TARGET \
1386          } \
1387          program { \
1388             name: "go_contracted"; \
1389             signal: "elm,state,contracted"; \
1390             source: "elm"; \
1391             action: STATE_SET "default" 0.0; \
1392             TARGET \
1393          } \
1394
1395
1396
1397 #define GENLIST_PROGRAM_EXPANDABLE( SRC ) \
1398         program { \
1399             name: "expand"; \
1400             signal: "mouse,up,1"; \
1401             SRC \
1402             action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
1403          } \
1404
1405 // 2.2.7 Genlist_Edit mode (Rename)
1406 // FIXME: padding is not needed when swallow content is NULL.
1407 // But how can edje kwno existence of swallow content?
1408 #define GENLIST_PART_FLIP \
1409          part { name: "elm.flip.event_block";\
1410             type: RECT;\
1411             mouse_events: 0; \
1412             repeat_events: 0;\
1413             description { state: "default" 0.0;\
1414                visible: 0; \
1415             } \
1416             description { state: "flip_enabled" 0.0; \
1417                inherit: "default" 0.0; \
1418                visible: 1; \
1419                color: GENLIST_LIST_BG_COLOR;\
1420             }\
1421          }\
1422          part { name: "elm.flip.padding.left"; \
1423             type: RECT; \
1424             scale: 1; \
1425             description { state: "default" 0.0; \
1426                min: 26 0; \
1427                max: 26 -1; \
1428                fixed: 1 0; \
1429                visible: 0; \
1430                align: 0 0.5; \
1431                rel1 { \
1432                   relative: 0 0; \
1433                   to: "base"; \
1434                } \
1435                rel2 { \
1436                   relative: 0 1; \
1437                   to: "base"; \
1438                } \
1439             } \
1440          } \
1441          part { name: "elm.flip.padding.right"; \
1442             type: RECT; \
1443             scale: 1; \
1444             description { state: "default" 0.0; \
1445                min: 26 0; \
1446                max: 26 -1; \
1447                fixed: 1 0; \
1448                visible: 0; \
1449                align: 1 0.5; \
1450                rel1 { \
1451                   relative: 1 0; \
1452                   to: "base"; \
1453                } \
1454                rel2 { \
1455                   relative: 1 1; \
1456                   to: "base"; \
1457                } \
1458             } \
1459          } \
1460          part { name: "elm.flip.content"; \
1461             type: SWALLOW; \
1462             scale: 1; \
1463             GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \
1464                aspect: 1 1; visible: 0; ) \
1465             description { state: "flip_enabled" 0.0; \
1466                inherit: "default" 0.0; \
1467                visible: 1; \
1468             } \
1469          } \
1470          GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
1471          GENLIST_PART_ICON( "elm.flip.icon", \
1472             GENLIST_DESCRIPTION_R("elm.flip.padding.right", \
1473                visible: 0; \
1474                aspect: 1 1; \
1475                align: 1 0.5; \
1476                max: 154 74;) \
1477             description { state: "flip_enabled" 0.0; \
1478                inherit: "default" 0.0; \
1479                visible: 1; \
1480             } \
1481          )
1482
1483 //****************************************************************************//
1484 // *******************************  Programs ********************************//
1485 //**************************************************************************//
1486 // signal: elm,state,%s,active
1487 //   a "check" item named %s went active
1488 // signal: elm,state,%s,passive
1489 //   a "check" item named %s went passive
1490 // default is passive
1491 #define GENLIST_PROGRAM_DISABLED( TARGET ) \
1492          program { name: "enabled"; \
1493             signal: "elm,state,enabled"; \
1494             source: "elm"; \
1495             action: STATE_SET "default" 0.0; \
1496             target: "bg_image"; \
1497             TARGET \
1498          } \
1499          program { name: "disabled"; \
1500             signal: "elm,state,disabled"; \
1501             source: "elm"; \
1502             action: STATE_SET "disabled" 0.0; \
1503             target: "bg_image"; \
1504             TARGET \
1505          }
1506
1507 #define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
1508          program { name: "enabled"; \
1509             signal: "elm,state,enabled"; \
1510             source: "elm"; \
1511             action: STATE_SET "default" 0.0; \
1512             target: "bg_image"; \
1513             target: "bottom_line"; \
1514             target: "bottom_line2"; \
1515             TARGET \
1516          } \
1517          program { name: "disabled"; \
1518             signal: "elm,state,disabled"; \
1519             source: "elm"; \
1520             action: STATE_SET "disabled" 0.0; \
1521             target: "bg_image"; \
1522             target: "bottom_line"; \
1523             target: "bottom_line2"; \
1524             TARGET \
1525          }
1526
1527 #define GENLIST_PROGRAM_SELECT( TARGET ) \
1528          program { name: "selected"; \
1529             signal: "elm,state,selected"; \
1530             source: "elm"; \
1531             action: STATE_SET "selected" 0.0; \
1532             target: "bg_image"; \
1533             TARGET \
1534             after: "play_button_press"; \
1535          } \
1536          program { name: "unselected"; \
1537             signal: "elm,state,unselected"; \
1538             source: "elm"; \
1539             action: STATE_SET "default" 0.0; \
1540             target: "bg_image"; \
1541             TARGET \
1542             transition: LINEAR 0.1; \
1543          } \
1544          program { name: "play_button_press"; \
1545             action: PLAY_SAMPLE "button-pressed" 1.0; \
1546          }
1547
1548 #define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
1549          program { name: "selected"; \
1550             signal: "elm,state,selected"; \
1551             source: "elm"; \
1552             action: STATE_SET "selected" 0.0; \
1553             target: "bg_image"; \
1554             target: "bottom_line"; \
1555             target: "bottom_line2"; \
1556             TARGET \
1557             after: "play_button_press"; \
1558          } \
1559          program { name: "unselected"; \
1560             signal: "elm,state,unselected"; \
1561             source: "elm"; \
1562             action: STATE_SET "default" 0.0; \
1563             target: "bg_image"; \
1564             target: "bottom_line"; \
1565             target: "bottom_line2"; \
1566             TARGET \
1567             transition: LINEAR 0.1; \
1568          } \
1569          program { name: "play_button_press"; \
1570             action: PLAY_SAMPLE "button-pressed" 1.0; \
1571          }
1572
1573 #define GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
1574          program { name: "enabled"; \
1575             signal: "elm,state,enabled"; \
1576             source: "elm"; \
1577             script { \
1578                new st[31]; \
1579                new Float:vl; \
1580                get_state(PART:"bg_image", st, 30, vl); \
1581                if (!strcmp(st, "top_disabled")) \
1582                   set_state(PART:"bg_image", "top", 0.0); \
1583                else if (!strcmp(st, "center_disabled")) \
1584                   set_state(PART:"bg_image", "center", 0.0); \
1585                else if (!strcmp(st, "bottom_disabled")) \
1586                   set_state(PART:"bg_image", "bottom", 0.0); \
1587                else \
1588                   set_state(PART:"bg_image", "default", 0.0); \
1589             } \
1590             after: "target_enabled"; \
1591          } \
1592          program { name: "target_enabled"; \
1593             action: STATE_SET "default" 0.0; \
1594             TARGET \
1595          }\
1596          program { name: "disabled"; \
1597             signal: "elm,state,disabled"; \
1598             source: "elm"; \
1599             script { \
1600                new st[31]; \
1601                new Float:vl; \
1602                get_state(PART:"bg_image", st, 30, vl); \
1603                if (!strcmp(st, "top")) \
1604                   set_state(PART:"bg_image", "top_disabled", 0.0); \
1605                else if (!strcmp(st, "center"))  \
1606                   set_state(PART:"bg_image", "center_disabled", 0.0); \
1607                else if (!strcmp(st, "bottom"))  \
1608                   set_state(PART:"bg_image", "bottom_disabled", 0.0); \
1609                else \
1610                   set_state(PART:"bg_image", "disabled", 0.0); \
1611             } \
1612             after: "target_disabled"; \
1613          } \
1614          program { name: "target_disabled"; \
1615             action: STATE_SET "disabled" 0.0; \
1616             TARGET \
1617          }
1618
1619 #define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
1620          program { name: "selected"; \
1621             signal: "elm,state,selected"; \
1622             source: "elm"; \
1623             script { \
1624                new st[31]; \
1625                new Float:vl; \
1626                get_state(PART:"bg_image", st, 30, vl); \
1627                if (!strcmp(st, "top")) \
1628                   set_state(PART:"bg_image", "top_selected", 0.0); \
1629                else if (!strcmp(st, "center")) \
1630                   set_state(PART:"bg_image", "center_selected", 0.0); \
1631                else if (!strcmp(st, "bottom")) \
1632                   set_state(PART:"bg_image", "bottom_selected", 0.0); \
1633                else \
1634                   set_state(PART:"bg_image", "selected", 0.0); \
1635             } \
1636             after: "target_selected"; \
1637             after: "play_button_press"; \
1638          } \
1639          program { name: "unselected"; \
1640             signal: "elm,state,unselected"; \
1641             source: "elm"; \
1642             script { \
1643                new st[31]; \
1644                new Float:vl; \
1645                get_state(PART:"bg_image", st, 30, vl); \
1646                if (!strcmp(st, "top_selected")) \
1647                   set_state(PART:"bg_image", "top", 0.0); \
1648                else if (!strcmp(st, "center_selected"))  \
1649                   set_state(PART:"bg_image", "center", 0.0); \
1650                else if (!strcmp(st, "bottom_selected"))  \
1651                   set_state(PART:"bg_image", "bottom", 0.0); \
1652                else \
1653                   set_state(PART:"bg_image", "default", 0.0); \
1654             } \
1655             transition: LINEAR 0.1; \
1656             after: "target_unselected"; \
1657          } \
1658          program { name: "target_selected"; \
1659             action: STATE_SET "selected" 0.0; \
1660             TARGET \
1661          }\
1662          program { name: "target_unselected"; \
1663             action: STATE_SET "default" 0.0; \
1664             TARGET \
1665          }\
1666          program { name: "bg_top"; \
1667             signal: "elm,state,top"; \
1668             source: "*"; \
1669             action: STATE_SET "top" 0.0; \
1670             target: "bg_image"; \
1671          } \
1672          program { name: "bg_center"; \
1673             signal: "elm,state,center"; \
1674             source: "*"; \
1675             action: STATE_SET "center" 0.0; \
1676             target: "bg_image"; \
1677          } \
1678          program { name: "bg_bottom"; \
1679             signal: "elm,state,bottom"; \
1680             source: "*"; \
1681             action: STATE_SET "bottom" 0.0; \
1682             target: "bg_image"; \
1683          } \
1684          program { name: "bg_default"; \
1685             signal: "elm,state,default"; \
1686             source: "*"; \
1687             action: STATE_SET "default" 0.0; \
1688             target: "bg_image"; \
1689          } \
1690          program { name: "play_button_press"; \
1691             action: PLAY_SAMPLE "button-pressed" 1.0; \
1692          }
1693
1694 #define GENLIST_PROGRAM_SELECT_DIALOGUE_ARROW( TARGET ) \
1695          program { name: "selected"; \
1696             signal: "elm,state,selected"; \
1697             source: "elm"; \
1698             script { \
1699                new st[31]; \
1700                new Float:vl; \
1701                get_state(PART:"bg_image", st, 30, vl); \
1702                if (!strcmp(st, "top")) \
1703                   set_state(PART:"bg_image", "top_selected", 0.0); \
1704                else if (!strcmp(st, "center")) \
1705                   set_state(PART:"bg_image", "center_selected", 0.0); \
1706                else if (!strcmp(st, "bottom")) \
1707                   set_state(PART:"bg_image", "bottom_selected", 0.0); \
1708                else \
1709                   set_state(PART:"bg_image", "selected", 0.0); \
1710                get_state(PART:"arrow", st, 30, vl); \
1711                if (!strcmp(st, "default")) { \
1712                   set_state(PART:"arrow", "default_press", 0.0); \
1713                   set_state(PART:"arrow_clip", "default_press", 0.0); \
1714                } \
1715                else if (!strcmp(st, "expand_opened")) { \
1716                   set_state(PART:"arrow", "expand_opened_press", 0.0); \
1717                   set_state(PART:"arrow_clip", "expand_opened_press", 0.0); \
1718                } \
1719             } \
1720             after: "target_selected"; \
1721             after: "play_button_press"; \
1722          } \
1723          program { name: "unselected"; \
1724             signal: "elm,state,unselected"; \
1725             source: "elm"; \
1726             script { \
1727                new st[31]; \
1728                new Float:vl; \
1729                get_state(PART:"bg_image", st, 30, vl); \
1730                if (!strcmp(st, "top_selected")) \
1731                   set_state(PART:"bg_image", "top", 0.0); \
1732                else if (!strcmp(st, "center_selected"))  \
1733                   set_state(PART:"bg_image", "center", 0.0); \
1734                else if (!strcmp(st, "bottom_selected"))  \
1735                   set_state(PART:"bg_image", "bottom", 0.0); \
1736                else \
1737                   set_state(PART:"bg_image", "default", 0.0); \
1738                get_state(PART:"arrow", st, 30, vl); \
1739                if (!strcmp(st, "default_press")) { \
1740                   set_state(PART:"arrow", "default", 0.0); \
1741                   set_state(PART:"arrow_clip", "default", 0.0); \
1742                } \
1743                else if (!strcmp(st, "expand_opened_press")) { \
1744                   set_state(PART:"arrow", "expand_opened", 0.0); \
1745                   set_state(PART:"arrow_clip", "expand_opened", 0.0); \
1746                } \
1747             } \
1748             transition: LINEAR 0.1; \
1749             after: "target_unselected"; \
1750          } \
1751          program { name: "target_selected"; \
1752             action: STATE_SET "selected" 0.0; \
1753             TARGET \
1754          }\
1755          program { name: "target_unselected"; \
1756             action: STATE_SET "default" 0.0; \
1757             TARGET \
1758          }\
1759          program { name: "bg_top"; \
1760             signal: "elm,state,top"; \
1761             source: "*"; \
1762             action: STATE_SET "top" 0.0; \
1763             target: "bg_image"; \
1764          } \
1765          program { name: "bg_center"; \
1766             signal: "elm,state,center"; \
1767             source: "*"; \
1768             action: STATE_SET "center" 0.0; \
1769             target: "bg_image"; \
1770          } \
1771          program { name: "bg_bottom"; \
1772             signal: "elm,state,bottom"; \
1773             source: "*"; \
1774             action: STATE_SET "bottom" 0.0; \
1775             target: "bg_image"; \
1776          } \
1777          program { name: "bg_default"; \
1778             signal: "elm,state,default"; \
1779             source: "*"; \
1780             action: STATE_SET "default" 0.0; \
1781             target: "bg_image"; \
1782          } \
1783          program { name: "play_button_press"; \
1784             action: PLAY_SAMPLE "button-pressed" 1.0; \
1785          }
1786
1787 #define GENLIST_PROGRAM_FLIP \
1788          program { name: "flip_enabled"; \
1789             signal:  "elm,state,flip,enabled"; \
1790             source:  "elm"; \
1791             action:  STATE_SET "flip_enabled" 0.0; \
1792             target: "elm.flip.event_block"; \
1793             after: "flip_enabled_next"; \
1794          } \
1795          program { name: "flip_enabled_next"; \
1796             action:  STATE_SET "flip_enabled" 0.0; \
1797             transition: DECELERATE 0.5; \
1798             target: "elm.flip.content"; \
1799             target: "elm.flip.icon"; \
1800          } \
1801          program { name: "flip_disabled"; \
1802             signal:  "elm,state,flip,disabled"; \
1803             source:  "elm"; \
1804             action:  STATE_SET "default" 0.0; \
1805             transition: DECELERATE 0.5; \
1806             target: "elm.flip.event_block"; \
1807             target: "elm.flip.content"; \
1808             target: "elm.flip.icon"; \
1809          }
1810
1811 #define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \
1812          program { name: "flip_enabled"; \
1813             signal:  "elm,state,flip,enabled"; \
1814             source:  "elm"; \
1815             action:  STATE_SET "flip_enabled" 0.0; \
1816             transition: DECELERATE 0.5; \
1817             TARGET; \
1818          } \
1819          program { name: "flip_disabled"; \
1820             signal:  "elm,state,flip,disabled"; \
1821             source:  "elm"; \
1822             action:  STATE_SET "default" 0.0; \
1823             transition: DECELERATE 0.5; \
1824             TARGET \
1825          }
1826
1827 #define GENLIST_PROGRAM_EDITMODE \
1828          program { name: "edit_enabled"; \
1829             signal:  "elm,state,edit,enabled"; \
1830             source:  "*"; \
1831             action:  STATE_SET "editmode" 0.0; \
1832             target: "elm.padding.right"; \
1833             target: "elm.icon.edit"; \
1834             target: "bg_image_right"; \
1835          } \
1836          program { name: "edit_disabled"; \
1837             signal:  "elm,state,edit,disabled"; \
1838             source:  "*"; \
1839             action:  STATE_SET "editmode" 0.0; \
1840             target: "elm.padding.right"; \
1841             target: "elm.icon.edit"; \
1842             target: "bg_image_right"; \
1843          }
1844
1845 #define GENLIST_PROGRAMS_INDEX( TARGET ) \
1846          programs { \
1847             GENLIST_PROGRAM_DISABLED( TARGET ) \
1848          }
1849
1850 #define GENLIST_PROGRAMS_NORMAL( TARGET ) \
1851          programs { \
1852             GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
1853             GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
1854             GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
1855             GENLIST_PROGRAMS_DECORATE \
1856             GENLIST_PROGRAM_FLIP \
1857          }
1858
1859 // FIXME: inheritance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
1860 // if GENLIST_PROGRAM_EXPAND is here, expanda effect is something wrong.
1861 // because after can be duplicated when program inheriting.
1862 #define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \
1863          programs { \
1864             GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
1865             GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
1866             GENLIST_PROGRAM_FLIP \
1867             GENLIST_PROGRAM_EDITMODE \
1868          }
1869
1870 #define GENLIST_PROGRAMS_MULTILINE( TARGET ) \
1871          programs { \
1872             GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
1873             GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
1874             GENLIST_PROGRAM_FLIP \
1875          }
1876
1877 #define GENLIST_PROGRAMS_READ_TEXT
1878 #define GENLIST_PROGRAMS_READ_TEXT1( TARGET ) \
1879       script { \
1880          public readed = 0; \
1881       } \
1882       programs { \
1883          GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
1884          GENLIST_PROGRAM_FLIP \
1885          program { name: "selected"; \
1886             signal: "elm,state,selected"; \
1887             source: "elm"; \
1888             action: STATE_SET "selected" 0.0; \
1889             target: "bg_image"; \
1890             target: "bottom_line"; \
1891             target: "bottom_line2"; \
1892             TARGET \
1893             after: "play_button_press"; \
1894          } \
1895          program { name: "play_button_press"; \
1896             action: PLAY_SAMPLE "button-pressed" 1.0; \
1897          } \
1898          program { name: "go_passive_target"; \
1899             signal: "elm,state,unselected"; \
1900             source: "elm"; \
1901             action: STATE_SET "default" 0.0; \
1902             TARGET \
1903             after: "go_passive_text1"; \
1904          } \
1905          program { name: "go_passive_text1"; \
1906             transition: LINEAR 0.1; \
1907             script { \
1908                set_state(PART:"bg_image", "default", 0.0); \
1909                set_state(PART:"bottom_line", "default", 0.0); \
1910                set_state(PART:"bottom_line2", "default", 0.0); \
1911                if (get_int(readed) == 1) \
1912                  set_state(PART:"elm.text.1", "read", 0.0); \
1913                else \
1914                  set_state(PART:"elm.text.1", "default", 0.0); \
1915             } \
1916          } \
1917          program { name: "go_read"; \
1918             signal: "elm,state,read"; \
1919             source: "*"; \
1920             script { \
1921               set_int(readed, 1); \
1922               set_state(PART:"elm.text.1", "read", 0.0); \
1923             } \
1924          } \
1925          program { name: "go_unread"; \
1926             signal: "elm,state,unread"; \
1927             source: "*"; \
1928             script { \
1929               set_int(readed, 0); \
1930               set_state(PART:"elm.text.1", "default", 0.0); \
1931             } \
1932          } \
1933       }
1934
1935 #define GENLIST_PROGRAMS_DECORATE \
1936       program { name: "decorate_enabled_effect"; \
1937             signal: "elm,state,decorate,enabled,effect";\
1938             source: "elm";\
1939             transition: DECELERATE 0.7;\
1940             action:  STATE_SET "decorate" 0.0;\
1941             target: "elm.padding.left"; \
1942             target: "elm.padding.right"; \
1943          }\
1944          program { name: "decorate_disabled_effect";\
1945             signal: "elm,state,decorate,disabled,effect";\
1946             source: "elm";\
1947             transition: ACCELERATE 0.7;\
1948             action:  STATE_SET "default" 0.0;\
1949             target: "elm.padding.left"; \
1950             target: "elm.padding.right"; \
1951          }\
1952          program { name: "decorate_enabled";\
1953             signal: "elm,state,decorate,enabled";\
1954             source: "elm";\
1955             action:  STATE_SET "decorate" 0.0;\
1956             target: "elm.padding.left"; \
1957             target: "elm.padding.right"; \
1958          }\
1959          program { name: "decorate_disabled";\
1960             signal: "elm,state,decorate,disabled";\
1961             source: "elm";\
1962             action:  STATE_SET "default" 0.0;\
1963             target: "elm.padding.left"; \
1964             target: "elm.padding.right"; \
1965          }
1966
1967 //****************************************************************************//
1968 // *******************************  Icon Part ******************************//
1969 //***************************************************************************//
1970 #define GENLIST_PART_ICON(NAME, DESCRIPION) \
1971    part { name: NAME; \
1972       scale: 1; \
1973       type: SWALLOW; \
1974       DESCRIPION \
1975       GENLIST_DESCRIPTION_FADE_ICON \
1976    }
1977
1978 #define GENLIST_PARAM_ICON_BIG \
1979          min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
1980          max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
1981
1982 #define GENLIST_PARAM_ICON_SMALL \
1983          min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \
1984          max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
1985
1986 #define GENLIST_PARAM_ICON_BTN_01 \
1987          min: 0 GENLIST_BTN_01_HEIGHT; \
1988          max: -1 GENLIST_BTN_01_HEIGHT;
1989
1990 #define GENLIST_PARAM_ICON_BTN_02 \
1991          min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
1992          max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE;
1993
1994 #define GENLIST_PARAM_ICON_ONOFF_WIDTH \
1995          min: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT; \
1996          max: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT;
1997
1998 #define GENLIST_PARAM_ICON_THUMBNAIL1\
1999          min: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE; \
2000          max: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE;
2001
2002 #define GENLIST_PARAM_ICON_CHECK_RADIO \
2003          min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \
2004          max: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE;
2005
2006 #define GENLIST_PARAM_ICON_STAR \
2007          min: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
2008          max: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
2009
2010 #define GENLIST_PART_ICON_BIG_R(NAME, RIGHT) \
2011    GENLIST_PART_ICON(NAME, \
2012       GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
2013          fixed: 1 1; \
2014          GENLIST_PARAM_ICON_BIG \
2015       ) \
2016    )
2017
2018 #define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \
2019    GENLIST_PART_ICON(NAME, \
2020       GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
2021          fixed: 1 1; \
2022          GENLIST_PARAM_ICON_BIG \
2023       ) \
2024    )
2025
2026 #define GENLIST_PART_ICON_SMALL_L(NAME, LEFT) \
2027    GENLIST_PART_ICON(NAME, \
2028       GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
2029          GENLIST_PARAM_ICON_SMALL \
2030          fixed: 1 1; \
2031       ) \
2032    )
2033
2034 #define GENLIST_PART_ICON_SMALL_LB(NAME, LEFT, BOTTOM) \
2035    GENLIST_PART_ICON(NAME, \
2036       GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
2037          fixed: 1 1; \
2038         GENLIST_PARAM_ICON_SMALL \
2039       ) \
2040    )
2041
2042 #define GENLIST_PART_ICON_SMALL_LTB(NAME, LEFT, TOP, BOTTOM) \
2043    GENLIST_PART_ICON(NAME, \
2044       GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
2045          GENLIST_PARAM_ICON_SMALL \
2046       ) \
2047    )
2048
2049 #define GENLIST_PART_ICON_SMALL_RTB(NAME, RIGHT, TOP, BOTTOM) \
2050    GENLIST_PART_ICON(NAME, \
2051       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
2052          GENLIST_PARAM_ICON_SMALL \
2053          fixed: 1 1; \
2054       ) \
2055    )
2056
2057 #define GENLIST_PART_ICON_BTN_01_RTB(NAME, RIGHT, TOP, BOTTOM) \
2058    GENLIST_PART_ICON(NAME, \
2059       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\
2060          GENLIST_PARAM_ICON_BTN_01 \
2061          fixed: 1 1; \
2062       ) \
2063    )
2064
2065 #define GENLIST_PART_ICON_BTN_02_RTB(NAME, RIGHT, TOP, BOTTOM) \
2066    GENLIST_PART_ICON(NAME, \
2067       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM,\
2068          GENLIST_PARAM_ICON_BTN_02 \
2069          fixed: 1 1; \
2070       ) \
2071    )
2072
2073 #define GENLIST_PART_ICON_BTN_ONOFF_R(NAME, RIGHT) \
2074    GENLIST_PART_ICON(NAME, \
2075       GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
2076          GENLIST_PARAM_ICON_ONOFF_WIDTH \
2077          fixed: 1 1; \
2078       ) \
2079    )
2080
2081 #define GENLIST_PART_ICON_BTN_ONOFF_L(NAME, LEFT) \
2082    GENLIST_PART_ICON(NAME, \
2083       GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
2084          GENLIST_PARAM_ICON_ONOFF_WIDTH \
2085       ) \
2086    )
2087
2088 #define GENLIST_PART_ICON_THUMBNAIL1_R(NAME, RIGHT) \
2089    GENLIST_PART_ICON(NAME, \
2090       GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
2091          GENLIST_PARAM_ICON_THUMBNAIL1 \
2092          fixed: 1 1; \
2093       ) \
2094    )
2095
2096 #define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \
2097    GENLIST_PART_ICON(NAME, \
2098       GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
2099          GENLIST_PARAM_ICON_CHECK_RADIO \
2100       ) \
2101    )
2102
2103 #define GENLIST_PART_ICON_STAR_RTB(NAME, RIGHT, TOP, BOTTOM) \
2104    GENLIST_PART_ICON(NAME, \
2105       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
2106          GENLIST_PARAM_ICON_STAR \
2107          fixed: 1 1; \
2108       ) \
2109    )
2110
2111 /*****************************************************************************/
2112 /******************************* Genlist IMAGE ********************************/
2113 /*****************************************************************************/
2114 #define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
2115    part { name: NAME; \
2116       scale: 1; \
2117       type: IMAGE; \
2118       DESCRIPION \
2119       GENLIST_DESCRIPTION_FADE \
2120    }
2121
2122 #define GENLIST_PARAM_PASSWORD_IMAGE \
2123             min: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
2124             max: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
2125             image.normal: "00_search_edit_field_bg_02.png"; \
2126             image.border: 4 4 4 4; \
2127             image.border_scale: 1;
2128
2129 /*****************************************************************************/
2130 /******************************* Genlist Bubble ********************************/
2131 /*****************************************************************************/
2132 #define GENLIST_IMAGES_EXPANDABLE_BTN \
2133          images { \
2134             image: "00_button_expand_closed.png" COMP; \
2135             image: "00_button_expand_opened.png" COMP; \
2136          }
2137
2138 #define GENLIST_PART_EXPANDABLE_ARROW \
2139          GENLIST_PART_ICON("touch_arrow", \
2140             ignore_flags: ON_HOLD; \
2141             GENLIST_DESCRIPTION_ENVELOP("arrow", ) \
2142             GENLIST_DESCRIPTION_FADE \
2143          ) \
2144          GENLIST_PART_RECT("arrow_clip", \
2145             GENLIST_DESCRIPTION_ENVELOP("arrow", \
2146                color: 101 101 101 255; \
2147             ) \
2148             description { state: "disabled" 0.0; \
2149                color: 101 101 101 76; \
2150             } \
2151             description { state: "expand_opened_press" 0.0; \
2152                color: 248 246 230 255; \
2153             } \
2154             description { state: "default_press" 0.0; \
2155                color: 248 246 230 255; \
2156             } \
2157          ) \
2158          GENLIST_PART_IMAGE("arrow", \
2159             clip_to: "arrow_clip"; \
2160             ignore_flags: ON_HOLD; \
2161             mouse_events: 0; \
2162             GENLIST_DESCRIPTION_R("elm.padding.right", \
2163                fixed: 1 1; \
2164                min: 74 74; \
2165                max: 74 74; \
2166                image.normal: "00_button_expand_closed.png"; \
2167             ) \
2168             description { state: "default_press" 0.0; \
2169                inherit: "default" 0.0; \
2170                image.normal: "00_button_expand_closed_press.png"; \
2171             } \
2172             description { state: "expand_opened" 0.0; \
2173                inherit: "default" 0.0; \
2174                image.normal: "00_button_expand_opened.png"; \
2175             } \
2176             description { state: "expand_opened_press" 0.0; \
2177                inherit: "expand_opened" 0.0; \
2178                image.normal: "00_button_expand_opened_press.png"; \
2179             } \
2180             GENLIST_DESCRIPTION_FADE \
2181          )
2182 /*****************************************************************************/
2183 /******************************* Genlist RECT ********************************/
2184 /*****************************************************************************/
2185 #define GENLIST_PART_SPACER(NAME, DESCRIPION) \
2186     part { name: NAME; \
2187       scale: 1; \
2188       mouse_events: 0; \
2189       type: SPACER; \
2190       DESCRIPION \
2191    }
2192
2193 #define GENLIST_PART_RECT(NAME, DESCRIPION) \
2194     part { name: NAME; \
2195       scale: 1; \
2196       type: RECT; \
2197       DESCRIPION \
2198       GENLIST_DESCRIPTION_FADE \
2199    }
2200
2201 #define GENLIST_PART_INDEX_LINE(LEFT, RIGHT, TOP, BOTTOM) \
2202          GENLIST_PART_RECT("index_line", \
2203             GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2204                color: GENLIST_GROUPINDEX_LINE_COLOR; \
2205                min: 0 4; \
2206                max: -1 4;) \
2207             description { state: "selected" 0.0; \
2208                inherit: "default" 0.0; \
2209                color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
2210             } \
2211          )
2212
2213 /*****************************************************************************/
2214 /******************************* Genlist TEXT ********************************/
2215 /*****************************************************************************/
2216 #define GENLIST_PART_TEXT(NAME, DESCRIPION) \
2217     part { name: NAME; \
2218       scale: 1; \
2219       mouse_events: 0; \
2220       type: TEXT; \
2221       DESCRIPION \
2222       GENLIST_DESCRIPTION_FADE \
2223    }
2224
2225 #define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
2226     part { name: NAME; \
2227       scale: 1; \
2228       mouse_events: 0; \
2229       type: TEXTBLOCK; \
2230       DESCRIPION \
2231       GENLIST_DESCRIPTION_FADE \
2232    }
2233
2234 /*************************** parameters **********************************/
2235 #define GENLIST_PARAM_TEXT_LIMIT_RB \
2236    rel1.to_x: "base"; /* This limits text growing. */\
2237    rel1.relative: 0.35 0; /* This limits text growing. */\
2238    text.max: 1 0; /* This limits text growing. */
2239
2240 #define GENLIST_PARAM_TEXT_LIMIT_RT \
2241    rel1.to_x: "base"; /* This limits text growing. */\
2242    rel1.relative: 0.35 1; /* This limits text growing. */\
2243    text.max: 1 0; /* This limits text growing. */
2244
2245 #define GENLIST_PARAM_TEXT_LIMIT_RTB \
2246    rel1.to_x: "base"; /* This limits text growing. */\
2247    rel1.relative: 0.35 1; /* This limits text growing. */\
2248    text.max: 1 0; /* This limits text growing. */
2249
2250 // Group Index
2251 #define GENLIST_PARAM_INDEX_LIST \
2252    color: GENLIST_GROUPINDEX_LIST_COLOR; \
2253    text { \
2254       align: 0 0.5; \
2255       min: 0 1; \
2256       font: "Tizen:style=Bold"; \
2257       size: GENLIST_GROUPINDEX_LIST_SIZE; \
2258       text_class: "list_item"; \
2259    }
2260
2261 // Group Title
2262 #define GENLIST_PARAM_DIALOGUE_GROUP_TITLE \
2263    color: GENLIST_DIALOGUE_GROUP_TITLE_COLOR; \
2264    text { \
2265       align: 0.0 0.5; \
2266       min: 0 1; \
2267       font: "Tizen:style=Bold"; \
2268       size: GENLIST_DIALOGUE_GROUP_TITLE_SIZE; \
2269       text_class: "list_item"; \
2270    }
2271
2272 // Password style
2273 #define GENLIST_PARAM_PASSWORD_TITLE \
2274    color: DIALOGUE_PASSWORD_TITLE_COLOR; \
2275    text { \
2276       font: "Tizen:style=Bold"; \
2277       size: DIALOGUE_PASSWORD_TITLE_SIZE; \
2278       min: 0 1; \
2279       align: 0 0.5; \
2280       text_class: "list_item"; \
2281    }
2282
2283 // list main text
2284 #define GENLIST_PARAM_LISTITEM \
2285    color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \
2286    text { \
2287       align: 0 0.5; \
2288       min: 0 1; \
2289       font: "Tizen:style=Regular"; \
2290       size: GENLIST_LIST_MAIN_TEXT_SIZE; \
2291       text_class: "list_item"; \
2292    }
2293
2294 #define GENLIST_PARAM_LISTITEM_TB \
2295    text { \
2296       min: 0 1; \
2297       style: "genlist_style_list_main_text_unread"; \
2298    }
2299
2300 #define GENLIST_PARAM_LISTITEM_TB_WRAP \
2301    text { \
2302       min: 0 1; \
2303       style: "genlist_style_list_main_text_unread_wrap"; \
2304    }
2305
2306 // list subtext
2307 #define GENLIST_PARAM_SUBITEM_DEFAULT \
2308    color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
2309    text { \
2310       align: 0 0.5; \
2311       min: 0 1; \
2312       font: "Tizen:style=Medium"; \
2313       size: GENLIST_LIST_SUB_TEXT_SIZE; \
2314       text_class: "tizen"; \
2315    }
2316
2317 #define GENLIST_PARAM_SUBITEM_SETTINGS \
2318    color: GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR; \
2319    text { \
2320       align: 0 0.5; \
2321       min: 0 1; \
2322       font: "Tizen:style=Medium"; \
2323       size: GENLIST_LIST_SUB_TEXT_SIZE; \
2324       text_class: "tizen"; \
2325    }
2326
2327 #define GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2328    text { \
2329       min: 0 1; \
2330       style: "genlist_style_list_sub_text_default"; \
2331    }
2332
2333 #define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
2334    text { \
2335       min: 0 1; \
2336       style: "genlist_style_list_sub_text_default_wrap"; \
2337    }
2338
2339 #define GENLIST_PARAM_SUBITEM_SETTINGS_TB \
2340    text { \
2341       min: 0 1; \
2342       style: "genlist_style_list_sub_text_settings"; \
2343    }
2344
2345 #define GENLIST_PARAM_APPS_NAME\
2346    color: GENLIST_APPS_NAME_COLOR; \
2347    text { \
2348       align: 0 0.5; \
2349       min: 0 1; \
2350       font: "Tizen:style=Bold"; \
2351       size: GENLIST_APPS_NAME_SIZE; \
2352       text_class: "list_item"; \
2353    }
2354
2355 #define GENLIST_PARAM_APPS_INC\
2356    color: GENLIST_APPS_INC_COLOR; \
2357    text { \
2358       align: 0 0.5; \
2359       min: 0 1; \
2360       font: "Tizen:style=Bold"; \
2361       size: GENLIST_APPS_INC_SIZE; \
2362       text_class: "list_item"; \
2363    }
2364
2365 #define GENLIST_PARAM_APPS_RATING\
2366    color: GENLIST_APPS_RATING_COLOR; \
2367    text { \
2368       align: 0 0.5; \
2369       min: 0 1; \
2370       font: "Tizen:style=Bold"; \
2371       size: GENLIST_APPS_RATING_SIZE; \
2372       text_class: "list_item"; \
2373    }
2374
2375 #define GENLIST_PARAM_APPS_PRICE\
2376    color: GENLIST_APPS_PRICE_ORIGINAL_COLOR; \
2377    text { \
2378       align: 0 0.5; \
2379       min: 0 1; \
2380       font: "Tizen:style=Bold"; \
2381       size: GENLIST_APPS_PRICE_SIZE; \
2382       text_class: "list_item"; \
2383    }
2384
2385 #define GENLIST_PARAM_APPS_PRICE_SALE\
2386    color: GENLIST_APPS_PRICE_SALE_COLOR; \
2387    text { \
2388       align: 0 0.5; \
2389       min: 0 1; \
2390       font: "Tizen:style=Bold"; \
2391       size: GENLIST_APPS_PRICE_SIZE; \
2392       text_class: "list_item"; \
2393    }
2394
2395 #define GENLIST_PARAM_CONTENTS_TEXT \
2396    color: GENLIST_CONTENTS_TEXT_COLOR; \
2397    text { \
2398       align: 0 0.5; \
2399       min: 0 1; \
2400       font: "Tizen:style=Regular"; \
2401       size: GENLIST_CONTENTS_TEXT_SIZE; \
2402       text_class: "tizen"; \
2403    }
2404
2405 /*************************** Descriptions **********************************/
2406 // group index
2407 #define GENLIST_DESCRIPTION_INDEX_LIST \
2408    description { state: "selected" 0.0; \
2409       inherit: "default" 0.0; \
2410       color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \
2411    }
2412
2413 // list main text
2414 #define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
2415    description { state: "disabled" 0.0; \
2416       inherit: "default" 0.0; \
2417       color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
2418    } \
2419    description { state: "read" 0.0; \
2420       inherit: "default" 0.0; \
2421       color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
2422    } \
2423    description { state: "read,disabled" 0.0; \
2424       inherit: "default" 0.0; \
2425       color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
2426    } \
2427    description { state: "selected" 0.0; \
2428       inherit: "default" 0.0; \
2429       color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
2430    }
2431
2432 #define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
2433    description { state: "disabled" 0.0; \
2434       inherit: "default" 0.0; \
2435       text.style: "genlist_style_list_main_text_unread_dim"; \
2436    } \
2437    description { state: "read" 0.0; \
2438       inherit: "default" 0.0; \
2439       text.style: "genlist_style_list_main_text_read"; \
2440    } \
2441    description { state: "read,disabled" 0.0; \
2442       inherit: "default" 0.0; \
2443       text.style: "genlist_style_list_main_text_read_dim"; \
2444    } \
2445    description { state: "selected" 0.0; \
2446       inherit: "default" 0.0; \
2447       text.style: "genlist_style_list_main_text_focus"; \
2448    }
2449
2450 // list sub text
2451 #define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2452    description { state: "disabled" 0.0; \
2453       inherit: "default" 0.0; \
2454       color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
2455    } \
2456    description { state: "selected" 0.0; \
2457       inherit: "default" 0.0; \
2458       color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
2459    }
2460
2461 #define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2462    description { state: "disabled" 0.0; \
2463       inherit: "default" 0.0; \
2464       text.style: "genlist_style_list_sub_text_default_dim"; \
2465    } \
2466    description { state: "selected" 0.0; \
2467       inherit: "default" 0.0; \
2468       text.style: "genlist_style_list_sub_text_focus"; \
2469    }
2470
2471 #define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
2472    description { state: "disabled" 0.0; \
2473       inherit: "default" 0.0; \
2474       text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
2475    } \
2476    description { state: "selected" 0.0; \
2477       inherit: "default" 0.0; \
2478       text.style: "genlist_style_list_sub_text_focus_wrap"; \
2479    }
2480
2481 #define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
2482    description { state: "disabled" 0.0; \
2483       inherit: "default" 0.0; \
2484       color: GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR; \
2485    } \
2486    description { state: "selected" 0.0; \
2487       inherit: "default" 0.0; \
2488       color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
2489    }
2490
2491 #define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
2492    description { state: "disabled" 0.0; \
2493       inherit: "default" 0.0; \
2494       text.style: "genlist_style_list_sub_text_settings_dim"; \
2495    } \
2496    description { state: "selected" 0.0; \
2497       inherit: "default" 0.0; \
2498       text.style: "genlist_style_list_sub_text_focus"; \
2499    }
2500
2501 // list main text multiline
2502 #define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
2503    description { state: "disabled" 0.0; \
2504       inherit: "default" 0.0; \
2505       text.style: "genlist_style_list_main_text_unread_dim_wrap"; \
2506    } \
2507    description { state: "selected" 0.0; \
2508       inherit: "default" 0.0; \
2509       text.style: "genlist_style_list_main_text_focus_wrap"; \
2510    }
2511
2512 /*************************** Parts **********************************/
2513 #define GENLIST_PART_DIALOGUE_GROUP_HELP_TEXT(NAME, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
2514    GENLIST_PART_TEXTBLOCK(NAME, \
2515       GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2516          text { \
2517             min: 0 1; \
2518             style: "genlist_style_dialogue_group_help_text"; \
2519          } \
2520          PARAM) \
2521    )
2522
2523 #define GENLIST_PART_LISTITEM(NAME, DESCRIPTION) \
2524    GENLIST_PART_TEXT(NAME, \
2525       DESCRIPTION \
2526       GENLIST_DESCRIPTION_LISTITEM_OTHERS \
2527    )
2528
2529 #define GENLIST_PART_LISTITEM_TB(NAME, DESCRIPTION) \
2530    GENLIST_PART_TEXTBLOCK(NAME, \
2531       DESCRIPTION \
2532       GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
2533    )
2534
2535 #define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
2536    GENLIST_PART_TEXT(NAME, \
2537       GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2538          min: 0 HEIGHT; \
2539          GENLIST_PARAM_LISTITEM \
2540          PARAM \
2541       ) \
2542       GENLIST_DESCRIPTION_LISTITEM_OTHERS \
2543    )
2544
2545 #define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
2546    GENLIST_PART_TEXTBLOCK(NAME, \
2547       GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2548          min: 0 HEIGHT; \
2549          GENLIST_PARAM_LISTITEM_TB \
2550          PARAM \
2551          fixed: 1 0; \
2552       ) \
2553       GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
2554    )
2555
2556 #define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
2557    GENLIST_PART_TEXT(NAME, \
2558       GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
2559          min: 0 HEIGHT; \
2560          GENLIST_PARAM_LISTITEM \
2561          PARAM \
2562       ) \
2563       GENLIST_DESCRIPTION_LISTITEM_OTHERS \
2564    )
2565
2566 #define GENLIST_PART_LISTITEM_LRT_TB(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
2567    GENLIST_PART_TEXTBLOCK(NAME, \
2568       GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
2569          min: 0 HEIGHT; \
2570          GENLIST_PARAM_LISTITEM_TB \
2571          fixed: 0 1; \
2572          PARAM \
2573       ) \
2574       GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
2575    )
2576
2577 #define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
2578    GENLIST_PART_TEXTBLOCK(NAME, \
2579       GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
2580          min: 0 HEIGHT; \
2581          GENLIST_PARAM_LISTITEM_TB \
2582          PARAM \
2583          fixed: 1 0; \
2584       ) \
2585       GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
2586    )
2587
2588 #define GENLIST_PART_SUBITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
2589    GENLIST_PART_TEXT(NAME, \
2590       GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2591          GENLIST_PARAM_SUBITEM_DEFAULT \
2592          PARAM \
2593       ) \
2594       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2595    )
2596
2597 #define GENLIST_PART_SUBITEM(NAME, DESCRIPTION) \
2598    GENLIST_PART_TEXT(NAME, \
2599       DESCRIPTION \
2600       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2601    )
2602
2603 #define GENLIST_PART_SUBITEM_DEFAULT_TB(NAME, DESCRIPTION) \
2604    GENLIST_PART_TEXTBLOCK(NAME, \
2605       DESCRIPTION \
2606       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2607    )
2608
2609 #define GENLIST_PART_SUBITEM_R(NAME, HEIGHT, RIGHT) \
2610    GENLIST_PART_TEXT(NAME, \
2611       GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
2612          fixed: 1 0; \
2613          min: 0 HEIGHT; \
2614          GENLIST_PARAM_TEXT_LIMIT_RB \
2615          GENLIST_PARAM_SUBITEM_DEFAULT \
2616       ) \
2617       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2618    )
2619
2620 #define GENLIST_PART_SUBITEM_RB(NAME, HEIGHT, RIGHT, BOTTOM) \
2621    GENLIST_PART_TEXT(NAME, \
2622       GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
2623          min: 0 HEIGHT; \
2624          fixed: 1 1; \
2625          GENLIST_PARAM_TEXT_LIMIT_RB \
2626          GENLIST_PARAM_SUBITEM_DEFAULT \
2627       ) \
2628       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2629    )
2630
2631 #define GENLIST_PART_SUBITEM_RB_TB(NAME, HEIGHT, RIGHT, BOTTOM) \
2632    GENLIST_PART_TEXTBLOCK(NAME, \
2633       GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
2634          min: 0 HEIGHT; \
2635          GENLIST_PARAM_TEXT_LIMIT_RB \
2636          fixed: 1 1; \
2637          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2638       ) \
2639       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2640    )
2641
2642 #define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
2643    GENLIST_PART_TEXTBLOCK(NAME, \
2644       GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
2645          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2646       ) \
2647       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2648    )
2649
2650 #define GENLIST_PART_SUBITEM_R_FIXED(NAME, WIDTH, HEIGHT, RIGHT) \
2651    GENLIST_PART_TEXT(NAME, \
2652       GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom", \
2653          min: WIDTH HEIGHT; \
2654          fixed: 1 1; \
2655          GENLIST_PARAM_SUBITEM_DEFAULT \
2656       ) \
2657       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2658    )
2659
2660 #define GENLIST_PART_SUBITEM_R_FIXED_TB(NAME, WIDTH, HEIGHT, RIGHT) \
2661    GENLIST_PART_TEXTBLOCK(NAME, \
2662        GENLIST_DESCRIPTION_R(RIGHT, \
2663          min: WIDTH HEIGHT; \
2664          fixed: 1 0; \
2665          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2666       ) \
2667       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2668    )
2669
2670 #define GENLIST_PART_SUBITEM_L_FIXED(NAME, WIDTH, HEIGHT, LEFT) \
2671    GENLIST_PART_TEXT(NAME, \
2672       GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.top", "elm.padding.bottom", \
2673          min: WIDTH HEIGHT; \
2674          fixed: 1 1; \
2675          GENLIST_PARAM_SUBITEM_DEFAULT \
2676       ) \
2677       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2678    )
2679
2680 #define GENLIST_PART_SUBITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
2681    GENLIST_PART_TEXT(NAME, \
2682       GENLIST_DESCRIPTION(LEFT, RIGHT, "elm.padding.top", "elm.padding.bottom", \
2683          min: 0 HEIGHT; \
2684          GENLIST_PARAM_SUBITEM_DEFAULT \
2685          PARAM \
2686       ) \
2687       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2688    )
2689
2690 #define GENLIST_PART_SUBITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT) \
2691    GENLIST_PART_TEXTBLOCK(NAME, \
2692       GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
2693          min: 0 HEIGHT; \
2694          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2695       ) \
2696       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2697    )
2698
2699 #define GENLIST_PART_SUBITEM_LB(NAME, HEIGHT, LEFT, RIGHT) \
2700    GENLIST_PART_TEXT(NAME, \
2701       GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
2702          min: 0 HEIGHT; \
2703          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2704       ) \
2705       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2706    )
2707
2708 #define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
2709    GENLIST_PART_TEXT(NAME, \
2710       GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
2711          min: 0 HEIGHT; \
2712          fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
2713          GENLIST_PARAM_SUBITEM_DEFAULT \
2714       ) \
2715       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2716    )
2717
2718 #define GENLIST_PART_SUBITEM_SETTINGS_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, PARAM) \
2719    GENLIST_PART_TEXT(NAME, \
2720       GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
2721          min: 0 HEIGHT; \
2722          fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
2723          GENLIST_PARAM_SUBITEM_SETTINGS\
2724          PARAM; \
2725       ) \
2726       GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
2727    )
2728
2729 #define GENLIST_PART_SUBITEM_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
2730    GENLIST_PART_TEXTBLOCK(NAME, \
2731       GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
2732          min: 0 HEIGHT; \
2733          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2734          fixed: 0 1; \
2735       ) \
2736       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2737    )
2738
2739 #define GENLIST_PART_SUBITEM_SETTINGS_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
2740    GENLIST_PART_TEXTBLOCK(NAME, \
2741       GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
2742          min: 0 HEIGHT; \
2743          GENLIST_PARAM_SUBITEM_SETTINGS_TB \
2744          fixed: 0 1; \
2745       ) \
2746       GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
2747    )
2748
2749 #define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
2750    GENLIST_PART_TEXT(NAME, \
2751       GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
2752          min: 0 HEIGHT; \
2753          fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
2754          GENLIST_PARAM_SUBITEM_DEFAULT \
2755       ) \
2756       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2757    )
2758
2759 #define GENLIST_PART_SUBITEM_LTB(NAME, HEIGHT, LEFT, TOP, BOTTOM) \
2760    GENLIST_PART_TEXT(NAME, \
2761       GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
2762          min: 0 HEIGHT; \
2763          fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
2764          GENLIST_PARAM_SUBITEM_DEFAULT \
2765       ) \
2766       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2767    )
2768
2769 #define GENLIST_PART_SUBITEM_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
2770    GENLIST_PART_TEXT(NAME, \
2771       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
2772          min: 0 HEIGHT; \
2773          GENLIST_PARAM_TEXT_LIMIT_RT \
2774          GENLIST_PARAM_SUBITEM_DEFAULT \
2775       ) \
2776       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
2777    )
2778
2779 #define GENLIST_PART_SUBITEM_RTB_TB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
2780    GENLIST_PART_TEXTBLOCK(NAME, \
2781       GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
2782          min: 0 HEIGHT; \
2783          GENLIST_PARAM_TEXT_LIMIT_RT \
2784          GENLIST_PARAM_SUBITEM_DEFAULT_TB \
2785          fixed: 1 0; \
2786       ) \
2787       GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
2788    )
2789
2790 #define GENLIST_PARAM_LIST_BUBBLE_TEXT \
2791    color: GENLIST_LIST_BUBBLE_TEXT_COLOR; \
2792    text { \
2793       align: 1 0.5; \
2794       min: 0 1; \
2795       font: "Tizen:style=Bold"; \
2796       size: GENLIST_LIST_BUBBLE_TEXT_SIZE; \
2797       text_class: "tizen"; \
2798    }
2799 // FIXME: Need to find why rel2.offset: 9 -1 will not fix the alignment of bubble text ?
2800 #define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
2801          GENLIST_PART_IMAGE("elm.bubble", \
2802             GENLIST_DESCRIPTION_ENVELOP(NAME, \
2803                image { \
2804                   normal: "00_list_bubble_bg.png"; \
2805                   border: 8 8 0 0; \
2806                } \
2807                rel1.offset: -10 0; \
2808                rel2.offset: 8 -1; \
2809                min: 48 38; \
2810                max: -1 38; \
2811                fixed: 0 1; \
2812             ) \
2813             GENLIST_DESCRIPTION_FADE \
2814          ) \
2815          GENLIST_PART_TEXT(NAME, \
2816             GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
2817                min: 0 HEIGHT; \
2818                GENLIST_PARAM_TEXT_LIMIT_RT \
2819                rel2.offset: -10 -1; /* This maintain the text alignment with bubble text. */\
2820                GENLIST_PARAM_LIST_BUBBLE_TEXT \
2821             ) \
2822          )
2823
2824 #if 0
2825 #define GENLIST_PART_BASE__( param_item_height ) \
2826          part { name: "base"; \
2827             type: RECT; \
2828             repeat_events: 1; \
2829             scale: 1; \
2830             description { state: "default" 0.0; \
2831                min: 0 param_item_height; \
2832                color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
2833             } \
2834          }
2835
2836 #define GENLIST_PART_BG \
2837          part { name: "bg"; \
2838             type: RECT; \
2839             mouse_events: 0; \
2840             description { state: "default" 0.0; \
2841                color: GENLIST_PART_DIALOGUE_GROUP_BG_COLOR; \
2842             } \
2843             description { state: "hide" 0.0; \
2844                inherit: "default" 0.0; \
2845                rel1 { relative: 0.025 0.0; } \
2846                rel2 { relative: 1.025 1.0; } \
2847             } \
2848             description { state: "hide" 0.1;  \
2849                inherit: "default" 0.0; \
2850                rel1 { relative: 0.13 0.0; } \
2851                rel2 { relative: 1.13 1.0; } \
2852             } \
2853             description { state: "hide" 0.2; \
2854                inherit: "default" 0.0; \
2855                rel1 { relative: 0.5 0.0; } \
2856                rel2 { relative: 1.5 1.0; } \
2857             } \
2858             description { state: "hide" 0.3; \
2859                inherit: "default" 0.0; \
2860                rel1 { relative: 1.0 0.0; } \
2861                rel2 { relative: 2.0 1.0; } \
2862             } \
2863          }
2864
2865 /******************************************************************************/
2866 /** ETC
2867 /******************************************************************************/
2868 // FIXME: UX do not define selected state. But I thinkt that it is neededs :(
2869
2870 #define GENLIST_PROOGRAM_EXPAND(SRC, TARGET) \
2871    program { \
2872       name: "expand"; \
2873       signal: "mouse,clicked,1"; \
2874       source: SRC; \
2875       action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
2876    } \
2877    program { \
2878       name: "go_expanded"; \
2879       signal: "elm,state,expanded"; \
2880       source: "elm"; \
2881       action: STATE_SET "active" 0.0; \
2882       TARGET \
2883    } \
2884    program { \
2885       name: "go_contracted"; \
2886       signal: "elm,state,contracted"; \
2887       source: "elm"; \
2888       action: STATE_SET "default" 0.0; \
2889       TARGET \
2890    }
2891
2892 #define GENLIST_PART_BASE_LIST_H( HEIGHT) \
2893          part { name: "base"; \
2894             type: RECT; \
2895             repeat_events: 1; \
2896             scale: 1; \
2897             description { state: "default" 0.0; \
2898                align: 0.5 0.5; \
2899                color: 0 0 0 0; \
2900                rel2.relative: 1 0; \
2901                rel2.to: "bottom_line"; \
2902                min: 0 HEIGHT; \
2903             } \
2904          } \
2905          GENLIST_PART_BOTTOM_LINE
2906
2907 #define GENLIST_PART_DIALOGUE_ITEM \
2908          part { name: "elm.rect.dialogue"; \
2909             type: RECT; \
2910             scale: 1; \
2911             description { state: "default" 0.0; \
2912                min: 10 0; \
2913                fixed: 1 0; \
2914                color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
2915                rel2.relative: 0.0 1.0; \
2916                align: 0.0 0.0; \
2917             } \
2918          }
2919
2920 #define GENLIST_PART_DIALOGUE_RIGHT_LINE \
2921          part { name: "elm.rect.dialogue.right.line"; \
2922             type: RECT; \
2923             scale: 1; \
2924             description { state: "default" 0.0; \
2925                min: 1 0; \
2926                fixed: 1 0; \
2927                rel1 { \
2928                   relative: 1.0  0.0; \
2929                   offset: -1 0; \
2930                } \
2931                align: 1.0 0.0; \
2932                color: GENLIST_LIST_LINE1_COLOR; \
2933             } \
2934          }
2935
2936 #define GENLIST_PROGRAM_FLIP_1TEXT \
2937          program { name: "flip_enabled"; \
2938             signal: "elm,state,flip,enabled"; \
2939             source: "elm"; \
2940             action: STATE_SET "flip_enabled" 0.0; \
2941             target: "elm.text"; \
2942             target: "elm.flip.content"; \
2943          } \
2944          program { name: "flip_disabled"; \
2945             signal: "elm,state,flip,disabled"; \
2946             source: "elm"; \
2947             action: STATE_SET "default" 0.0; \
2948             target: "elm.text"; \
2949             target: "elm.flip.content"; \
2950          }
2951
2952 #define GENLIST_PROGRAM_FLIP_2TEXT \
2953          program { name: "flip_enabled"; \
2954             signal: "elm,state,flip,enabled"; \
2955             source: "elm"; \
2956             action: STATE_SET "flip_enabled" 0.0; \
2957             target: "elm.text.1"; \
2958             target: "elm.text.2"; \
2959             target: "elm.flip.content"; \
2960          } \
2961          program { name: "flip_disabled"; \
2962             signal: "elm,state,flip,disabled"; \
2963             source: "elm"; \
2964             action: STATE_SET "default" 0.0; \
2965             target: "elm.text.1"; \
2966             target: "elm.text.2"; \
2967             target: "elm.flip.content"; \
2968          }
2969
2970 #define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
2971          program { name: "flip_enabled"; \
2972             signal: "elm,state,flip,enabled"; \
2973             source: "elm"; \
2974             action: STATE_SET "flip_enabled" 0.0; \
2975             target: "elm.text.1"; \
2976             target: "elm.text.2"; \
2977             target: "elm.icon"; \
2978             target: "elm.flip.content"; \
2979          } \
2980          program { name: "flip_disabled"; \
2981             signal: "elm,state,flip,disabled"; \
2982             source: "elm"; \
2983             action: STATE_SET "default" 0.0; \
2984             target: "elm.text.1"; \
2985             target: "elm.text.2"; \
2986             target: "elm.icon"; \
2987             target: "elm.flip.content"; \
2988          }
2989
2990 #define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
2991          program { name: "flip_enabled"; \
2992             signal: "elm,state,flip,enabled"; \
2993             source: "elm"; \
2994             action: STATE_SET "flip_enabled" 0.0; \
2995             target: "elm.text.1"; \
2996             target: "elm.text.2"; \
2997             target: "elm.icon.1"; \
2998             target: "elm.icon.2"; \
2999             target: "elm.flip.content"; \
3000          } \
3001          program { name: "flip_disabled"; \
3002             signal: "elm,state,flip,disabled"; \
3003             source: "elm"; \
3004             action: STATE_SET "default" 0.0; \
3005              target: "elm.text.1"; \
3006             target: "elm.text.2"; \
3007             target: "elm.icon.1"; \
3008             target: "elm.icon.2"; \
3009             target: "elm.flip.content"; \
3010          }
3011
3012 #define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
3013          program { name: "flip_enabled"; \
3014             signal: "elm,state,flip,enabled"; \
3015             source: "elm"; \
3016             action: STATE_SET "flip_enabled" 0.0; \
3017             target: "elm.text.1"; \
3018             target: "elm.text.2"; \
3019             target: "elm.text.3"; \
3020             target: "elm.icon.1"; \
3021             target: "elm.icon.2"; \
3022             target: "elm.flip.content"; \
3023          } \
3024          program { name: "flip_disabled"; \
3025             signal: "elm,state,flip,disabled"; \
3026             source: "elm"; \
3027             action: STATE_SET "default" 0.0; \
3028             target: "elm.text.1"; \
3029             target: "elm.text.2"; \
3030             target: "elm.text.3"; \
3031             target: "elm.icon.1"; \
3032             target: "elm.icon.2"; \
3033             target: "elm.flip.content"; \
3034          }
3035
3036
3037 #define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
3038             description { state: "selected" 1.0; \
3039                inherit: "default" 0.0; \
3040                visible: 0; \
3041             }
3042
3043 #define GENLIST_DESCRIPTION_FLIP_ENABLED \
3044             description { state: "flip_enabled" 0.0; \
3045                inherit: "default" 0.0; \
3046                visible: 0; \
3047             }
3048
3049 #define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
3050             script { \
3051                new st[31]; \
3052                new Float:vl; \
3053                get_state(PART:"elm.text", st, 30, vl); \
3054                set_state(PART:"bg_image", "selected", 0.0); \
3055                if (!strcmp(st, "flip_enabled")) \
3056                   set_state(PART:"elm.text", "selected", 1.0); \
3057                else \
3058                   set_state(PART:"elm.text", "selected", 0.0); \
3059             }
3060
3061
3062 /* genlist multisense macro - start */
3063 #define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
3064             after: "play_button_press";
3065
3066 #define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
3067          program { name: "play_button_press"; \
3068             action: PLAY_SAMPLE "button-pressed" 1.0; \
3069          }
3070 #endif