From: Tae-Hwan Kim Date: Thu, 9 May 2013 08:38:56 +0000 (+0900) Subject: [Genlist] Add sliding feature for groupindex X-Git-Tag: accepted/tizen/20131029.210118~324 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=177511c5ca4bfca94d7b1aa86f29015b36c719d0;p=profile%2Fivi%2Fefl-theme-tizen.git [Genlist] Add sliding feature for groupindex Change-Id: Ib4b6d0ef93dee4333242c4a93fb1ec121c6c5edd --- diff --git a/themes/inc/tizen-hd-inc.edc b/themes/inc/tizen-hd-inc.edc index ea57f2d..73e8040 100644 --- a/themes/inc/tizen-hd-inc.edc +++ b/themes/inc/tizen-hd-inc.edc @@ -247,6 +247,7 @@ #define GENLIST_GROUPINDEX_LIST_SIZE 32 #define GENLIST_GROUPINDEX_LIST_COLOR 59 115 182 255 #define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR 255 255 255 255 +#define GENLIST_GROUPINDEX_LIST_COLOR_STYLE "#3B73B6FF" #define GENLIST_GROUPINDEX_LIST_BG_COLOR 248 246 239 255 #define GENLIST_GROUPINDEX_LIST_PRESS_COLOR 132 162 198 255 diff --git a/themes/widgets/genlist/genlist_groupindex.edc b/themes/widgets/genlist/genlist_groupindex.edc index 895e483..7e44fa5 100644 --- a/themes/widgets/genlist/genlist_groupindex.edc +++ b/themes/widgets/genlist/genlist_groupindex.edc @@ -72,6 +72,47 @@ text_class: "list_item"; \ } +// Group Index +#define GENLIST_PARAM_INDEX_LIST_TB \ + text { \ + align: 0 0.5; \ + min: 0 1; \ + style: "genlist_style_groupindex_text"; \ + } + +#define GENLIST_PART_PADDING_GROUPINDEX_LEFT \ + GENLIST_PART_EXPANDED_PAD \ + GENLIST_PART_RECT("elm.padding.left", \ + GENLIST_DESCRIPTION_L("elm.swallow.pad", \ + color: GENLIST_LIST_BG_COLOR; \ + min: GROUPINDEX_PADDING_SIZE_LEFT 0; \ + max: GROUPINDEX_PADDING_SIZE_LEFT -1; \ + fixed: 1 0; \ + ) \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) + +#define GENLIST_PART_PADDING_GROUPINDEX_RIGHT \ + GENLIST_PART_RECT("elm.padding.right", \ + description { state: "default" 0.0; \ + color: GENLIST_LIST_BG_COLOR; \ + min: GROUPINDEX_PADDING_SIZE_RIGHT 0; \ + max: GROUPINDEX_PADDING_SIZE_RIGHT -1; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + rel1.to: "base"; \ + rel2.to: "base"; \ + rel1.relative: 1 0; \ + } \ + GENLIST_DESCRIPTION_DECORATE_PADDING \ + GENLIST_DESCRIPTION_REORDER_PADDING \ + GENLIST_DESCRIPTION_DECORATE_REORDER_PADDING \ + ) + +#define SLIDING_PER_FPS 1 +#define SLIDING_FPS 60.0 // 2.1.1 group { GENLIST_NAME("groupindex/default") alias: "elm/genlist/item/grouptitle/default"; @@ -86,26 +127,144 @@ data.item: "texts" "elm.text"; + script { + public sliding_timer; + public end_timer; + public text_w; + public org_text_w; + + public get_width() { + new x, y, w, h; + get_geometry(PART:"elm.text", x, y, w, h); + set_int(org_text_w, w); + + set_state(PART:"elm.text", "sliding", 0.0); + get_geometry(PART:"elm.text", x, y, w, h); + set_int(text_w, w); + } + public ender(val) { + if (get_int(sliding_timer)) cancel_timer(get_int(sliding_timer)); + set_int(sliding_timer, 0); + if (get_int(end_timer)) cancel_timer(get_int(end_timer)); + set_int(end_timer, 0); + set_state(PART:"elm.text", "default", 0.0); + } + public sliding(val) { + if (val == 0) { + get_width(); + if (get_int(text_w) < get_int(org_text_w)) { + set_int(end_timer, timer(0.5, "ender", 1)); + return; + } + } + /* + new buf[128]; + snprintf(buf, 127, "val:%d <= org_w:%d - sliding_w:%d ", + val, get_int(org_text_w), get_int(text_w)); + set_text(PART:"dbg", buf); + */ + custom_state(PART:"elm.text", "sliding", 0.0); + set_state_val(PART:"elm.text", STATE_REL1_OFFSET, val, 0); + set_state_val(PART:"elm.text", STATE_REL2_OFFSET, val, 0); + set_state(PART:"elm.text", "custom", 0.0); + val -= SLIDING_PER_FPS; + + if (val <= -get_int(text_w) + get_int(org_text_w)) { + set_int(end_timer, timer(0.5, "ender", 1)); + } else + set_int(sliding_timer, timer(1.0/SLIDING_FPS, "sliding", val)); + } + } + parts { GENLIST_PART_BASE GENLIST_PART_INDEX_BG - GENLIST_PART_PADDING_LEFT_SIZE(GROUPINDEX_PADDING_SIZE_LEFT) - GENLIST_PART_PADDING_RIGHT_SIZE(GROUPINDEX_PADDING_SIZE_RIGHT) GENLIST_PART_PADDING_TOP_SIZE(20) GENLIST_PART_PADDING_BOTTOM_SIZE(14) - GENLIST_PART_TEXT("elm.text", + GENLIST_PART_TEXTBLOCK("elm.text", GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top", - GENLIST_PARAM_INDEX_LIST + GENLIST_PARAM_INDEX_LIST_TB min: 0 GROUPINDEX_TEXT_HEIGHT; fixed: 0 1; ) + description { state: "sliding" 0.0; + inherit: "default"; + text.min: 1 1; + align: 0 0; + } GENLIST_DESCRIPTION_INDEX_LIST ) GENLIST_PART_INDEX_LINE("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom") + /* + part { name: "dbg"; + type: TEXT; + description { state: "default" 0.0; + color: 255 0 0 255; + text { + font: "Sans"; + size: 12; + align: 1.0 1.0; + } + } + } + */ + GENLIST_PART_PADDING_GROUPINDEX_LEFT + GENLIST_PART_PADDING_GROUPINDEX_RIGHT + } + program { name: "default"; + signal: "elm,state,default"; + source: "elm"; + script { + ender(1); + set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } } programs { GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; ) - GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; target: "bg"; ) + program { name: "selected"; + signal: "elm,state,selected"; + source: "elm"; + script { + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_state(PART:"elm.text", "selected", 0.0); + set_state(PART:"index_line", "selected", 0.0); + set_state(PART:"bg", "selected", 0.0); + } + } + } + program { name: "unselected"; + signal: "elm,state,unselected"; + source: "elm"; + script { + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_state(PART:"elm.text", "default", 0.0); + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + } + program { name: "slide_start"; + signal: "elm,state,slide,start"; + source: ""; + script { + set_state(PART:"index_line", "default", 0.0); + set_state(PART:"bg", "default", 0.0); + if (!get_int(sliding_timer) && !get_int(end_timer)) { + set_int(sliding_timer, timer(0.5, "sliding", 0)); + } else { + set_state(PART:"elm.text", "default", 0.0); + } + } + } + program { name: "slide_stop"; + signal: "elm,state,slide,stop"; + source: "elm"; + script { + ender(0); + } + } } } diff --git a/themes/widgets/genlist/genlist_textblock_style.edc b/themes/widgets/genlist/genlist_textblock_style.edc index 8205711..4db80e8 100644 --- a/themes/widgets/genlist/genlist_textblock_style.edc +++ b/themes/widgets/genlist/genlist_textblock_style.edc @@ -35,6 +35,12 @@ tag: "match" GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE; styles { + // ********************** groupindex text + style { name: "genlist_style_groupindex_text"; + base: "font=Tizen:style=Regular font_size="GENLIST_GROUPINDEX_LIST_SIZE" color="GENLIST_GROUPINDEX_LIST_COLOR_STYLE" text_class=list_item ellipsis=1.0"; + STYLE_TAG + STYLE_TAG_MATCH + } // ********************** dialgoue group help text style { name: "genlist_style_dialogue_group_help_text"; base: "font=Tizen:style=Regular font_size="GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE" color="GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE" text_class=list_item wrap=mixed";