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