X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Flib%2Felm_gengrid.c;h=8ee50c47ccd1c5a53134ea56bc78f26f71d12c7f;hb=97e14e146c9feaf6b212dacef22bd0907c267b8a;hp=082d94ff3d0ddb80859b2a7da5cb22a4193e4df1;hpb=24f8c0d69db33e3648af019298fe8a22af7a4813;p=framework%2Fuifw%2Felementary.git diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index 082d94f..8ee50c4 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -27,7 +27,7 @@ struct Elm_Gen_Item_Type { Elm_Gen_Item *it; - Ecore_Animator *item_moving_effect_timer; + Ecore_Animator *item_reorder_move_animator; Evas_Coord gx, gy, ox, oy, tx, ty, rx, ry; unsigned int moving_effect_start_time; int prev_group; @@ -143,7 +143,8 @@ _event_hook(Evas_Object *obj, elm_smart_scroller_page_size_get(wd->scr, &page_x, &page_y); elm_smart_scroller_child_viewport_size_get(wd->scr, &v_w, &v_h); - if ((!strcmp(ev->keyname, "Left")) || (!strcmp(ev->keyname, "KP_Left"))) + if ((!strcmp(ev->keyname, "Left")) || + ((!strcmp(ev->keyname, "KP_Left")) && (!ev->string))) { if ((wd->horizontal) && (((evas_key_modifier_is_set(ev->modifiers, "Shift")) && @@ -164,7 +165,8 @@ _event_hook(Evas_Object *obj, else x -= step_x; } - else if ((!strcmp(ev->keyname, "Right")) || (!strcmp(ev->keyname, "KP_Right"))) + else if ((!strcmp(ev->keyname, "Right")) || + ((!strcmp(ev->keyname, "KP_Right")) && (!ev->string))) { if ((wd->horizontal) && (((evas_key_modifier_is_set(ev->modifiers, "Shift")) && @@ -185,7 +187,8 @@ _event_hook(Evas_Object *obj, else x += step_x; } - else if ((!strcmp(ev->keyname, "Up")) || (!strcmp(ev->keyname, "KP_Up"))) + else if ((!strcmp(ev->keyname, "Up")) || + ((!strcmp(ev->keyname, "KP_Up")) && (!ev->string))) { if ((wd->horizontal) && (((evas_key_modifier_is_set(ev->modifiers, "Shift")) && @@ -206,7 +209,8 @@ _event_hook(Evas_Object *obj, else y -= step_y; } - else if ((!strcmp(ev->keyname, "Down")) || (!strcmp(ev->keyname, "KP_Down"))) + else if ((!strcmp(ev->keyname, "Down")) || + ((!strcmp(ev->keyname, "KP_Down")) && (!ev->string))) { if ((wd->horizontal) && (((evas_key_modifier_is_set(ev->modifiers, "Shift")) && @@ -227,7 +231,8 @@ _event_hook(Evas_Object *obj, else y += step_y; } - else if ((!strcmp(ev->keyname, "Home")) || (!strcmp(ev->keyname, "KP_Home"))) + else if ((!strcmp(ev->keyname, "Home")) || + ((!strcmp(ev->keyname, "KP_Home")) && (!ev->string))) { it = elm_gengrid_first_item_get(obj); elm_gengrid_item_bring_in(it, ELM_GENGRID_ITEM_SCROLLTO_IN); @@ -235,7 +240,8 @@ _event_hook(Evas_Object *obj, ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; return EINA_TRUE; } - else if ((!strcmp(ev->keyname, "End")) || (!strcmp(ev->keyname, "KP_End"))) + else if ((!strcmp(ev->keyname, "End")) || + ((!strcmp(ev->keyname, "KP_End")) && (!ev->string))) { it = elm_gengrid_last_item_get(obj); elm_gengrid_item_bring_in(it, ELM_GENGRID_ITEM_SCROLLTO_IN); @@ -243,7 +249,8 @@ _event_hook(Evas_Object *obj, ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; return EINA_TRUE; } - else if ((!strcmp(ev->keyname, "Prior")) || (!strcmp(ev->keyname, "KP_Prior"))) + else if ((!strcmp(ev->keyname, "Prior")) || + ((!strcmp(ev->keyname, "KP_Prior")) && (!ev->string))) { if (wd->horizontal) { @@ -260,7 +267,8 @@ _event_hook(Evas_Object *obj, y -= page_y; } } - else if ((!strcmp(ev->keyname, "Next")) || (!strcmp(ev->keyname, "KP_Next"))) + else if ((!strcmp(ev->keyname, "Next")) || + ((!strcmp(ev->keyname, "KP_Next")) && (!ev->string))) { if (wd->horizontal) { @@ -872,7 +880,7 @@ static void _item_highlight(Elm_Gen_Item *it) { if ((it->wd->select_mode == ELM_OBJECT_SELECT_MODE_NONE) || - (it->wd->no_highlight) || (it->highlighted) || + (!it->wd->highlight) || (it->highlighted) || (it->generation < it->wd->generation)) return; edje_object_signal_emit(VIEW(it), "elm,state,selected", "elm"); it->highlighted = EINA_TRUE; @@ -926,7 +934,7 @@ _item_realize(Elm_Gen_Item *it) ((void *)it->base.data, WIDGET(it), key); if (s) { - edje_object_part_text_set(VIEW(it), key, s); + edje_object_part_text_escaped_set(VIEW(it), key, s); free(s); } } @@ -1042,7 +1050,7 @@ _item_unrealize_cb(Elm_Gen_Item *it) } static Eina_Bool -_reorder_item_moving_effect_timer_cb(void *data) +_reorder_item_move_animator_cb(void *data) { Elm_Gen_Item *it = data; double tt, t; @@ -1080,7 +1088,7 @@ _reorder_item_moving_effect_timer_cb(void *data) else evas_object_resize(VIEW(it), it->wd->item_width, it->wd->item_height); it->item->moving = EINA_FALSE; - it->item->item_moving_effect_timer = NULL; + it->item->item_reorder_move_animator = NULL; return ECORE_CALLBACK_CANCEL; } @@ -1315,7 +1323,7 @@ _item_place(Elm_Gen_Item *it, it->item->ry = it->item->oy; it->item->moving = EINA_TRUE; it->item->moving_effect_start_time = ecore_loop_time_get(); - it->item->item_moving_effect_timer = ecore_animator_add(_reorder_item_moving_effect_timer_cb, it); + it->item->item_reorder_move_animator = ecore_animator_add(_reorder_item_move_animator_cb, it); return; } } @@ -1385,10 +1393,10 @@ _item_place(Elm_Gen_Item *it, } } } - else if (it->item->item_moving_effect_timer) + else if (it->item->item_reorder_move_animator) { - ecore_animator_del(it->item->item_moving_effect_timer); - it->item->item_moving_effect_timer = NULL; + ecore_animator_del(it->item->item_reorder_move_animator); + it->item->item_reorder_move_animator = NULL; it->item->moving = EINA_FALSE; } } @@ -1429,7 +1437,6 @@ _item_del(Elm_Gen_Item *it) evas_event_freeze(evas_object_evas_get(obj)); it->wd->selected = eina_list_remove(it->wd->selected, it); if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE); - it->wd->item_count--; _elm_genlist_item_del_serious(it); elm_gengrid_item_class_unref((Elm_Gengrid_Item_Class *)it->itc); evas_event_thaw(evas_object_evas_get(obj)); @@ -1946,6 +1953,7 @@ elm_gengrid_add(Evas_Object *parent) wd->align_y = 0.5; wd->h_bounce = bounce; wd->v_bounce = bounce; + wd->highlight = EINA_TRUE; evas_object_smart_callback_add(obj, "scroll-hold-on", _hold_on, obj); evas_object_smart_callback_add(obj, "scroll-hold-off", _hold_off, obj); @@ -2200,23 +2208,6 @@ elm_gengrid_item_sorted_insert(Evas_Object *obj, return (Elm_Object_Item *)it; } -EINA_DEPRECATED Elm_Object_Item * -elm_gengrid_item_direct_sorted_insert(Evas_Object *obj, - const Elm_Gengrid_Item_Class *itc, - const void *data, - Eina_Compare_Cb comp, - Evas_Smart_Cb func, - const void *func_data) -{ - return elm_gengrid_item_sorted_insert(obj, itc, data, comp, func, func_data); -} - -EAPI void -elm_gengrid_item_del(Elm_Object_Item *it) -{ - elm_object_item_del(it); -} - EAPI void elm_gengrid_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) @@ -2267,32 +2258,12 @@ elm_gengrid_item_update(Elm_Object_Item *it) _item_place(_it, _it->x, _it->y); } -EAPI void * -elm_gengrid_item_data_get(const Elm_Object_Item *it) -{ - return elm_object_item_data_get(it); -} - -EAPI void -elm_gengrid_item_data_set(Elm_Object_Item *it, - const void *data) -{ - elm_object_item_data_set(it, (void *) data); -} - EAPI const Elm_Gengrid_Item_Class * elm_gengrid_item_item_class_get(const Elm_Object_Item *it) { return (Elm_Gengrid_Item_Class *)elm_genlist_item_item_class_get(it); } -EINA_DEPRECATED EAPI void -elm_gengrid_item_item_class_set(Elm_Object_Item *it, - const Elm_Gengrid_Item_Class *itc) -{ - elm_gengrid_item_item_class_update(it, itc); -} - EAPI void elm_gengrid_item_item_class_update(Elm_Object_Item *it, const Elm_Gengrid_Item_Class *itc) @@ -2391,19 +2362,6 @@ elm_gengrid_realized_items_update(Evas_Object *obj) elm_gengrid_item_update(it); } -EAPI void -elm_gengrid_item_disabled_set(Elm_Object_Item *it, - Eina_Bool disabled) -{ - elm_object_item_disabled_set(it, disabled); -} - -EAPI Eina_Bool -elm_gengrid_item_disabled_get(const Elm_Object_Item *it) -{ - return elm_object_item_disabled_get(it); -} - static Evas_Object * _elm_gengrid_item_label_create(void *data, Evas_Object *obj __UNUSED__, @@ -2595,54 +2553,6 @@ elm_gengrid_reorder_mode_get(const Evas_Object *obj) return wd->reorder_mode; } -EINA_DEPRECATED EAPI void -elm_gengrid_always_select_mode_set(Evas_Object *obj, - Eina_Bool always_select) -{ - if (always_select) - elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_ALWAYS); - else - { - Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj); - if (oldmode == ELM_OBJECT_SELECT_MODE_ALWAYS) - elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_DEFAULT); - } -} - -EINA_DEPRECATED EAPI Eina_Bool -elm_gengrid_always_select_mode_get(const Evas_Object *obj) -{ - Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj); - if (oldmode == ELM_OBJECT_SELECT_MODE_ALWAYS) - return EINA_TRUE; - else - return EINA_FALSE; -} - -EINA_DEPRECATED EAPI void -elm_gengrid_no_select_mode_set(Evas_Object *obj, - Eina_Bool no_select) -{ - if (no_select) - elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_NONE); - else - { - Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj); - if (oldmode == ELM_OBJECT_SELECT_MODE_NONE) - elm_genlist_select_mode_set(obj, ELM_OBJECT_SELECT_MODE_DEFAULT); - } -} - -EINA_DEPRECATED EAPI Eina_Bool -elm_gengrid_no_select_mode_get(const Evas_Object *obj) -{ - Elm_Object_Select_Mode oldmode = elm_genlist_select_mode_get(obj); - if (oldmode == ELM_OBJECT_SELECT_MODE_NONE) - return EINA_TRUE; - else - return EINA_FALSE; -} - EAPI void elm_gengrid_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, @@ -2757,12 +2667,6 @@ elm_gengrid_item_prev_get(const Elm_Object_Item *it) return elm_genlist_item_prev_get(it); } -EAPI Evas_Object * -elm_gengrid_item_gengrid_get(const Elm_Object_Item *it) -{ - return elm_object_item_widget_get(it); -} - EAPI void elm_gengrid_item_show(Elm_Object_Item *it, Elm_Gengrid_Item_Scrollto_Type type) { @@ -2937,3 +2841,29 @@ elm_gengrid_item_index_get(const Elm_Object_Item *it) return _it->position; } + +EAPI void +elm_gengrid_item_select_mode_set(Elm_Object_Item *it, + Elm_Object_Select_Mode mode) +{ + ELM_OBJ_ITEM_CHECK_OR_RETURN(it); + Elm_Gen_Item *_it = (Elm_Gen_Item *)it; + if (!_it) return; + if (_it->generation < _it->wd->generation) return; + if (mode >= ELM_OBJECT_SELECT_MODE_MAX) + return; + if (_it->select_mode != mode) + _it->select_mode = mode; + + if (_it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) + elm_gengrid_item_update(it); +} + +EAPI Elm_Object_Select_Mode +elm_gengrid_item_select_mode_get(const Elm_Object_Item *it) +{ + ELM_OBJ_ITEM_CHECK_OR_RETURN(it, ELM_OBJECT_SELECT_MODE_MAX); + Elm_Gen_Item *_it = (Elm_Gen_Item *)it; + if (!_it) return ELM_OBJECT_SELECT_MODE_MAX; + return _it->select_mode; +}