[Genlist] Add groupindex textblock focus color
[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(LEFT, RIGHT, TOP, BOTTOM) \
58          GENLIST_PART_RECT("index_line", \
59             GENLIST_DESCRIPTION(LEFT, RIGHT, 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 // Group Index
71 #define GENLIST_PARAM_INDEX_LIST \
72    color: GENLIST_GROUPINDEX_LIST_COLOR; \
73    text { \
74       align: 0 0.5; \
75       min: 0 1; \
76       font: "Tizen:style=Bold"; \
77       size: GENLIST_GROUPINDEX_LIST_SIZE; \
78       text_class: "list_item"; \
79    }
80
81 // Group Index
82 #define GENLIST_PARAM_INDEX_LIST_TB \
83    text { \
84       align: 0 0.5; \
85       min: 0 1; \
86       style: "genlist_style_groupindex_text"; \
87    }
88
89 #define GENLIST_PART_PADDING_GROUPINDEX_LEFT \
90          GENLIST_PART_EXPANDED_PAD \
91          GENLIST_PART_RECT("elm.padding.left", \
92             GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
93                color: GENLIST_LIST_BG_COLOR; \
94                min: GROUPINDEX_PADDING_SIZE_LEFT 0; \
95                max: GROUPINDEX_PADDING_SIZE_LEFT -1; \
96                fixed: 1 0; \
97             ) \
98             GENLIST_DESCRIPTION_DECORATE_PADDING \
99             GENLIST_DESCRIPTION_REORDER_PADDING \
100             GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
101          )
102
103 #define GENLIST_PART_PADDING_GROUPINDEX_RIGHT \
104          GENLIST_PART_RECT("elm.padding.right", \
105             description { state: "default" 0.0; \
106                color: GENLIST_LIST_BG_COLOR; \
107                min: GROUPINDEX_PADDING_SIZE_RIGHT 0; \
108                max: GROUPINDEX_PADDING_SIZE_RIGHT -1; \
109                fixed: 1 0; \
110                align: 1.0 0.5; \
111                rel1.to: "base"; \
112                rel2.to: "base"; \
113                rel1.relative: 1 0; \
114             } \
115             GENLIST_DESCRIPTION_DECORATE_PADDING \
116             GENLIST_DESCRIPTION_REORDER_PADDING \
117             GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
118          )
119
120 #define SLIDING_PER_FPS 1
121 #define SLIDING_FPS     60.0
122 // 2.1.1
123    group { GENLIST_NAME("groupindex/default")
124       alias: "elm/genlist/item/grouptitle/default";
125       alias: "elm/genlist/item_odd/grouptitle/default";
126       alias: "elm/genlist/item_compress/grouptitle/default";
127       alias: "elm/genlist/item_compress_odd/grouptitle/default";
128       alias: "elm/genlist/tree/grouptitle/default";
129       alias: "elm/genlist/tree_odd/grouptitle/default";
130       alias: "elm/genlist/tree_compress/grouptitle/default";
131       alias: "elm/genlist/tree_compress_odd/grouptitle/default";
132       GENLIST_PROLOG
133
134       data.item: "texts" "elm.text";
135
136       script {
137          public sliding_timer;
138          public end_timer;
139          public text_w;
140          public org_text_w;
141
142          public get_width() {
143             new x, y, w, h;
144             get_geometry(PART:"elm.text", x, y, w, h);
145             set_int(org_text_w, w);
146
147             set_state(PART:"elm.text", "sliding", 0.0);
148             get_geometry(PART:"elm.text", x, y, w, h);
149             set_int(text_w, w);
150          }
151          public ender(val) {
152             if (get_int(sliding_timer)) cancel_timer(get_int(sliding_timer));
153             set_int(sliding_timer, 0);
154             if (get_int(end_timer)) cancel_timer(get_int(end_timer));
155             set_int(end_timer, 0);
156             set_state(PART:"elm.text", "default", 0.0);
157          }
158          public sliding(val) {
159             if (val == 0) {
160                get_width();
161                if (get_int(text_w) < get_int(org_text_w)) {
162                   ender(1);
163                   return;
164                }
165             }
166             /*
167             new buf[128];
168             snprintf(buf, 127, "val:%d <= org_w:%d - sliding_w:%d  ",
169                val, get_int(org_text_w), get_int(text_w));
170             set_text(PART:"dbg", buf);
171             */
172             custom_state(PART:"elm.text", "sliding", 0.0);
173             set_state_val(PART:"elm.text", STATE_REL1_OFFSET, val, 0);
174             set_state_val(PART:"elm.text", STATE_REL2_OFFSET, val, 0);
175             set_state(PART:"elm.text", "custom", 0.0);
176             val -= SLIDING_PER_FPS;
177
178             if (val <= -get_int(text_w) + get_int(org_text_w)) {
179                set_int(end_timer, timer(0.5, "ender", 1));
180             } else
181                set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val));
182          }
183       }
184
185       parts {
186          GENLIST_PART_BASE
187          GENLIST_PART_INDEX_BG
188          GENLIST_PART_PADDING_TOP_SIZE(20)
189          GENLIST_PART_PADDING_BOTTOM_SIZE(14)
190          GENLIST_PART_TEXTBLOCK("elm.text",
191             GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
192                GENLIST_PARAM_INDEX_LIST_TB
193                min: 0 GROUPINDEX_TEXT_HEIGHT;
194                fixed: 0 1;
195             )
196             description { state: "sliding" 0.0;
197                inherit: "default";
198                text.min: 1 1;
199                align: 0 0;
200             }
201             GENLIST_DESCRIPTION_INDEX_LIST_TB
202          )
203          GENLIST_PART_INDEX_LINE("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom")
204          /*
205          part { name: "dbg";
206             type: TEXT;
207             description { state: "default" 0.0;
208                color: 255 0 0 255;
209                text {
210                   font: "Sans";
211                   size: 12;
212                   align: 1.0 1.0;
213                }
214             }
215          }
216          */
217         GENLIST_PART_PADDING_GROUPINDEX_LEFT
218         GENLIST_PART_PADDING_GROUPINDEX_RIGHT
219       }
220       program { name: "default";
221          signal: "elm,state,default";
222          source: "elm";
223          script {
224             ender(1);
225             set_state(PART:"elm.text", "default", 0.0);
226             set_state(PART:"index_line", "default", 0.0);
227             set_state(PART:"bg", "default", 0.0);
228          }
229       }
230       programs {
231          GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
232          program { name: "selected";
233             signal: "elm,state,selected";
234             source: "elm";
235             script {
236                if (!get_int(sliding_timer) && !get_int(end_timer)) {
237                   set_state(PART:"elm.text", "selected", 0.0);
238                   set_state(PART:"index_line", "selected", 0.0);
239                   set_state(PART:"bg", "selected", 0.0);
240                }
241             }
242          }
243          program { name: "unselected";
244             signal: "elm,state,unselected";
245             source: "elm";
246             script {
247                if (!get_int(sliding_timer) && !get_int(end_timer)) {
248                   set_state(PART:"elm.text", "default", 0.0);
249                   set_state(PART:"index_line", "default", 0.0);
250                   set_state(PART:"bg", "default", 0.0);
251                }
252             }
253          }
254          program { name: "slide_start";
255             signal: "elm,state,slide,start";
256             source: "";
257             script {
258                set_state(PART:"index_line", "default", 0.0);
259                set_state(PART:"bg", "default", 0.0);
260                if (!get_int(sliding_timer) && !get_int(end_timer)) {
261                   set_int(sliding_timer, timer(0.01, "sliding", 0));
262                }
263             }
264          }
265          program { name: "slide_stop";
266             signal: "elm,state,slide,stop";
267             source: "elm";
268             script {
269                if (get_int(sliding_timer) && get_int(end_timer)) {
270                   ender(0);
271                }
272             }
273          }
274       }
275    }
276
277 //2.1.3
278    group { GENLIST_NAME("groupindex.icon/default")
279       alias: "elm/genlist/item/grouptitle.icon/default";
280       alias: "elm/genlist/item_odd/grouptitle.icon/default";
281       alias: "elm/genlist/item_compress/grouptitle.icon/default";
282       alias: "elm/genlist/item_compress_odd/grouptitle.icon/default";
283       alias: "elm/genlist/tree/grouptitle.icon/default";
284       alias: "elm/genlist/tree_odd/grouptitle.icon/default";
285       alias: "elm/genlist/tree_compress/grouptitle.icon/default";
286       alias: "elm/genlist/tree_compress_odd/grouptitle.icon/default";
287       GENLIST_PROLOG
288
289       data.item: "texts" "elm.text";
290       data.item: "contents" "elm.icon";
291
292       parts {
293          GENLIST_PART_BASE
294          GENLIST_PART_INDEX_BG
295          GENLIST_PART_PADDING_LEFT_SIZE(GROUPINDEX_PADDING_SIZE_LEFT)
296          GENLIST_PART_PADDING_RIGHT_SIZE(GROUPINDEX_PADDING_SIZE_RIGHT)
297          GENLIST_PART_PADDING_TOP_SIZE(6)
298          GENLIST_PART_PADDING_BOTTOM_SIZE(6)
299          GENLIST_PART_ICON("elm.icon",
300             GENLIST_DESCRIPTION_LTB("elm.padding.left",
301                "elm.padding.top", "elm.padding.bottom",
302                min: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE;
303                max: GROUPINDEX_ICON_SIZE GROUPINDEX_ICON_SIZE;
304                fixed: 1 0;
305             )
306          )
307          GENLIST_PART_PADDING_L_SIZE("elm.padding.icon.right", "elm.icon", 16)
308          GENLIST_PART_TEXT("elm.text",
309             GENLIST_DESCRIPTION_LRT("elm.padding.icon.right", "elm.padding.right", "elm.padding.top",
310                GENLIST_PARAM_INDEX_LIST
311                min: 0 GROUPINDEX_TEXT_HEIGHT;
312                fixed: 0 1;
313             )
314             GENLIST_DESCRIPTION_INDEX_LIST
315          )
316          GENLIST_PART_INDEX_LINE("elm.padding.icon.right", "elm.padding.right", "elm.text", "elm.padding.bottom")
317       }
318       programs {
319          GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
320          GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; target: "bg"; )
321       }
322    }