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