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