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(LEFT, RIGHT, TOP, BOTTOM) \
58 GENLIST_PART_RECT("index_line", \
59 GENLIST_DESCRIPTION(LEFT, RIGHT, 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; \
71 #define GENLIST_PARAM_INDEX_LIST \
72 color: GENLIST_GROUPINDEX_LIST_COLOR; \
76 font: "Tizen:style=Bold"; \
77 size: GENLIST_GROUPINDEX_LIST_SIZE; \
78 text_class: "list_item"; \
82 #define GENLIST_PARAM_INDEX_LIST_TB \
86 style: "genlist_style_groupindex_text"; \
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; \
98 GENLIST_DESCRIPTION_DECORATE_PADDING \
99 GENLIST_DESCRIPTION_REORDER_PADDING \
100 GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
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; \
113 rel1.relative: 1 0; \
115 GENLIST_DESCRIPTION_DECORATE_PADDING \
116 GENLIST_DESCRIPTION_REORDER_PADDING \
117 GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \
120 #define SLIDING_PER_FPS 1
121 #define SLIDING_FPS 60.0
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";
134 data.item: "texts" "elm.text";
137 public sliding_timer;
144 get_geometry(PART:"elm.text", x, y, w, h);
145 set_int(org_text_w, w);
147 set_state(PART:"elm.text", "sliding", 0.0);
148 get_geometry(PART:"elm.text", x, y, w, h);
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);
158 public sliding(val) {
161 if (get_int(text_w) < get_int(org_text_w)) {
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);
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;
178 if (val <= -get_int(text_w) + get_int(org_text_w)) {
179 set_int(end_timer, timer(0.5, "ender", 1));
181 set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val));
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;
196 description { state: "sliding" 0.0;
201 GENLIST_DESCRIPTION_INDEX_LIST_TB
203 GENLIST_PART_INDEX_LINE("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom")
207 description { state: "default" 0.0;
217 GENLIST_PART_PADDING_GROUPINDEX_LEFT
218 GENLIST_PART_PADDING_GROUPINDEX_RIGHT
220 program { name: "default";
221 signal: "elm,state,default";
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);
231 GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
232 program { name: "selected";
233 signal: "elm,state,selected";
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);
243 program { name: "unselected";
244 signal: "elm,state,unselected";
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);
254 program { name: "slide_start";
255 signal: "elm,state,slide,start";
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));
265 program { name: "slide_stop";
266 signal: "elm,state,slide,stop";
269 if (get_int(sliding_timer) && get_int(end_timer)) {
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";
289 data.item: "texts" "elm.text";
290 data.item: "contents" "elm.icon";
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;
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;
314 GENLIST_DESCRIPTION_INDEX_LIST
316 GENLIST_PART_INDEX_LINE("elm.padding.icon.right", "elm.padding.right", "elm.text", "elm.padding.bottom")
319 GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
320 GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; target: "bg"; )