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