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