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