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