From: raster Date: Fri, 3 Jun 2011 07:16:39 +0000 (+0000) Subject: From: cnook X-Git-Tag: REL_F_I9500_20120323_1~17^2~2639 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce3939586d9b2fe4add18621a2c1205434e51283;p=framework%2Fuifw%2Felementary.git From: cnook Subject: Re: [E-devel] [Patch][CtxPopup] Add Arrow on the drag-able area of Base Dear Mr. Hermet, Hello, I have attached more accurate patch based on latest elementary. The last patch already there. All your review items are reflected on the attached patch. Please review this again, sorry for any inconvenient. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@59911 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/data/themes/default.edc b/data/themes/default.edc index 1084d39..e996959 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -7980,7 +7980,7 @@ collections { } } } - part { name: "elm.swallow.arrowUp"; + part { name: "elm.swallow.arrow_up"; type: SWALLOW; mouse_events: 0; scale: 1; @@ -7994,14 +7994,9 @@ collections { min: 40 40; fixed: 1 1; visible: 1; - align: 0.5 1; - rel2 { - relative: 1 0; - to: "arrow_area_up"; - } } } - part { name: "elm.swallow.arrowDown"; + part { name: "elm.swallow.arrow_down"; type: SWALLOW; mouse_events: 0; scale: 1; @@ -8015,14 +8010,9 @@ collections { min: 40 40; fixed: 1 1; visible: 1; - align: 0.5 0; - rel1 { - relative: 1 1; - to: "arrow_area_down"; - } } } - part { name: "elm.swallow.arrowLeft"; + part { name: "elm.swallow.arrow_left"; type: SWALLOW; mouse_events: 0; scale: 1; @@ -8036,14 +8026,9 @@ collections { min: 40 40; fixed: 1 1; visible: 1; - align: 1 0.5; - rel2 { - relative: 0 1; - to: "arrow_area_left"; - } } } - part { name: "elm.swallow.arrowRight"; + part { name: "elm.swallow.arrow_right"; type: SWALLOW; mouse_events: 0; scale: 1; @@ -8057,11 +8042,6 @@ collections { min: 40 40; fixed: 1 1; visible: 1; - align: 0 0.5; - rel1 { - relative: 1 0; - to: "arrow_area_right"; - } } } part { name: "base"; diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index 14b4f7c..bd1b787 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -484,79 +484,55 @@ _update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir) { case ELM_CTXPOPUP_DIRECTION_LEFT: edje_object_signal_emit(wd->arrow, "elm,state,left", "elm"); - - // if user does not use dragable part - arrow_size.y = (y - (arrow_size.h * 0.5)); - arrow_size.x = x; - - edje_object_part_swallow(wd->base, "elm.swallow.arrowLeft", wd->arrow); + edje_object_part_swallow(wd->base, "elm.swallow.arrow_left", wd->arrow); if (base_size.h > 0) { - if (y - base_size.y < 0) y = 0; - else if (y > base_size.y + base_size.h) y = base_size.h; - else y = y - base_size.y; - edje_object_part_drag_value_set(wd->base, "elm.swallow.arrowLeft", 0.5, - (double) (y) / (double) (base_size.h)); + if (y < (arrow_size.h * 0.5) + base_size.y) y = 0; + else if (y > base_size.y + base_size.h - (arrow_size.h * 0.5)) y = base_size.h - arrow_size.h; + else y = y - base_size.y - (arrow_size.h * 0.5); + edje_object_part_drag_value_set(wd->base, "elm.swallow.arrow_left", 0.5, + (double) (y) / (double) (base_size.h - arrow_size.h)); } break; case ELM_CTXPOPUP_DIRECTION_RIGHT: edje_object_signal_emit(wd->arrow, "elm,state,right", "elm"); - - // if user does not use dragable part - arrow_size.y = (y - (arrow_size.h * 0.5)); - arrow_size.x = (x - arrow_size.w); - - edje_object_part_swallow(wd->base, "elm.swallow.arrowRight", wd->arrow); + edje_object_part_swallow(wd->base, "elm.swallow.arrow_right", wd->arrow); if (base_size.h > 0) { - if (y -base_size.y < 0) y = 0; - else if (y > base_size.y + base_size.h) y = base_size.h; - else y = y - base_size.y; - edje_object_part_drag_value_set(wd->base, "elm.swallow.arrowRight", 0.5, - (double) (y) / (double) (base_size.h)); + if (y < (arrow_size.h * 0.5) + base_size.y) y = 0; + else if (y > base_size.y + base_size.h - (arrow_size.h * 0.5)) y = base_size.h - arrow_size.h; + else y = y - base_size.y - (arrow_size.h * 0.5); + edje_object_part_drag_value_set(wd->base, "elm.swallow.arrow_right", 0.5, + (double) (y) / (double) (base_size.h - arrow_size.h)); } break; case ELM_CTXPOPUP_DIRECTION_UP: edje_object_signal_emit(wd->arrow, "elm,state,top", "elm"); - - // if user does not use dragable part - arrow_size.x = (x - (arrow_size.w * 0.5)); - arrow_size.y = y; - - edje_object_part_swallow(wd->base, "elm.swallow.arrowUp", wd->arrow); + edje_object_part_swallow(wd->base, "elm.swallow.arrow_up", wd->arrow); if (base_size.w > 0) { - if (x - base_size.x < 0) x = 0; - else if (x > base_size.x + base_size.w) x = base_size.w; - else x = x - base_size.x; - edje_object_part_drag_value_set(wd->base, "elm.swallow.arrowUp", - (double) (x) / (double) (base_size.w), 0.5); + if (x < (arrow_size.w * 0.5) + base_size.x) x = 0; + else if (x > base_size.x + base_size.w - (arrow_size.w * 0.5)) x = base_size.w - arrow_size.w; + else x = x - base_size.x - (arrow_size.w * 0.5); + edje_object_part_drag_value_set(wd->base, "elm.swallow.arrow_up", + (double) (x) / (double) (base_size.w - arrow_size.w), 0.5); } break; case ELM_CTXPOPUP_DIRECTION_DOWN: edje_object_signal_emit(wd->arrow, "elm,state,bottom", "elm"); - - // if user does not use dragable part - arrow_size.x = (x - (arrow_size.w * 0.5)); - arrow_size.y = (y - arrow_size.h); - - edje_object_signal_emit(wd->arrow, "elm,state,bottom", "elm"); - edje_object_part_swallow(wd->base, "elm.swallow.arrowDown", wd->arrow); + edje_object_part_swallow(wd->base, "elm.swallow.arrow_down", wd->arrow); if (base_size.w > 0) { - if (x - base_size.x < 0) x = 0; - else if (x > base_size.x + base_size.w) x = base_size.w; - else x = x - base_size.x; - edje_object_part_drag_value_set(wd->base, "elm.swallow.arrowDown", - (double) (x) / (double) (base_size.w), 0.5); + if (x < (arrow_size.w * 0.5) + base_size.x) x = 0; + else if (x > base_size.x + base_size.w - (arrow_size.w * 0.5)) x = base_size.w - arrow_size.w; + else x = x - base_size.x - (arrow_size.w * 0.5); + edje_object_part_drag_value_set(wd->base, "elm.swallow.arrow_down", + (double) (x) / (double) (base_size.w - arrow_size.w), 0.5); } break; default: break; } - - // if user does not use dragable part - evas_object_move(wd->arrow, arrow_size.x, arrow_size.y); } static void