EINTERN int E_EVENT_ZONE_DISPLAY_STATE_CHANGE = 0;
EINTERN int E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGE = 0;
-#define E_ZONE_FLIP_LEFT(zone) (((((zone)->desk_x_count > 1)) || ((zone)->desk_x_current > 0)) && (zone)->edge.left)
-#define E_ZONE_FLIP_RIGHT(zone) (((((zone)->desk_x_count > 1)) || (((zone)->desk_x_current + 1) < (zone)->desk_x_count)) && (zone)->edge.right)
-#define E_ZONE_FLIP_UP(zone) (((((zone)->desk_y_count > 1)) || ((zone)->desk_y_current > 0)) && (zone)->edge.top)
-#define E_ZONE_FLIP_DOWN(zone) (((((zone)->desk_y_count > 1)) || (((zone)->desk_y_current + 1) < (zone)->desk_y_count)) && (zone)->edge.bottom)
-
#define E_ZONE_CORNER_RATIO 0.025;
static int _e_zone_hooks_delete = 0;
}
EINTERN void
-e_zone_flip_coords_handle(E_Zone *zone,
- int x,
- int y)
-{
- E_OBJECT_CHECK(zone);
- E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
-
- if (zone->flip.switching)
- {
- int cx, cy, w, h;
-
- switch (zone->flip.switching)
- {
- case E_ZONE_EDGE_LEFT:
- evas_object_geometry_get(zone->edge.left, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- break;
- case E_ZONE_EDGE_RIGHT:
- evas_object_geometry_get(zone->edge.right, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- break;
- case E_ZONE_EDGE_TOP:
- evas_object_geometry_get(zone->edge.top, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- break;
- case E_ZONE_EDGE_BOTTOM:
- evas_object_geometry_get(zone->edge.bottom, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- break;
-
- case E_ZONE_EDGE_TOP_LEFT:
- evas_object_geometry_get(zone->corner.left_top, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- {
- evas_object_geometry_get(zone->corner.top_left, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- }
- break;
- case E_ZONE_EDGE_TOP_RIGHT:
- evas_object_geometry_get(zone->corner.right_top, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- {
- evas_object_geometry_get(zone->corner.top_right, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- }
- break;
- case E_ZONE_EDGE_BOTTOM_RIGHT:
- evas_object_geometry_get(zone->corner.right_bottom, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- {
- evas_object_geometry_get(zone->corner.bottom_right, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- }
- break;
- case E_ZONE_EDGE_BOTTOM_LEFT:
- evas_object_geometry_get(zone->corner.left_bottom, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- {
- evas_object_geometry_get(zone->corner.bottom_left, &cx, &cy, &w, &h);
- if (!E_INSIDE(x, y, cx, cy, w, h))
- zone->flip.switching = E_ZONE_EDGE_NONE;
- }
- break;
- default: break;
- }
- if (zone->flip.switching) return;
- }
-}
-
-EINTERN void
e_zone_desk_count_set(E_Zone *zone,
int x_count,
int y_count)
EINA_LIST_FOREACH(e_comp->zones, l, zone)
{
- zone->flip.switching = E_ZONE_EDGE_NONE;
if (zone->edge.left) evas_object_hide(zone->edge.left);
if (zone->edge.right) evas_object_hide(zone->edge.right);
if (zone->edge.top) evas_object_hide(zone->edge.top);
if (edge == E_ZONE_EDGE_NONE) return;
EINA_LIST_FOREACH(e_comp->zones, l, zone)
{
- if (zone->flip.switching == edge)
- zone->flip.switching = E_ZONE_EDGE_NONE;
switch (edge)
{
case E_ZONE_EDGE_LEFT: