Enlightenment CVS committal Author : rephorm Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_config.c e_config.h e_border.c Log Message: Make shade animation / speed a config option. (speed is in px / sec) Shade now does a decelerate transition instead of linear. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_config.c 9 Dec 2004 18:53:50 -0000 1.5 +++ e_config.c 18 Dec 2004 23:24:09 -0000 1.6 @@ -1,3 +1,6 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ #include "e.h" /* TODO List @@ -43,6 +46,8 @@ 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_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, image_cache, INT); E_CONFIG_VAL(D, T, font_cache, INT); @@ -57,6 +62,8 @@ e_config->menus_scroll_speed = 1000.0; e_config->menus_fast_mouse_move_thresthold = 300.0; 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->image_cache = 2048; e_config->font_cache = 512; @@ -84,6 +91,8 @@ 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_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->image_cache, 0, 256 * 1024); E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- e_config.h 5 Dec 2004 09:34:59 -0000 1.4 +++ e_config.h 18 Dec 2004 23:24:09 -0000 1.5 @@ -12,6 +12,8 @@ double menus_scroll_speed; double menus_fast_mouse_move_thresthold; double menus_click_drag_timeout; + int border_shade_animate; + double border_shade_speed; double framerate; int image_cache; int font_cache; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- e_border.c 18 Dec 2004 22:26:20 -0000 1.20 +++ e_border.c 18 Dec 2004 23:24:09 -0000 1.21 @@ -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" @@ -390,20 +390,25 @@ if (!bd->shaded) { printf("SHADE!\n"); - /* - bd->h = bd->client_inset.t + bd->client_inset.b; - bd->changes.size = 1; - bd->shaded = 1; - bd->changes.shaded = 1; - bd->changed = 1; - */ - bd->shade.start = ecore_time_get(); - bd->shading = 1; - bd->changes.shading = 1; - bd->changed = 1; + if (!(e_config->border_shade_animate)) + { + bd->h = bd->client_inset.t + bd->client_inset.b; + bd->changes.size = 1; + bd->shaded = 1; + bd->changes.shaded = 1; + bd->changed = 1; + edje_object_signal_emit(bd->bg_object, "shaded", ""); + } + 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, "shading", ""); + bd->shade.anim = ecore_animator_add(_e_border_shade_animator, bd); + edje_object_signal_emit(bd->bg_object, "shading", ""); + } } } @@ -414,20 +419,26 @@ if (bd->shaded) { 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); - edje_object_signal_emit(bd->bg_object, "unshading", ""); + if (!(e_config->border_shade_animate)) + { + 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 @@ _e_border_shade_animator(void *data) { E_Border *bd = data; - double dt; - double dur = 0.15; /* FIXME make this configurable */ + double dt, val; + double dur = bd->client.h / e_config->border_shade_speed; dt = ecore_time_get() - bd->shade.start; - if (bd->shaded) - bd->shade.val = dt / dur; /* unshading */ - else - bd->shade.val = 1 - (dt / dur); /* shading */ + val = dt / dur; /* unshading */ - if (bd->shade.val < 0.0) bd->shade.val = 0.0; - else if (bd->shade.val > 1.0) bd->shade.val = 1.0; + 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) + bd->shade.val = sin(val * M_PI / 2.0); + else + bd->shade.val = 1 - sin(val * M_PI / 2.0); /* FIXME support other directions */ bd->h = bd->client_inset.t + bd->client_inset.b + bd->client.h * bd->shade.val; @@ -2101,6 +2114,7 @@ bd->changes.size = 1; bd->changed = 1; + /* we're done */ if ( (bd->shaded && (bd->shade.val == 1)) || (!(bd->shaded) && (bd->shade.val == 0)) ) { ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs