3 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
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
29 #define GENLIST_PART_INDEX_BG \
30 GENLIST_PART_RECT("bg", \
31 description { state: "default" 0.0; \
32 color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
34 description { state: "selected" 0.0; \
35 inherit: "default" 0.0; \
36 color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
38 description { state: "disabled" 0.0; \
39 inherit: "default" 0.0; \
40 color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
45 #define GENLIST_DESCRIPTION_INDEX_LIST \
46 description { state: "selected" 0.0; \
47 inherit: "default" 0.0; \
48 color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \
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"; \
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; \
64 description { state: "selected" 0.0; \
65 inherit: "default" 0.0; \
66 color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
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; \
78 description { state: "selected" 0.0; \
79 inherit: "default" 0.0; \
80 color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
85 #define GENLIST_PARAM_INDEX_LIST \
86 color: GENLIST_GROUPINDEX_LIST_COLOR; \
90 font: "Tizen:style=Bold"; \
91 size: GENLIST_GROUPINDEX_LIST_SIZE; \
92 text_class: "list_item"; \
96 #define GENLIST_PARAM_INDEX_LIST_TB \
100 style: "genlist_style_groupindex_text"; \
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; \
112 description { state: "selected" 0.0; \
113 inherit: "default" 0.0; \
114 color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
116 description { state: "disabled" 0.0; \
117 inherit: "default" 0.0; \
118 color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
120 GENLIST_DESCRIPTION_DECORATE_PADDING \
121 GENLIST_DESCRIPTION_REORDER_PADDING \
122 GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
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; \
135 rel1.relative: 1 0; \
137 description { state: "selected" 0.0; \
138 inherit: "default" 0.0; \
139 color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
141 description { state: "disabled" 0.0; \
142 inherit: "default" 0.0; \
143 color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
145 GENLIST_DESCRIPTION_DECORATE_PADDING \
146 GENLIST_DESCRIPTION_REORDER_PADDING \
147 GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
150 #define SLIDING_PER_FPS 1
151 #define SLIDING_FPS 60.0
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";
164 data.item: "texts" "elm.text";
167 public sliding_timer;
174 get_geometry(PART:"elm.text", x, y, w, h);
175 set_int(org_text_w, w);
177 set_state(PART:"elm.text", "sliding", 0.0);
178 get_geometry(PART:"elm.text", x, y, w, h);
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);
188 public sliding(val) {
191 if (get_int(text_w) < get_int(org_text_w)) {
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);
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;
208 if (val <= -get_int(text_w) + get_int(org_text_w)) {
209 set_int(end_timer, timer(0.5, "ender", 1));
211 set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val));
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;
226 description { state: "sliding" 0.0;
231 GENLIST_DESCRIPTION_INDEX_LIST_TB
236 description { state: "default" 0.0;
246 GENLIST_PART_PADDING_GROUPINDEX_LEFT
247 GENLIST_PART_PADDING_GROUPINDEX_RIGHT
248 GENLIST_PART_INDEX_LINE("elm.text", "elm.padding.bottom")
251 program { name: "default";
252 signal: "elm,state,default";
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);
262 GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
263 program { name: "selected";
264 signal: "elm,state,selected";
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);
276 program { name: "unselected";
277 signal: "elm,state,unselected";
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);
289 program { name: "slide_start";
290 signal: "elm,state,slide,start";
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));
300 program { name: "slide_stop";
301 signal: "elm,state,slide,stop";
304 if (get_int(sliding_timer) && get_int(end_timer)) {
309 GENLIST_PROGRAM_FOCUS
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";
325 data.item: "texts" "elm.text";
326 data.item: "contents" "elm.icon";
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;
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;
350 GENLIST_DESCRIPTION_INDEX_LIST
352 GENLIST_PART_INDEX_LINE_ICON("elm.padding.icon.right", "elm.text", "elm.padding.bottom")
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