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
- part { name: "elm.swallow.arrowUp";
+ part { name: "elm.swallow.arrow_up";
type: SWALLOW;
mouse_events: 0;
scale: 1;
type: SWALLOW;
mouse_events: 0;
scale: 1;
min: 40 40;
fixed: 1 1;
visible: 1;
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;
type: SWALLOW;
mouse_events: 0;
scale: 1;
min: 40 40;
fixed: 1 1;
visible: 1;
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;
type: SWALLOW;
mouse_events: 0;
scale: 1;
min: 40 40;
fixed: 1 1;
visible: 1;
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;
type: SWALLOW;
mouse_events: 0;
scale: 1;
min: 40 40;
fixed: 1 1;
visible: 1;
min: 40 40;
fixed: 1 1;
visible: 1;
- align: 0 0.5;
- rel1 {
- relative: 1 0;
- to: "arrow_area_right";
- }
{
case ELM_CTXPOPUP_DIRECTION_LEFT:
edje_object_signal_emit(wd->arrow, "elm,state,left", "elm");
{
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 (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");
}
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 (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");
}
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 (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");
}
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 (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;
}
}
break;
default:
break;
}
-
- // if user does not use dragable part
- evas_object_move(wd->arrow, arrow_size.x, arrow_size.y);