[Genlist] Change button and group image by GUI 1.0
[platform/core/uifw/efl-theme-tizen.git] / themes / widgets / genlist / genlist_groupindex.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
19 /*
20  * vim:ts=3:expandtab
21 */
22
23 #define GROUPINDEX_PADDING_SIZE_LEFT 26
24 #define GROUPINDEX_PADDING_SIZE_RIGHT 26
25 #define GROUPINDEX_TEXT_HEIGHT 38
26 #define GROUPINDEX_ICON_SIZE 64
27
28
29 #define GENLIST_PART_INDEX_BG \
30       GENLIST_PART_RECT("bg",  \
31          description { state: "default" 0.0; \
32             color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
33          } \
34          description { state: "selected" 0.0; \
35             inherit: "default" 0.0; \
36             color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
37          } \
38          description { state: "disabled" 0.0; \
39             inherit: "default" 0.0; \
40             color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
41          } \
42       )
43
44  // group index
45 #define GENLIST_DESCRIPTION_INDEX_LIST \
46    description { state: "selected" 0.0; \
47       inherit: "default" 0.0; \
48       color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \
49    }
50
51  #define GENLIST_DESCRIPTION_INDEX_LIST_TB \
52    description { state: "selected" 0.0; \
53       inherit: "default" 0.0; \
54       text.style: "genlist_style_groupindex_text_focus"; \
55    }
56
57 #define GENLIST_PART_INDEX_LINE(TOP, BOTTOM) \
58       GENLIST_PART_RECT("index_line", \
59          GENLIST_DESCRIPTION_TB(TOP, BOTTOM, \
60             color: GENLIST_GROUPINDEX_LINE_COLOR; \
61             min: 0 4; \
62             max: -1 4; \
63          ) \
64          description { state: "selected" 0.0; \
65             inherit: "default" 0.0; \
66             color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
67          } \
68       )
69
70 #define GENLIST_PART_INDEX_LINE_ICON(LEFT, TOP, BOTTOM) \
71       GENLIST_PART_RECT("index_line_icon", \
72          GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
73             color: GENLIST_GROUPINDEX_LINE_COLOR; \
74             min: 0 4; \
75             max: -1 4; \
76             rel2.to_x: "base"; \
77          ) \
78          description { state: "selected" 0.0; \
79             inherit: "default" 0.0; \
80             color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
81         } \
82       )
83
84 // Group Index
85 #define GENLIST_PARAM_INDEX_LIST \
86    color: GENLIST_GROUPINDEX_LIST_COLOR; \
87    text { \
88       align: 0 0.5; \
89       min: 0 1; \
90       font: "Tizen:style=Bold"; \
91       size: GENLIST_GROUPINDEX_LIST_SIZE; \
92       text_class: "list_item"; \
93    }
94
95 // Group Index
96 #define GENLIST_PARAM_INDEX_LIST_TB \
97    text { \
98       align: 0 0.5; \
99       min: 0 1; \
100       style: "genlist_style_groupindex_text"; \
101    }
102
103 #define GENLIST_PART_PADDING_GROUPINDEX_LEFT \
104       GENLIST_PART_EXPANDED_PAD \
105          GENLIST_PART_RECT("elm.padding.left", \
106             GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
107                color: GENLIST_LIST_BG_COLOR; \
108                min: GROUPINDEX_PADDING_SIZE_LEFT 0; \
109                max: GROUPINDEX_PADDING_SIZE_LEFT -1; \
110                fixed: 1 0; \
111             ) \
112             description { state: "selected" 0.0; \
113                inherit: "default" 0.0; \
114                color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
115             } \
116             description { state: "disabled" 0.0; \
117                inherit: "default" 0.0; \
118                color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
119             } \
120             GENLIST_DESCRIPTION_DECORATE_PADDING \
121             GENLIST_DESCRIPTION_REORDER_PADDING \
122             GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
123          )
124
125 #define GENLIST_PART_PADDING_GROUPINDEX_RIGHT \
126          GENLIST_PART_RECT("elm.padding.right", \
127             description { state: "default" 0.0; \
128                color: GENLIST_LIST_BG_COLOR; \
129                min: GROUPINDEX_PADDING_SIZE_RIGHT 0; \
130                max: GROUPINDEX_PADDING_SIZE_RIGHT -1; \
131                fixed: 1 0; \
132                align: 1.0 0.5; \
133                rel1.to: "base"; \
134                rel2.to: "base"; \
135                rel1.relative: 1 0; \
136             } \
137             description { state: "selected" 0.0; \
138                inherit: "default" 0.0; \
139                color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
140             } \
141             description { state: "disabled" 0.0; \
142                inherit: "default" 0.0; \
143                color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
144             } \
145             GENLIST_DESCRIPTION_DECORATE_PADDING \
146             GENLIST_DESCRIPTION_REORDER_PADDING \
147             GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
148          )
149
150 #define SLIDING_PER_FPS 1
151 #define SLIDING_FPS     60.0
152 // 2.1.1
153    group { GENLIST_NAME("groupindex/default")
154       alias: "elm/genlist/item/grouptitle/default";
155       alias: "elm/genlist/item_odd/grouptitle/default";
156       alias: "elm/genlist/item_compress/grouptitle/default";
157       alias: "elm/genlist/item_compress_odd/grouptitle/default";
158       alias: "elm/genlist/tree/grouptitle/default";
159       alias: "elm/genlist/tree_odd/grouptitle/default";
160       alias: "elm/genlist/tree_compress/grouptitle/default";
161       alias: "elm/genlist/tree_compress_odd/grouptitle/default";
162       GENLIST_PROLOG
163
164       data.item: "texts" "elm.text";
165
166       script {
167          public sliding_timer;
168          public end_timer;
169          public text_w;
170          public org_text_w;
171
172          public get_width() {
173             new x, y, w, h;
174             get_geometry(PART:"elm.text", x, y, w, h);
175             set_int(org_text_w, w);
176
177             set_state(PART:"elm.text", "sliding", 0.0);
178             get_geometry(PART:"elm.text", x, y, w, h);
179             set_int(text_w, w);
180          }
181          public ender(val) {
182             if (get_int(sliding_timer)) cancel_timer(get_int(sliding_timer));
183             set_int(sliding_timer, 0);
184             if (get_int(end_timer)) cancel_timer(get_int(end_timer));
185             set_int(end_timer, 0);
186             set_state(PART:"elm.text", "default", 0.0);
187          }
188          public sliding(val) {
189             if (val == 0) {
190                get_width();
191                if (get_int(text_w) < get_int(org_text_w)) {
192                   ender(1);
193                   return;
194                }
195             }
196             /*
197             new buf[128];
198             snprintf(buf, 127, "val:%d <= org_w:%d - sliding_w:%d  ",
199                val, get_int(org_text_w), get_int(text_w));
200             set_text(PART:"dbg", buf);
201             */
202             custom_state(PART:"elm.text", "sliding", 0.0);
203             set_state_val(PART:"elm.text", STATE_REL1_OFFSET, val, 0);
204             set_state_val(PART:"elm.text", STATE_REL2_OFFSET, val, 0);
205             set_state(PART:"elm.text", "custom", 0.0);
206             val -= SLIDING_PER_FPS;
207
208             if (val <= -get_int(text_w) + get_int(org_text_w)) {
209                set_int(end_timer, timer(0.5, "ender", 1));
210             } else
211                set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val));
212          }
213       }
214
215       parts {
216          GENLIST_PART_BASE
217          GENLIST_PART_INDEX_BG
218          GENLIST_PART_PADDING_TOP_SIZE(20)
219          GENLIST_PART_PADDING_BOTTOM_SIZE(14)
220          GENLIST_PART_TEXTBLOCK("elm.text",
221             GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
222                GENLIST_PARAM_INDEX_LIST_TB
223                min: 0 GROUPINDEX_TEXT_HEIGHT;
224                fixed: 0 1;
225             )
226             description { state: "sliding" 0.0;
227                inherit: "default";
228                text.min: 1 1;
229                align: 0 0;
230             }
231             GENLIST_DESCRIPTION_INDEX_LIST_TB
232          )
233          /*
234          part { name: "dbg";
235             type: TEXT;
236             description { state: "default" 0.0;
237                color: 255 0 0 255;
238                text {
239                   font: "Sans";
240                   size: 12;
241                   align: 1.0 1.0;
242                }
243             }
244          }
245          */
246         GENLIST_PART_PADDING_GROUPINDEX_LEFT
247         GENLIST_PART_PADDING_GROUPINDEX_RIGHT
248         GENLIST_PART_INDEX_LINE("elm.text", "elm.padding.bottom")
249         GENLIST_PART_FOCUS
250       }
251       program { name: "default";
252          signal: "elm,state,default";
253          source: "elm";
254          script {
255             ender(1);
256             set_state(PART:"elm.text", "default", 0.0);
257             set_state(PART:"index_line", "default", 0.0);
258             set_state(PART:"bg", "default", 0.0);
259          }
260       }
261       programs {
262          GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
263          program { name: "selected";
264             signal: "elm,state,selected";
265             source: "elm";
266             script {
267                if (!get_int(sliding_timer) && !get_int(end_timer)) {
268                   set_state(PART:"elm.text", "selected", 0.0);
269                   set_state(PART:"index_line", "selected", 0.0);
270                   set_state(PART:"bg", "selected", 0.0);
271                   set_state(PART:"elm.padding.left", "selected", 0.0);
272                   set_state(PART:"elm.padding.right", "selected", 0.0);
273                }
274             }
275          }
276          program { name: "unselected";
277             signal: "elm,state,unselected";
278             source: "elm";
279             script {
280                if (!get_int(sliding_timer) && !get_int(end_timer)) {
281                   set_state(PART:"elm.text", "default", 0.0);
282                   set_state(PART:"index_line", "default", 0.0);
283                   set_state(PART:"bg", "default", 0.0);
284                   set_state(PART:"elm.padding.left", "default", 0.0);
285                   set_state(PART:"elm.padding.right", "default", 0.0);
286                }
287             }
288          }
289          program { name: "slide_start";
290             signal: "elm,state,slide,start";
291             source: "";
292             script {
293                set_state(PART:"index_line", "default", 0.0);
294                set_state(PART:"bg", "default", 0.0);
295                if (!get_int(sliding_timer) && !get_int(end_timer)) {
296                   set_int(sliding_timer, timer(0.01, "sliding", 0));
297                }
298             }
299          }
300          program { name: "slide_stop";
301             signal: "elm,state,slide,stop";
302             source: "elm";
303             script {
304                if (get_int(sliding_timer) && get_int(end_timer)) {
305                   ender(0);
306                }
307             }
308          }
309          GENLIST_PROGRAM_FOCUS
310       }
311    }
312
313 //2.1.3
314    group { GENLIST_NAME("groupindex.icon/default")
315       alias: "elm/genlist/item/grouptitle.icon/default";
316       alias: "elm/genlist/item_odd/grouptitle.icon/default";
317       alias: "elm/genlist/item_compress/grouptitle.icon/default";
318       alias: "elm/genlist/item_compress_odd/grouptitle.icon/default";
319       alias: "elm/genlist/tree/grouptitle.icon/default";
320       alias: "elm/genlist/tree_odd/grouptitle.icon/default";
321       alias: "elm/genlist/tree_compress/grouptitle.icon/default";
322       alias: "elm/genlist/tree_compress_odd/grouptitle.icon/default";
323       GENLIST_PROLOG
324
325       data.item: "texts" "elm.text";
326       data.item: "contents" "elm.icon";
327
328       parts {
329          GENLIST_PART_BASE
330          GENLIST_PART_INDEX_BG
331          GENLIST_PART_PADDING_LEFT_SIZE(GROUPINDEX_PADDING_SIZE_LEFT)
332          GENLIST_PART_PADDING_RIGHT_SIZE(GROUPINDEX_PADDING_SIZE_RIGHT)
333          GENLIST_PART_PADDING_TOP_SIZE(6)
334          GENLIST_PART_PADDING_BOTTOM_SIZE(6)
335          GENLIST_PART_ICON("elm.icon",
336             GENLIST_DESCRIPTION_LTB("elm.padding.left",
337                "elm.padding.top", "elm.padding.bottom",
338                min: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE;
339                max: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE;
340                fixed: 1 0;
341             )
342          )
343          GENLIST_PART_PADDING_L_SIZE("elm.padding.icon.right", "elm.icon", 16)
344          GENLIST_PART_TEXT("elm.text",
345             GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
346                GENLIST_PARAM_INDEX_LIST
347                min: 0 GROUPINDEX_TEXT_HEIGHT;
348                fixed: 0 1;
349             )
350             GENLIST_DESCRIPTION_INDEX_LIST
351          )
352          GENLIST_PART_INDEX_LINE_ICON("elm.padding.icon.right", "elm.text", "elm.padding.bottom")
353          GENLIST_PART_FOCUS
354       }
355       programs {
356          GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line_icon"; )
357          GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line_icon"; target: "bg"; )
358          GENLIST_PROGRAM_FOCUS
359       }
360    }