Enlightenment CVS committal
Author : rephorm
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_layout.c e_layout.h
Log Message:
better pager dragging
* drag windows around within pager
* dnd when going outside of the pager
* window placed at location in pager of drop
* window centered under mouse when dropped off of pager
I'm not sure yet to do with original window when dragging off the pager. Right
now it stays at last "on pager" location, which is a bit ugly. Should it jump
back to the original position? Or disappear entirely?
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_layout.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- e_layout.c 7 Jan 2006 10:39:45 -0000 1.10
+++ e_layout.c 29 Mar 2006 00:35:16 -0000 1.11
@@ -103,6 +103,28 @@
}
EAPI void
+e_layout_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord
cy, Evas_Coord *vx, Evas_Coord *vy)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+
+ if (vx) *vx = (cx - sd->x) * ((double)(sd->vw) / sd->w);
+ if (vy) *vy = (cy - sd->y) * ((double)(sd->vh) / sd->h);
+}
+
+EAPI void
+e_layout_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord
vy, Evas_Coord *cx, Evas_Coord *cy)
+{
+ E_Smart_Data *sd;
+
+ sd = evas_object_smart_data_get(obj);
+
+ if (cx) *cx = vx * ((double)(sd->w) / sd->vw) + sd->x;
+ if (cy) *cy = vy * ((double)(sd->h) / sd->vh) + sd->y;
+}
+
+EAPI void
e_layout_pack(Evas_Object *obj, Evas_Object *child)
{
E_Smart_Data *sd;
@@ -207,6 +229,20 @@
evas_object_stack_above(obj, above);
li->sd->items = evas_list_append_relative(li->sd->items, obj, above);
}
+}
+
+EAPI void
+e_layout_child_geometry_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y,
Evas_Coord *w, Evas_Coord *h)
+{
+ E_Layout_Item *li;
+
+ li = evas_object_data_get(obj, "e_layout_data");
+ if (!li) return;
+
+ if (x) *x = li->x;
+ if (y) *y = li->y;
+ if (w) *w = li->w;
+ if (h) *h = li->h;
}
EAPI void
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_layout.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_layout.h 18 Mar 2005 16:30:47 -0000 1.2
+++ e_layout.h 29 Mar 2006 00:35:16 -0000 1.3
@@ -11,6 +11,10 @@
EAPI int e_layout_thaw (Evas_Object *obj);
EAPI void e_layout_virtual_size_set (Evas_Object *obj, Evas_Coord w,
Evas_Coord h);
EAPI void e_layout_virtual_size_get (Evas_Object *obj, Evas_Coord *w,
Evas_Coord *h);
+
+EAPI void e_layout_coord_canvas_to_virtual (Evas_Object *obj, Evas_Coord cx,
Evas_Coord cy, Evas_Coord *vx, Evas_Coord *vy);
+EAPI void e_layout_coord_virtual_to_canvas (Evas_Object *obj, Evas_Coord vx,
Evas_Coord vy, Evas_Coord *cx, Evas_Coord *cy);
+
EAPI void e_layout_pack (Evas_Object *obj, Evas_Object
*child);
EAPI void e_layout_child_move (Evas_Object *obj, Evas_Coord x,
Evas_Coord y);
EAPI void e_layout_child_resize (Evas_Object *obj, Evas_Coord w,
Evas_Coord h);
@@ -18,6 +22,7 @@
EAPI void e_layout_child_lower (Evas_Object *obj);
EAPI void e_layout_child_raise_above (Evas_Object *obj, Evas_Object
*above);
EAPI void e_layout_child_lower_below (Evas_Object *obj, Evas_Object
*below);
+EAPI void e_layout_child_geometry_get(Evas_Object *obj, Evas_Coord *x,
Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
EAPI void e_layout_unpack (Evas_Object *obj);
#endif
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs