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