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