Make shade animation / speed a config option. (speed is in px / sec)
Shade now does a decelerate transition instead of linear. SVN revision: 12504
This commit is contained in:
parent
60ff11d889
commit
8efaab9f08
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
@ -390,20 +390,25 @@ e_border_shade(E_Border *bd)
|
||||||
if (!bd->shaded)
|
if (!bd->shaded)
|
||||||
{
|
{
|
||||||
printf("SHADE!\n");
|
printf("SHADE!\n");
|
||||||
/*
|
if (!(e_config->border_shade_animate))
|
||||||
bd->h = bd->client_inset.t + bd->client_inset.b;
|
{
|
||||||
bd->changes.size = 1;
|
bd->h = bd->client_inset.t + bd->client_inset.b;
|
||||||
bd->shaded = 1;
|
bd->changes.size = 1;
|
||||||
bd->changes.shaded = 1;
|
bd->shaded = 1;
|
||||||
bd->changed = 1;
|
bd->changes.shaded = 1;
|
||||||
*/
|
bd->changed = 1;
|
||||||
bd->shade.start = ecore_time_get();
|
edje_object_signal_emit(bd->bg_object, "shaded", "");
|
||||||
bd->shading = 1;
|
}
|
||||||
bd->changes.shading = 1;
|
else
|
||||||
bd->changed = 1;
|
{
|
||||||
|
bd->shade.start = ecore_time_get();
|
||||||
|
bd->shading = 1;
|
||||||
|
bd->changes.shading = 1;
|
||||||
|
bd->changed = 1;
|
||||||
|
|
||||||
bd->shade.anim = ecore_animator_add(_e_border_shade_animator, bd);
|
bd->shade.anim = ecore_animator_add(_e_border_shade_animator, bd);
|
||||||
edje_object_signal_emit(bd->bg_object, "shading", "");
|
edje_object_signal_emit(bd->bg_object, "shading", "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,20 +419,26 @@ e_border_unshade(E_Border *bd)
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
{
|
{
|
||||||
printf("UNSHADE!\n");
|
printf("UNSHADE!\n");
|
||||||
/*
|
|
||||||
bd->h = bd->client_inset.t + bd->client.h + bd->client_inset.b;
|
|
||||||
bd->changes.size = 1;
|
|
||||||
bd->shaded = 0;
|
|
||||||
bd->changes.shaded = 1;
|
|
||||||
bd->changed = 1;
|
|
||||||
*/
|
|
||||||
bd->shade.start = ecore_time_get();
|
|
||||||
bd->shading = 1;
|
|
||||||
bd->changes.shading = 1;
|
|
||||||
bd->changed = 1;
|
|
||||||
|
|
||||||
bd->shade.anim = ecore_animator_add(_e_border_shade_animator, bd);
|
if (!(e_config->border_shade_animate))
|
||||||
edje_object_signal_emit(bd->bg_object, "unshading", "");
|
{
|
||||||
|
bd->h = bd->client_inset.t + bd->client.h + bd->client_inset.b;
|
||||||
|
bd->changes.size = 1;
|
||||||
|
bd->shaded = 0;
|
||||||
|
bd->changes.shaded = 1;
|
||||||
|
bd->changed = 1;
|
||||||
|
edje_object_signal_emit(bd->bg_object, "unshaded", "");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bd->shade.start = ecore_time_get();
|
||||||
|
bd->shading = 1;
|
||||||
|
bd->changes.shading = 1;
|
||||||
|
bd->changed = 1;
|
||||||
|
|
||||||
|
bd->shade.anim = ecore_animator_add(_e_border_shade_animator, bd);
|
||||||
|
edje_object_signal_emit(bd->bg_object, "unshading", "");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2081,19 +2092,21 @@ static int
|
||||||
_e_border_shade_animator(void *data)
|
_e_border_shade_animator(void *data)
|
||||||
{
|
{
|
||||||
E_Border *bd = data;
|
E_Border *bd = data;
|
||||||
double dt;
|
double dt, val;
|
||||||
double dur = 0.15; /* FIXME make this configurable */
|
double dur = bd->client.h / e_config->border_shade_speed;
|
||||||
|
|
||||||
dt = ecore_time_get() - bd->shade.start;
|
dt = ecore_time_get() - bd->shade.start;
|
||||||
|
|
||||||
|
val = dt / dur; /* unshading */
|
||||||
|
|
||||||
|
if (val < 0.0) val = 0.0;
|
||||||
|
else if (val > 1.0) val = 1.0;
|
||||||
|
|
||||||
|
/* FIXME support other tween types (this is decel) */
|
||||||
if (bd->shaded)
|
if (bd->shaded)
|
||||||
bd->shade.val = dt / dur; /* unshading */
|
bd->shade.val = sin(val * M_PI / 2.0);
|
||||||
else
|
else
|
||||||
bd->shade.val = 1 - (dt / dur); /* shading */
|
bd->shade.val = 1 - sin(val * M_PI / 2.0);
|
||||||
|
|
||||||
if (bd->shade.val < 0.0) bd->shade.val = 0.0;
|
|
||||||
else if (bd->shade.val > 1.0) bd->shade.val = 1.0;
|
|
||||||
|
|
||||||
|
|
||||||
/* FIXME support other directions */
|
/* FIXME support other directions */
|
||||||
bd->h = bd->client_inset.t + bd->client_inset.b + bd->client.h * bd->shade.val;
|
bd->h = bd->client_inset.t + bd->client_inset.b + bd->client.h * bd->shade.val;
|
||||||
|
@ -2101,6 +2114,7 @@ _e_border_shade_animator(void *data)
|
||||||
bd->changes.size = 1;
|
bd->changes.size = 1;
|
||||||
bd->changed = 1;
|
bd->changed = 1;
|
||||||
|
|
||||||
|
/* we're done */
|
||||||
if ( (bd->shaded && (bd->shade.val == 1)) ||
|
if ( (bd->shaded && (bd->shade.val == 1)) ||
|
||||||
(!(bd->shaded) && (bd->shade.val == 0)) )
|
(!(bd->shaded) && (bd->shade.val == 0)) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
/*
|
||||||
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
|
*/
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
/* TODO List
|
/* TODO List
|
||||||
|
@ -43,6 +46,8 @@ e_config_init(void)
|
||||||
E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE);
|
E_CONFIG_VAL(D, T, menus_scroll_speed, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, menus_fast_mouse_move_thresthold, DOUBLE);
|
E_CONFIG_VAL(D, T, menus_fast_mouse_move_thresthold, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE);
|
E_CONFIG_VAL(D, T, menus_click_drag_timeout, DOUBLE);
|
||||||
|
E_CONFIG_VAL(D, T, border_shade_animate, INT);
|
||||||
|
E_CONFIG_VAL(D, T, border_shade_speed, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, framerate, DOUBLE);
|
E_CONFIG_VAL(D, T, framerate, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, image_cache, INT);
|
E_CONFIG_VAL(D, T, image_cache, INT);
|
||||||
E_CONFIG_VAL(D, T, font_cache, INT);
|
E_CONFIG_VAL(D, T, font_cache, INT);
|
||||||
|
@ -57,6 +62,8 @@ e_config_init(void)
|
||||||
e_config->menus_scroll_speed = 1000.0;
|
e_config->menus_scroll_speed = 1000.0;
|
||||||
e_config->menus_fast_mouse_move_thresthold = 300.0;
|
e_config->menus_fast_mouse_move_thresthold = 300.0;
|
||||||
e_config->menus_click_drag_timeout = DEF_MENUCLICK;
|
e_config->menus_click_drag_timeout = DEF_MENUCLICK;
|
||||||
|
e_config->border_shade_animate = 1;
|
||||||
|
e_config->border_shade_speed = 1000.0;
|
||||||
e_config->framerate = 30.0;
|
e_config->framerate = 30.0;
|
||||||
e_config->image_cache = 2048;
|
e_config->image_cache = 2048;
|
||||||
e_config->font_cache = 512;
|
e_config->font_cache = 512;
|
||||||
|
@ -84,6 +91,8 @@ e_config_init(void)
|
||||||
E_CONFIG_LIMIT(e_config->menus_scroll_speed, 1.0, 20000.0);
|
E_CONFIG_LIMIT(e_config->menus_scroll_speed, 1.0, 20000.0);
|
||||||
E_CONFIG_LIMIT(e_config->menus_fast_mouse_move_thresthold, 1.0, 2000.0);
|
E_CONFIG_LIMIT(e_config->menus_fast_mouse_move_thresthold, 1.0, 2000.0);
|
||||||
E_CONFIG_LIMIT(e_config->menus_click_drag_timeout, 0.0, 10.0);
|
E_CONFIG_LIMIT(e_config->menus_click_drag_timeout, 0.0, 10.0);
|
||||||
|
E_CONFIG_LIMIT(e_config->border_shade_animate, 0, 1);
|
||||||
|
E_CONFIG_LIMIT(e_config->border_shade_speed, 1, 20000.0);
|
||||||
E_CONFIG_LIMIT(e_config->framerate, 1.0, 200.0);
|
E_CONFIG_LIMIT(e_config->framerate, 1.0, 200.0);
|
||||||
E_CONFIG_LIMIT(e_config->image_cache, 0, 256 * 1024);
|
E_CONFIG_LIMIT(e_config->image_cache, 0, 256 * 1024);
|
||||||
E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024);
|
E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024);
|
||||||
|
|
|
@ -12,6 +12,8 @@ struct _E_Config
|
||||||
double menus_scroll_speed;
|
double menus_scroll_speed;
|
||||||
double menus_fast_mouse_move_thresthold;
|
double menus_fast_mouse_move_thresthold;
|
||||||
double menus_click_drag_timeout;
|
double menus_click_drag_timeout;
|
||||||
|
int border_shade_animate;
|
||||||
|
double border_shade_speed;
|
||||||
double framerate;
|
double framerate;
|
||||||
int image_cache;
|
int image_cache;
|
||||||
int font_cache;
|
int font_cache;
|
||||||
|
|
Loading…
Reference in New Issue