twm resize--
This commit is contained in:
parent
2ae2b042a2
commit
a3e5eedd5c
129
src/moveresize.c
129
src/moveresize.c
|
@ -160,49 +160,61 @@ resize_text_update(E_Client *ec)
|
||||||
}
|
}
|
||||||
evas_object_move(resize_text, x, y);
|
evas_object_move(resize_text, x, y);
|
||||||
|
|
||||||
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y);
|
if (resize_rect[0])
|
||||||
if (!zone1) zone1 = ec->zone;
|
{
|
||||||
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y);
|
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y);
|
||||||
if (!zone2) zone2 = ec->zone;
|
if (!zone1) zone1 = ec->zone;
|
||||||
if (zone1 == zone2)
|
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y);
|
||||||
x = zone1->x + zone1->w;
|
if (!zone2) zone2 = ec->zone;
|
||||||
else
|
if (zone1 == zone2)
|
||||||
x = zone2->x + zone2->w;
|
x = zone1->x + zone1->w;
|
||||||
/* top */
|
else
|
||||||
evas_object_line_xy_set(resize_rect[0], zone1->x, ec->y, x, ec->y);
|
x = zone2->x + zone2->w;
|
||||||
|
/* top */
|
||||||
|
evas_object_line_xy_set(resize_rect[0], zone1->x, ec->y, x, ec->y);
|
||||||
|
}
|
||||||
|
|
||||||
zone1 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y);
|
if (resize_rect[1])
|
||||||
if (!zone1) zone1 = ec->zone;
|
{
|
||||||
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y + ec->h);
|
zone1 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y);
|
||||||
if (!zone2) zone2 = ec->zone;
|
if (!zone1) zone1 = ec->zone;
|
||||||
if (zone1 == zone2)
|
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y + ec->h);
|
||||||
y = zone1->y + zone1->h;
|
if (!zone2) zone2 = ec->zone;
|
||||||
else
|
if (zone1 == zone2)
|
||||||
y = zone2->y + zone2->h;
|
y = zone1->y + zone1->h;
|
||||||
/* right */
|
else
|
||||||
evas_object_line_xy_set(resize_rect[1], ec->x + ec->w, zone1->y, ec->x + ec->w, y);
|
y = zone2->y + zone2->h;
|
||||||
|
/* right */
|
||||||
|
evas_object_line_xy_set(resize_rect[1], ec->x + ec->w, zone1->y, ec->x + ec->w, y);
|
||||||
|
}
|
||||||
|
|
||||||
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y + ec->h);
|
if (resize_rect[2])
|
||||||
if (!zone1) zone1 = ec->zone;
|
{
|
||||||
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y + ec->h);
|
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y + ec->h);
|
||||||
if (!zone2) zone2 = ec->zone;
|
if (!zone1) zone1 = ec->zone;
|
||||||
if (zone1 == zone2)
|
zone2 = e_comp_zone_xy_get(ec->comp, ec->x + ec->w, ec->y + ec->h);
|
||||||
x = zone1->x + zone1->w;
|
if (!zone2) zone2 = ec->zone;
|
||||||
else
|
if (zone1 == zone2)
|
||||||
x = zone2->x + zone2->w;
|
x = zone1->x + zone1->w;
|
||||||
/* bottom */
|
else
|
||||||
evas_object_line_xy_set(resize_rect[2], zone1->x, ec->y + ec->h, x, ec->y + ec->h);
|
x = zone2->x + zone2->w;
|
||||||
|
/* bottom */
|
||||||
|
evas_object_line_xy_set(resize_rect[2], zone1->x, ec->y + ec->h, x, ec->y + ec->h);
|
||||||
|
}
|
||||||
|
|
||||||
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y);
|
if (resize_rect[3])
|
||||||
if (!zone1) zone1 = ec->zone;
|
{
|
||||||
zone2 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y + ec->h);
|
zone1 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y);
|
||||||
if (!zone2) zone2 = ec->zone;
|
if (!zone1) zone1 = ec->zone;
|
||||||
if (zone1 == zone2)
|
zone2 = e_comp_zone_xy_get(ec->comp, ec->x, ec->y + ec->h);
|
||||||
y = zone1->y + zone1->h;
|
if (!zone2) zone2 = ec->zone;
|
||||||
else
|
if (zone1 == zone2)
|
||||||
y = zone2->y + zone2->h;
|
y = zone1->y + zone1->h;
|
||||||
/* left */
|
else
|
||||||
evas_object_line_xy_set(resize_rect[3], ec->x, zone1->y, ec->x, y);
|
y = zone2->y + zone2->h;
|
||||||
|
/* left */
|
||||||
|
evas_object_line_xy_set(resize_rect[3], ec->x, zone1->y, ec->x, y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
|
@ -309,11 +321,41 @@ resize_begin(void *d EINA_UNUSED, E_Client *ec)
|
||||||
ec->layer_block = 1;
|
ec->layer_block = 1;
|
||||||
evas_object_layer_set(ec->frame, E_LAYER_MENU + 1);
|
evas_object_layer_set(ec->frame, E_LAYER_MENU + 1);
|
||||||
|
|
||||||
for (x = 0; x < 4; x++)
|
switch (ec->resize_mode)
|
||||||
{
|
{
|
||||||
resize_rect[x] = line_add(ec->comp->evas);
|
case E_POINTER_RESIZE_TL:
|
||||||
pulse(NULL, NULL, resize_rect[x]);
|
resize_rect[0] = line_add(ec->comp->evas);
|
||||||
|
resize_rect[3] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_T:
|
||||||
|
resize_rect[0] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_TR:
|
||||||
|
resize_rect[0] = line_add(ec->comp->evas);
|
||||||
|
resize_rect[1] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_R:
|
||||||
|
resize_rect[1] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_BR:
|
||||||
|
resize_rect[1] = line_add(ec->comp->evas);
|
||||||
|
resize_rect[2] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_B:
|
||||||
|
resize_rect[2] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_BL:
|
||||||
|
resize_rect[2] = line_add(ec->comp->evas);
|
||||||
|
resize_rect[3] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
case E_POINTER_RESIZE_L:
|
||||||
|
resize_rect[3] = line_add(ec->comp->evas);
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
|
for (x = 0; x < 4; x++)
|
||||||
|
if (resize_rect[x])
|
||||||
|
pulse(NULL, NULL, resize_rect[x]);
|
||||||
|
|
||||||
resize_text = text_add(ec->comp->evas);
|
resize_text = text_add(ec->comp->evas);
|
||||||
resize_text_update(ec);
|
resize_text_update(ec);
|
||||||
|
@ -333,6 +375,7 @@ resize_end(void *d EINA_UNUSED, E_Client *ec EINA_UNUSED)
|
||||||
efx_fade(resize_text, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
efx_fade(resize_text, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||||
for (x = 0; x < 4; x++)
|
for (x = 0; x < 4; x++)
|
||||||
{
|
{
|
||||||
|
if (!resize_rect[x]) continue;
|
||||||
efx_fade(resize_rect[x], EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
efx_fade(resize_rect[x], EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL);
|
||||||
efx_queue_clear(resize_rect[x]);
|
efx_queue_clear(resize_rect[x]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue