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

Reply via email to