add quad merge

This commit is contained in:
discomfitor 2013-10-19 13:55:18 +01:00
parent 58dd0effac
commit d2949f7570
1 changed files with 32 additions and 0 deletions

View File

@ -18,6 +18,7 @@ typedef enum
DS_ROTATE_IN,
DS_SLIDE_SPLIT,
DS_QUAD_SPLIT,
DS_QUAD_MERGE,
DS_LAST,
} DS_Type;
@ -298,6 +299,37 @@ _ds_show(E_Desk *desk, int dx, int dy)
}
}
break;
case DS_QUAD_MERGE:
{
int i;
Evas_Object *dmh[4] = {NULL};
Evas_Object *clip[4];
Evas_Point cxy[4] = {{desk->zone->x, desk->zone->y},
{desk->zone->x + (desk->zone->w / 2), desk->zone->y},
{desk->zone->x, desk->zone->y + (desk->zone->h / 2)},
{desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)}
};
E_FREE_FUNC(dm_show, evas_object_del);
dmh[0] = dm_hide;
for (i = 0; i < 4; i++)
{
if (!dmh[i])
{
dmh[i] = dm_add(desk_hide);
e_comp_object_util_del_list_append(dm_hide, dmh[i]);
}
clip[i] = evas_object_rectangle_add(e_comp_get(desk)->evas);
e_comp_object_util_del_list_append(dm_hide, clip[i]);
evas_object_geometry_set(clip[i], cxy[i].x, cxy[i].y, desk->zone->w / 2, desk->zone->h / 2);
evas_object_clip_set(dmh[i], clip[i]);
evas_object_show(clip[i]);
efx_resize(clip[i], EFX_EFFECT_SPEED_ACCELERATE,
EFX_POINT(desk->zone->x + (desk->zone->w / 2), desk->zone->y + (desk->zone->h / 2)),
1, 1 ,0.8, (i == 3) ? _ds_end : NULL, NULL);
}
}
break;
default: break;
}
}