Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h e_config.c e_config.h e_desk.c e_desk.h 
        e_int_config_desks.c e_int_config_performance.c 


Log Message:


1. fix perf dialog - to actually change fps
2. save icon theme config
3. add config for desk flip animation modes etc. etc.
4. desk flip animation!!! 2 main modes. might restructure this a bit tho
(separate out on/off from the mode as there may be many more modes later)

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.535
retrieving revision 1.536
diff -u -3 -r1.535 -r1.536
--- e_border.c  1 Sep 2006 10:43:20 -0000       1.535
+++ e_border.c  1 Sep 2006 15:37:23 -0000       1.536
@@ -827,7 +827,7 @@
                                  bd->y + bd->fx.y + bd->client_inset.t,
                                  bd->client.w,
                                  bd->client.h);
-   _e_border_move_update(bd);
+   if (bd->moving) _e_border_move_update(bd);
 }
 
 EAPI void
@@ -2309,8 +2309,9 @@
             bl = e_container_border_list_last(con);
             while ((bd = e_container_border_list_prev(bl)))
               {
-                 if ((bd->changes.visible) && (bd->visible) && 
-                     (!bd->new_client))
+                 if ((bd->changes.visible) && (bd->visible) && 
+                     (!bd->new_client) && (!bd->changes.pos) &&
+                     (!bd->changes.size))
                    {
                       ecore_evas_show(bd->bg_ecore_evas);
                       ecore_x_window_show(bd->win);
@@ -2343,6 +2344,13 @@
                       bd->changes.visible = 0;
                    }
                  if (bd->changed) _e_border_eval(bd);
+                 if ((bd->changes.visible) && (bd->visible) && 
+                     (!bd->new_client))
+                   {
+                      ecore_evas_show(bd->bg_ecore_evas);
+                      ecore_x_window_show(bd->win);
+                      bd->changes.visible = 0;
+                   }
               }
             e_container_border_list_free(bl);
          }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.149
retrieving revision 1.150
diff -u -3 -r1.149 -r1.150
--- e_border.h  30 Aug 2006 13:37:35 -0000      1.149
+++ e_border.h  1 Sep 2006 15:37:23 -0000       1.150
@@ -125,6 +125,10 @@
 
    struct {
       int          x, y;
+      struct {
+        int       x, y;
+        double    t;
+      } start;
    } fx;
    
    struct {
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -3 -r1.200 -r1.201
--- e_config.c  31 Aug 2006 04:16:43 -0000      1.200
+++ e_config.c  1 Sep 2006 15:37:23 -0000       1.201
@@ -473,6 +473,12 @@
    E_CONFIG_VAL(D, T, border_raise_on_focus, INT);
    E_CONFIG_VAL(D, T, desk_flip_wrap, INT);
 
+   E_CONFIG_VAL(D, T, icon_theme, STR);
+   
+   E_CONFIG_VAL(D, T, desk_flip_animate_mode, INT);
+   E_CONFIG_VAL(D, T, desk_flip_animate_interpolation, INT);
+   E_CONFIG_VAL(D, T, desk_flip_animate_time, DOUBLE);
+   
    E_CONFIG_VAL(D, T, wallpaper_import_last_dev, STR);
    E_CONFIG_VAL(D, T, wallpaper_import_last_path, STR);
 
@@ -1216,7 +1222,10 @@
    e_config->wallpaper_grad_c2_b = 255;
    IFCFGEND;
 
-   IFCFG(0x0100);
+   IFCFG(0x0101);
+   e_config->desk_flip_animate_mode = 1;
+   e_config->desk_flip_animate_interpolation = 0;
+   e_config->desk_flip_animate_time = 0.2;
    IFCFGEND;
    
 #if 0 /* example of new config */
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -3 -r1.115 -r1.116
--- e_config.h  31 Aug 2006 04:20:04 -0000      1.115
+++ e_config.h  1 Sep 2006 15:37:23 -0000       1.116
@@ -50,7 +50,7 @@
 /* increment this whenever a new set of config values are added but the users
  * config doesn't need top be wiped - simply new values need to be put in
  */
-#define E_CONFIG_FILE_GENERATION 0x0100
+#define E_CONFIG_FILE_GENERATION 0x0101
 #define E_CONFIG_FILE_VERSION    ((E_CONFIG_FILE_EPOCH << 16) | 
E_CONFIG_FILE_GENERATION)
 
 #define E_EVAS_ENGINE_DEFAULT      0
@@ -235,6 +235,10 @@
    int         desk_flip_wrap; // GUI
 
    const char *icon_theme; // GUI
+   
+   int         desk_flip_animate_mode;
+   int         desk_flip_animate_interpolation;
+   double      desk_flip_animate_time;
    
    const char *wallpaper_import_last_dev; // INTERNAL
    const char *wallpaper_import_last_path; // INTERNAL
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -3 -r1.62 -r1.63
--- e_desk.c    30 Aug 2006 13:37:35 -0000      1.62
+++ e_desk.c    1 Sep 2006 15:37:23 -0000       1.63
@@ -13,6 +13,13 @@
 static void _e_border_event_desk_deskshow_free(void *data, void *ev);
 static void _e_border_event_desk_name_change_free(void *data, void *ev);
 
+static void _e_desk_show_begin(E_Desk *desk, int mode, int dx, int dy);
+static void _e_desk_show_end(E_Desk *desk);
+static int _e_desk_show_animator(void *data);
+static void _e_desk_hide_begin(E_Desk *desk, int mode, int dx, int dy);
+static void _e_desk_hide_end(E_Desk *desk);
+static int _e_desk_hide_animator(void *data);
+
 EAPI int E_EVENT_DESK_SHOW = 0;
 EAPI int E_EVENT_DESK_DESKSHOW = 0;
 EAPI int E_EVENT_DESK_NAME_CHANGE = 0;
@@ -183,173 +190,75 @@
      }
 }
 
-static void _e_desk_show_begin(E_Desk *desk);
-static void _e_desk_show_end(E_Desk *desk);
-static int _e_desk_show_animator(void *data);
-
-static void
-_e_desk_show_begin(E_Desk *desk)
-{
-   E_Border_List     *bl;
-   E_Border          *bd;
-
-   bl = e_container_border_list_first(desk->zone->container);
-   while ((bd = e_container_border_list_next(bl)))
-     {
-       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
-         {
-            if ((bd->desk == desk) && (!bd->sticky))
-              {
-                 e_border_fx_offset(bd, -desk->zone->w, 0);
-                 e_border_show(bd);
-                 if (bd->want_fullscreen)
-                   {
-                      e_border_fullscreen(bd, e_config->fullscreen_policy);
-                      bd->want_fullscreen = 0;
-                   }
-              }
-            else if (bd->moving)
-              e_border_desk_set(bd, desk);
-         }
-     }
-   e_container_border_list_free(bl);
-   ecore_animator_add(_e_desk_show_animator, desk);
-}
-
-static void
-_e_desk_show_end(E_Desk *desk)
-{
-   E_Border_List     *bl;
-   E_Border          *bd;
-
-   bl = e_container_border_list_first(desk->zone->container);
-   while ((bd = e_container_border_list_next(bl)))
-     {
-       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
-         {
-            if ((bd->desk == desk) && (!bd->sticky))
-              {
-                 e_border_fx_offset(bd, 0, 0);
-              }
-            else if (bd->moving)
-              {
-                 e_border_fx_offset(bd, 0, 0);
-                 e_border_desk_set(bd, desk);
-              }
-         }
-     }
-   e_container_border_list_free(bl);
-}
-
-static int
-_e_desk_show_animator(void *data)
-{
-   E_Desk            *desk;
-   E_Border_List     *bl;
-   E_Border          *bd;
-   int done = 1;
-
-   desk = data;
-   bl = e_container_border_list_first(desk->zone->container);
-   while ((bd = e_container_border_list_next(bl)))
-     {
-       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
-         {
-            if (bd->moving)
-              {
-              }
-            else if ((bd->desk == desk) || (!bd->sticky))
-              {
-                  e_border_fx_offset(bd, bd->fx.x + 20, 0);
-                 if (bd->fx.x < 0)
-                   done = 0;
-              }
-         }
-     }
-   e_container_border_list_free(bl);
-   if (done)
-     {
-       _e_desk_show_end(desk);
-       return 0;
-     }
-   return 1;
-}
-
-static void
-_e_desk_hide_begin(E_Desk *desk)
-{
-}
-
-static void
-_e_desk_hide_end(E_Desk *desk)
-{
-}
-
-static int
-_e_desk_hide_animator(void *data)
-{
-}
-
 EAPI void
 e_desk_show(E_Desk *desk)
 {
    E_Border_List     *bl;
    E_Border          *bd;
    int                was_zone = 0;
-   int                x, y;
+   int                x, y, dx = 0, dy = 0;
    E_Event_Desk_Show *ev;
 
    E_OBJECT_CHECK(desk);
    E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE);
    if (desk->visible) return;
 
-//   _e_desk_show_begin(desk);
-   
    for (x = 0; x < desk->zone->desk_x_count; x++)
      {
        for (y = 0; y < desk->zone->desk_y_count; y++)
          {
             E_Desk *desk2;
 
-            desk2 = e_desk_at_xy_get(desk->zone,x, y);
-            desk2->visible = 0;
+            desk2 = e_desk_at_xy_get(desk->zone, x, y);
+            if (desk2->visible)
+              {
+                 desk2->visible = 0;
+                 dx = desk->x - desk2->x;
+                 dy = desk->y - desk2->y;
+                 if (e_config->desk_flip_animate_mode > 0)
+                   _e_desk_hide_begin(desk2, e_config->desk_flip_animate_mode, 
dx, dy);
+                 break;
+              }
          }
      }
-
+   
    desk->zone->desk_x_current = desk->x;
    desk->zone->desk_y_current = desk->y;
    desk->visible = 1;
 
-   bl = e_container_border_list_first(desk->zone->container);
    if (desk->zone->bg_object) was_zone = 1;
-   while ((bd = e_container_border_list_next(bl)))
+   if (e_config->desk_flip_animate_mode == 0)
      {
-       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+       bl = e_container_border_list_first(desk->zone->container);
+       while ((bd = e_container_border_list_next(bl)))
          {
-            if ((bd->desk == desk) || (bd->sticky))
+            if ((bd->desk->zone == desk->zone) && (!bd->iconic))
               {
-                 e_border_show(bd);
-                 if (bd->want_fullscreen)
+                 if ((bd->desk == desk) || (bd->sticky))
                    {
-                      e_border_fullscreen(bd, e_config->fullscreen_policy);
-                      bd->want_fullscreen = 0;
+                      e_border_show(bd);
+                      if (bd->want_fullscreen)
+                        {
+                           e_border_fullscreen(bd, 
e_config->fullscreen_policy);
+                           bd->want_fullscreen = 0;
+                        }
+                   }
+                 else if (bd->moving)
+                   e_border_desk_set(bd, desk);
+                 else
+                   {
+                      if (bd->fullscreen)
+                        bd->want_fullscreen = 1;
+                      e_border_hide(bd, 2);
                    }
-              }
-            else if (bd->moving)
-              e_border_desk_set(bd, desk);
-            else
-              {
-                 /* We have to remember that this border wants to become
-                  * fullscreen when we go back to this desk.
-                  */
-                 if (bd->fullscreen)
-                   bd->want_fullscreen = 1;
-                 e_border_hide(bd, 2);
               }
          }
+       e_container_border_list_free(bl);
      }
-   e_container_border_list_free(bl);
 
+   if (e_config->desk_flip_animate_mode > 0)
+     _e_desk_show_begin(desk, e_config->desk_flip_animate_mode, dx, dy);
+   
    if (e_config->focus_last_focused_per_desktop)
      e_desk_last_focused_focus(desk);
        
@@ -362,7 +271,6 @@
    ev->desk = desk;
    e_object_ref(E_OBJECT(desk));
    ecore_event_add(E_EVENT_DESK_SHOW, ev, _e_border_event_desk_show_free, 
NULL);
-   
 }
 
 EAPI void
@@ -556,6 +464,7 @@
 _e_desk_free(E_Desk *desk)
 {
    if (desk->name) evas_stringshare_del(desk->name);
+   if (desk->animator) ecore_animator_del(desk->animator);
    free(desk);
 }
 
@@ -587,4 +496,278 @@
    ev = event;
    e_object_unref(E_OBJECT(ev->desk));
    free(ev);
+}
+
+static void
+_e_desk_show_begin(E_Desk *desk, int mode, int dx, int dy)
+{
+   E_Border_List     *bl;
+   E_Border          *bd;
+   double             t;
+
+   t = ecore_time_get();
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+                 bd->fx.start.t = t;
+                 bd->fx.start.x = 0;
+                 bd->fx.start.y = 0;
+                 e_border_desk_set(bd, desk);
+                 e_border_show(bd);
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 bd->fx.start.t = t;
+                 if (mode == 1)
+                   {
+                      bd->fx.start.x = bd->zone->w * dx;
+                      bd->fx.start.y = bd->zone->h * dy;
+                   }
+                 else if (mode == 2)
+                   {
+                      int mx, my, bx, by;
+                      double fx, fy, ang, rad, len, lmax;
+                      
+                      mx = bd->zone->x + (bd->zone->w / 2);
+                      my = bd->zone->y + (bd->zone->h / 2);
+                      
+                      bx = bd->x + (bd->w / 2) - mx;
+                      by = bd->y + (bd->h / 2) - my;
+                      if (bx == 0) bx = 1;
+                      if (by == 0) by = 1;
+                      fx = (double)bx / (double)(bd->zone->w / 2);
+                      fy = (double)by / (double)(bd->zone->h / 2);
+                      ang = atan(fy / fx);
+                      if (fx < 0.0)
+                        ang = M_PI + ang;
+                      len = sqrt((bx * bx) + (by * by));
+                      lmax = sqrt(((bd->zone->w / 2) * (bd->zone->w / 2)) +
+                                  ((bd->zone->h / 2) * (bd->zone->h / 2)));
+                      rad = sqrt((bd->w * bd->w) + (bd->h * bd->h)) / 2.0;
+                      bx = cos(ang) * (lmax - len + rad);
+                      by = sin(ang) * (lmax - len + rad);
+                      bd->fx.start.x = bx;
+                      bd->fx.start.y = by;
+                   }
+                 e_border_fx_offset(bd, bd->fx.start.x, bd->fx.start.y);
+                 e_border_show(bd);
+                 if (bd->want_fullscreen)
+                   {
+                      e_border_fullscreen(bd, e_config->fullscreen_policy);
+                      bd->want_fullscreen = 0;
+                   }
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+   if (desk->animator) ecore_animator_del(desk->animator);
+   desk->animator = ecore_animator_add(_e_desk_show_animator, desk);
+}
+
+static void
+_e_desk_show_end(E_Desk *desk)
+{
+   E_Border_List     *bl;
+   E_Border          *bd;
+
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+                 e_border_fx_offset(bd, 0, 0);
+//               e_border_desk_set(bd, desk);
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 e_border_fx_offset(bd, 0, 0);
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+}
+
+static int
+_e_desk_show_animator(void *data)
+{
+   E_Desk            *desk;
+   E_Border_List     *bl;
+   E_Border          *bd;
+   double             t, dt, spd;
+
+   desk = data;
+   t = ecore_time_get();
+   dt = -1.0;
+   spd = e_config->desk_flip_animate_time;
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 dt = (t - bd->fx.start.t) / spd;
+                 if (dt > 1.0) dt = 1.0;
+                 dt = 1.0 - dt;
+                 dt *= dt; // decelerate - could be a better hack
+                  e_border_fx_offset(bd, 
+                                    ((double)bd->fx.start.x * dt),
+                                    ((double)bd->fx.start.y * dt));
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+   if (dt <= 0.0)
+     {
+       _e_desk_show_end(desk);
+       desk->animator = NULL;
+       return 0;
+     }
+   return 1;
+}
+
+static void
+_e_desk_hide_begin(E_Desk *desk, int mode, int dx, int dy)
+{
+   E_Border_List     *bl;
+   E_Border          *bd;
+   double             t;
+
+   t = ecore_time_get();
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+                 bd->fx.start.t = t;
+                 bd->fx.start.x = 0;
+                 bd->fx.start.y = 0;
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 bd->fx.start.t = t;
+                 if (mode == 1)
+                   {
+                      bd->fx.start.x = bd->zone->w * -dx;
+                      bd->fx.start.y = bd->zone->h * -dy;
+                   }
+                 else if (mode == 2)
+                   {
+                      int mx, my, bx, by;
+                      double fx, fy, ang, rad, len, lmax;
+                      
+                      mx = bd->zone->x + (bd->zone->w / 2);
+                      my = bd->zone->y + (bd->zone->h / 2);
+                      
+                      bx = bd->x + (bd->w / 2) - mx;
+                      by = bd->y + (bd->h / 2) - my;
+                      if (bx == 0) bx = 1;
+                      if (by == 0) by = 1;
+                      fx = (double)bx / (double)(bd->zone->w / 2);
+                      fy = (double)by / (double)(bd->zone->h / 2);
+                      ang = atan(fy / fx);
+                      if (fx < 0.0)
+                        ang = M_PI + ang;
+                      len = sqrt((bx * bx) + (by * by));
+                      lmax = sqrt(((bd->zone->w / 2) * (bd->zone->w / 2)) +
+                                  ((bd->zone->h / 2) * (bd->zone->h / 2)));
+                      rad = sqrt((bd->w * bd->w) + (bd->h * bd->h)) / 2.0;
+                      bx = cos(ang) * (lmax - len + rad);
+                      by = sin(ang) * (lmax - len + rad);
+                      bd->fx.start.x = bx;
+                      bd->fx.start.y = by;
+                   }
+                 e_border_fx_offset(bd, 0, 0);
+                 if (bd->want_fullscreen)
+                   {
+                      e_border_fullscreen(bd, e_config->fullscreen_policy);
+                      bd->want_fullscreen = 0;
+                   }
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+   if (desk->animator) ecore_animator_del(desk->animator);
+   desk->animator = ecore_animator_add(_e_desk_hide_animator, desk);
+}
+
+static void
+_e_desk_hide_end(E_Desk *desk)
+{
+   E_Border_List     *bl;
+   E_Border          *bd;
+
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+                 e_border_fx_offset(bd, 0, 0);
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 e_border_fx_offset(bd, 0, 0);
+                 if (bd->fullscreen)
+                   bd->want_fullscreen = 1;
+                 e_border_hide(bd, 2);
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+}
+
+static int
+_e_desk_hide_animator(void *data)
+{
+   E_Desk            *desk;
+   E_Border_List     *bl;
+   E_Border          *bd;
+   double             t, dt, spd;
+
+   desk = data;
+   t = ecore_time_get();
+   dt = -1.0;
+   spd = e_config->desk_flip_animate_time;
+   bl = e_container_border_list_first(desk->zone->container);
+   while ((bd = e_container_border_list_next(bl)))
+     {
+       if ((bd->desk->zone == desk->zone) && (!bd->iconic))
+         {
+            if (bd->moving)
+              {
+              }
+            else if ((bd->desk == desk) && (!bd->sticky))
+              {
+                 dt = (t - bd->fx.start.t) / spd;
+                 if (dt > 1.0) dt = 1.0;
+//               dt = 1.0 - dt;
+                 dt *= dt; // decelerate - could be a better hack
+//               dt = 1.0 - dt;
+                 e_border_fx_offset(bd,
+                                    ((double)bd->fx.start.x * dt),
+                                    ((double)bd->fx.start.y * dt));
+              }
+         }
+     }
+   e_container_border_list_free(bl);
+   if ((dt < 0.0) || (dt >= 1.0))
+     {
+       _e_desk_hide_end(desk);
+       desk->animator = NULL;
+       return 0;
+     }
+   return 1;
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desk.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- e_desk.h    22 Jul 2006 22:25:04 -0000      1.24
+++ e_desk.h    1 Sep 2006 15:37:23 -0000       1.25
@@ -25,6 +25,8 @@
    unsigned int         deskshow_toggle : 1;
 
    Evas_Object         *bg_object;
+   
+   Ecore_Animator      *animator;
 };
 
 struct _E_Event_Desk_Show
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_desks.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- e_int_config_desks.c        14 Aug 2006 15:22:45 -0000      1.19
+++ e_int_config_desks.c        1 Sep 2006 15:37:23 -0000       1.20
@@ -18,12 +18,16 @@
    int x;
    int y;
    int edge_flip_basic;
+   int flip_animate;
    
    /*- ADVANCED -*/
    int edge_flip_moving;
    int edge_flip_dragging;
    double edge_flip_timeout;
    int flip_wrap;
+   int flip_mode;
+   int flip_interp;
+   double flip_speed;
 };
 
 /* a nice easy setup function that does the dirty work */
@@ -57,10 +61,14 @@
    cfdata->x = e_config->zone_desks_x_count;
    cfdata->y = e_config->zone_desks_y_count;
    cfdata->edge_flip_basic = e_config->edge_flip_moving || 
e_config->edge_flip_dragging;
+   cfdata->flip_animate = e_config->desk_flip_animate_mode > 0;
    cfdata->edge_flip_moving = e_config->edge_flip_moving;
    cfdata->edge_flip_dragging = e_config->edge_flip_dragging;
    cfdata->edge_flip_timeout = e_config->edge_flip_timeout;   
    cfdata->flip_wrap = e_config->desk_flip_wrap;
+   cfdata->flip_mode = e_config->desk_flip_animate_mode;
+   cfdata->flip_interp = e_config->desk_flip_animate_interpolation;
+   cfdata->flip_speed = e_config->desk_flip_animate_time;
 }
 
 static void *
@@ -107,7 +115,13 @@
               }
          }
      }
-   
+
+   if (cfdata->flip_animate)
+     {
+       e_config->desk_flip_animate_mode = 1;
+       e_config->desk_flip_animate_interpolation = 0;
+       e_config->desk_flip_animate_time  = 0.5;
+     }
    e_config->edge_flip_dragging = cfdata->edge_flip_basic;
    e_config->edge_flip_moving = cfdata->edge_flip_basic;
    e_zone_update_flip_all();
@@ -139,6 +153,10 @@
          }
      }
 
+   e_config->desk_flip_animate_mode = cfdata->flip_mode;
+   e_config->desk_flip_animate_interpolation = cfdata->flip_interp;
+   e_config->desk_flip_animate_time = cfdata->flip_speed;
+   
    e_config->edge_flip_moving = cfdata->edge_flip_moving;
    e_config->edge_flip_dragging = cfdata->edge_flip_dragging;
    e_config->edge_flip_timeout = cfdata->edge_flip_timeout;
@@ -168,9 +186,11 @@
    e_widget_framelist_object_append(of, ot);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
     
-   of = e_widget_framelist_add(evas, _("Desktop Mouse Flip"), 0);
+   of = e_widget_framelist_add(evas, _("Desktop Flip"), 0);
    ob = e_widget_check_add(evas, _("Flip desktops when mouse at screen edge"), 
&(cfdata->edge_flip_basic));
    e_widget_framelist_object_append(of, ob);
+   ob = e_widget_check_add(evas, _("Animated flip"), &(cfdata->flip_animate));
+   e_widget_framelist_object_append(of, ob);
 
    e_widget_list_object_append(o, of, 1, 1, 0.5);
    
@@ -182,6 +202,7 @@
 {
    /* generate the core widget layout for an advanced dialog */
    Evas_Object *o, *ob, *of, *ot;
+   E_Radio_Group *rg;
    
    o = e_widget_list_add(evas, 0, 0);
    
@@ -212,6 +233,21 @@
    ob = e_widget_check_add(evas, _("Wrap desktops around when flipping"), 
&(cfdata->flip_wrap));
    e_widget_framelist_object_append(of, ob);
    
+   e_widget_list_object_append(o, of, 1, 1, 0.5);
+   
+   of = e_widget_framelist_add(evas, _("Flip Animation"), 0);
+
+   rg = e_widget_radio_group_new(&(cfdata->flip_mode));
+   ob = e_widget_radio_add(evas, _("Off"), 0, rg);
+   e_widget_framelist_object_append(of, ob);
+   ob = e_widget_radio_add(evas, _("Pane"), 1, rg);
+   e_widget_framelist_object_append(of, ob);
+   ob = e_widget_radio_add(evas, _("Zoom"), 2, rg);
+   e_widget_framelist_object_append(of, ob);
+   
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.1f sec"), 0.0, 5.0, 0.05, 0, 
&(cfdata->flip_speed), NULL, 200);
+   e_widget_framelist_object_append(of, ob);
+  
    e_widget_list_object_append(o, of, 1, 1, 0.5);
    
    return o;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_performance.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- e_int_config_performance.c  14 Aug 2006 15:22:45 -0000      1.9
+++ e_int_config_performance.c  1 Sep 2006 15:37:23 -0000       1.10
@@ -73,6 +73,7 @@
 {   
    if (cfdata->framerate <= 0.0) cfdata->framerate = 1.0;
    e_config->framerate = cfdata->framerate;
+   edje_frametime_set(1.0 / e_config->framerate);
    e_config_save_queue();
    return 1;
 }
@@ -87,7 +88,7 @@
    of = e_widget_framelist_add(evas, _("General Settings"), 0);
    ob = e_widget_label_add(evas, _("Framerate"));
    e_widget_framelist_object_append(of, ob);   
-   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f fps"), 0.0, 200.0, 5.0, 0, 
&(cfdata->framerate), NULL, 150);
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f fps"), 5.0, 200.0, 5.0, 0, 
&(cfdata->framerate), NULL, 150);
    e_widget_framelist_object_append(of, ob);
 
    e_widget_list_object_append(o, of, 1, 1, 0.5);   
@@ -105,6 +106,7 @@
    e_config->image_cache = (cfdata->image_cache * 1024);
    e_config->edje_cache = cfdata->edje_cache;
    e_config->edje_collection_cache = cfdata->edje_collection_cache;
+   edje_frametime_set(1.0 / e_config->framerate);
    e_config_save_queue();
    return 1;
 }
@@ -119,7 +121,7 @@
    of = e_widget_framelist_add(evas, _("General Settings"), 0);
    ob = e_widget_label_add(evas, _("Framerate"));
    e_widget_framelist_object_append(of, ob);   
-   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f fps"), 0.0, 200.0, 5.0, 0, 
&(cfdata->framerate), NULL, 150);
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f fps"), 5.0, 200.0, 5.0, 0, 
&(cfdata->framerate), NULL, 150);
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);   
 



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to