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