add SLIDE_SPLIT

desksanity-1.0
discomfitor 10 years ago
parent d4adcf4906
commit 0e82bcf4e5
  1. 63
      src/desksanity.c

@ -14,6 +14,7 @@ enum
DS_GROW,
DS_ROTATE_OUT,
DS_ROTATE_IN,
DS_SLIDE_SPLIT,
DS_LAST,
} DS_Type;
@ -178,6 +179,68 @@ _ds_show(E_Desk *desk, int dx, int dy)
720, 0.4, NULL, NULL);
efx_resize(dm_show, EFX_EFFECT_SPEED_LINEAR, NULL, desk->zone->w, desk->zone->h, 0.4, _ds_end, NULL);
break;
case DS_SLIDE_SPLIT:
{
Evas_Object *dm_hide2, *clip1, *clip2;
//int x, y, w, h; //clip1
int xx, yy, ww, hh; //clip2
int ex, ey, exx, eyy; //move coords
dm_hide2 = dm_add(desk_hide);
e_comp_object_util_del_list_append(dm_hide, dm_hide2);
clip1 = evas_object_rectangle_add(e_comp_get(desk_show)->evas);
x = desk_show->zone->x;
y = desk_show->zone->y;
w = desk_show->zone->w;
h = desk_show->zone->h;
if (dy)
w /= 2;
else
h /= 2;
evas_object_geometry_set(clip1, x, y, w, h);
e_comp_object_util_del_list_append(dm_hide, clip1);
evas_object_clip_set(dm_hide, clip1);
evas_object_show(clip1);
clip2 = evas_object_rectangle_add(e_comp_get(desk_show)->evas);
xx = desk_show->zone->x;
yy = desk_show->zone->y;
ww = w;
hh = h;
if (dx)
yy += h;
else
xx += w;
evas_object_geometry_set(clip2, xx, yy, ww, hh);
e_comp_object_util_del_list_append(dm_hide, clip2);
evas_object_clip_set(dm_hide2, clip2);
evas_object_show(clip2);
E_FREE_FUNC(dm_show, evas_object_del);
if (dx)
{
ex = desk_show->zone->x - (dx * desk_show->zone->w);
exx = desk_show->zone->x + (dx * desk_show->zone->w);
}
else
ex = exx = desk_show->zone->x;
if (dy)
{
ey = desk_show->zone->y - (dy * desk_show->zone->h);
eyy = desk_show->zone->y + (dy * desk_show->zone->h);
}
else
ey = eyy = desk_show->zone->y;
efx_move(dm_hide, EFX_EFFECT_SPEED_ACCELERATE,
EFX_POINT(ex, ey),
0.5, NULL, NULL);
efx_move(dm_hide2, EFX_EFFECT_SPEED_ACCELERATE,
EFX_POINT(exx, eyy),
0.5, _ds_end, NULL);
}
break;
default: break;
}
}

Loading…
Cancel
Save