Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
      Tag: branch-exp
        E.h alert.c areas.c desktops.c ewin-ops.c misc.c mod-trans.c 
        setup.c slideout.c startup.c 


Log Message:
Merge.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.314.2.41
retrieving revision 1.314.2.42
diff -u -3 -r1.314.2.41 -r1.314.2.42
--- E.h 17 Sep 2004 14:28:33 -0000      1.314.2.41
+++ E.h 17 Sep 2004 16:13:41 -0000      1.314.2.42
@@ -2106,6 +2106,8 @@
 /* misc.c */
 void                Quicksort(void **a, int l, int r,
                              int (*CompareFunc) (void *d1, void *d2));
+void                ETimedLoopInit(int k1, int k2, int speed);
+int                 ETimedLoopNext(void);
 void __PRINTF__     Eprintf(const char *fmt, ...);
 
 /* moveresize.c */
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/alert.c,v
retrieving revision 1.34.2.3
retrieving revision 1.34.2.4
diff -u -3 -r1.34.2.3 -r1.34.2.4
--- alert.c     7 Sep 2004 20:06:52 -0000       1.34.2.3
+++ alert.c     17 Sep 2004 16:13:42 -0000      1.34.2.4
@@ -275,7 +275,8 @@
    else
       XSetForeground(dd, gc, att.border_pixel);
 
-   xfs = XCreateFontSet(dd, "-*-helvetica-*-r-*-*-12-*-*-*-*-*-*-*,fixed",
+   xfs = XCreateFontSet(dd, "-*-sans unicode-*-r-*-*-12-*-*-*-*-*-*-*,"
+                           "-*-helvetica-*-r-*-*-12-*-*-*-*-*-*-*,fixed",
                        &missing_charset_list_return,
                        &missing_charset_count_return, &def_string_return);
    if (!xfs)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/areas.c,v
retrieving revision 1.71.2.8
retrieving revision 1.71.2.9
diff -u -3 -r1.71.2.8 -r1.71.2.9
--- areas.c     7 Sep 2004 20:06:52 -0000       1.71.2.8
+++ areas.c     17 Sep 2004 16:13:42 -0000      1.71.2.9
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 #include "E.h"
-#include <sys/time.h>
 
 static int          area_w = 3;
 static int          area_h = 3;
@@ -186,10 +185,7 @@
 void
 SlideWindowsBy(Window * win, int num, int dx, int dy, int speed)
 {
-   int                 i, k, spd, x, y, min;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 i, k, x, y;
    struct _xy
    {
       int                 x, y;
@@ -199,16 +195,14 @@
    if (num < 1)
       EDBUG_RETURN_;
 
-   spd = 16;
-   min = 2;
    xy = Emalloc(sizeof(struct _xy) * num);
 
    for (i = 0; i < num; i++)
       GetWinXY(win[i], &(xy[i].x), &(xy[i].y));
 
-   for (k = 0; k <= 1024; k += spd)
+   ETimedLoopInit(0, 1024, speed);
+   for (k = 0; k <= 1024;)
      {
-       gettimeofday(&timev1, NULL);
        for (i = 0; i < num; i++)
          {
             x = ((xy[i].x * (1024 - k)) + ((xy[i].x + dx) * k)) >> 10;
@@ -216,18 +210,8 @@
             EMoveWindow(disp, win[i], x, y);
          }
        ecore_x_sync();
-       gettimeofday(&timev2, NULL);
-       dsec = timev2.tv_sec - timev1.tv_sec;
-       dusec = timev2.tv_usec - timev1.tv_usec;
-       if (dusec < 0)
-         {
-            dsec--;
-            dusec += 1000000;
-         }
-       tm = (double)dsec + (((double)dusec) / 1000000);
-       spd = (int)((double)speed * tm);
-       if (spd < min)
-          spd = min;
+
+       k = ETimedLoopNext();
      }
 
    for (i = 0; i < num; i++)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.95.2.17
retrieving revision 1.95.2.18
diff -u -3 -r1.95.2.17 -r1.95.2.18
--- desktops.c  7 Sep 2004 20:06:53 -0000       1.95.2.17
+++ desktops.c  17 Sep 2004 16:13:42 -0000      1.95.2.18
@@ -22,7 +22,6 @@
  */
 #include "E.h"
 #include <time.h>
-#include <sys/time.h>
 
 #define EDESK_EVENT_MASK \
   (KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask | \
@@ -233,37 +232,27 @@
 void
 SlideWindowTo(Window win, int fx, int fy, int tx, int ty, int speed)
 {
-   int                 k, spd, x, y, min;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 k, x, y;
 
    EDBUG(5, "SlideWindowTo");
-   spd = 16;
-   min = 2;
+
    ecore_x_grab();
-   for (k = 0; k <= 1024; k += spd)
+
+   ETimedLoopInit(0, 1024, speed);
+   for (k = 0; k <= 1024;)
      {
-       gettimeofday(&timev1, NULL);
        x = ((fx * (1024 - k)) + (tx * k)) >> 10;
        y = ((fy * (1024 - k)) + (ty * k)) >> 10;
        EMoveWindow(disp, win, x, y);
        ecore_x_sync();
-       gettimeofday(&timev2, NULL);
-       dsec = timev2.tv_sec - timev1.tv_sec;
-       dusec = timev2.tv_usec - timev1.tv_usec;
-       if (dusec < 0)
-         {
-            dsec--;
-            dusec += 1000000;
-         }
-       tm = (double)dsec + (((double)dusec) / 1000000);
-       spd = (int)((double)speed * tm);
-       if (spd < min)
-          spd = min;
+       XSync(disp, False);
+
+       k = ETimedLoopNext();
      }
    EMoveWindow(disp, win, tx, ty);
+
    ecore_x_ungrab();
+
    EDBUG_RETURN_;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/ewin-ops.c,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -u -3 -r1.1.2.7 -r1.1.2.8
--- ewin-ops.c  7 Sep 2004 20:06:54 -0000       1.1.2.7
+++ ewin-ops.c  17 Sep 2004 16:13:43 -0000      1.1.2.8
@@ -26,15 +26,11 @@
 void
 SlideEwinTo(EWin * ewin, int fx, int fy, int tx, int ty, int speed)
 {
-   int                 k, spd, x, y, min, tmpx, tmpy, tmpw, tmph;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 k, x, y, tmpx, tmpy;
    char                firstlast;
 
    EDBUG(3, "SlideEwinTo");
-   spd = 16;
-   min = 2;
+
    firstlast = 0;
    Mode.doingslide = 1;
    SoundPlay("SOUND_WINDOW_SLIDE");
@@ -42,42 +38,33 @@
    if (Conf.slidemode > 0)
       ecore_x_grab();
 
-   for (k = 0; k <= 1024; k += spd)
+   ETimedLoopInit(0, 1024, speed);
+   for (k = 0; k <= 1024;)
      {
-       gettimeofday(&timev1, NULL);
        x = ((fx * (1024 - k)) + (tx * k)) >> 10;
        y = ((fy * (1024 - k)) + (ty * k)) >> 10;
        tmpx = x;
        tmpy = y;
-       tmpw = ewin->client.w;
-       tmph = ewin->client.h;
        if (Conf.slidemode == 0)
           EMoveWindow(disp, ewin->win, tmpx, tmpy);
        else
-          DrawEwinShape(ewin, Conf.slidemode, tmpx, tmpy, tmpw, tmph,
-                        firstlast);
+          DrawEwinShape(ewin, Conf.slidemode, tmpx, tmpy,
+                        ewin->client.w, ewin->client.h, firstlast);
        if (firstlast == 0)
           firstlast = 1;
        ecore_x_sync();
-       gettimeofday(&timev2, NULL);
-       dsec = timev2.tv_sec - timev1.tv_sec;
-       dusec = timev2.tv_usec - timev1.tv_usec;
-       if (dusec < 0)
-         {
-            dsec--;
-            dusec += 1000000;
-         }
-       tm = (double)dsec + (((double)dusec) / 1000000);
-       spd = (int)((double)speed * tm);
-       if (spd < min)
-          spd = min;
+
+       k = ETimedLoopNext();
      }
    DrawEwinShape(ewin, Conf.slidemode, x, y, ewin->client.w, ewin->client.h, 2);
    MoveEwin(ewin, tx, ty);
    Mode.doingslide = 0;
+
    if (Conf.slidemode > 0)
       ecore_x_ungrab();
+
    SoundPlay("SOUND_WINDOW_SLIDE_END");
+
    EDBUG_RETURN_;
 }
 
@@ -85,11 +72,7 @@
 SlideEwinsTo(EWin ** ewin, int *fx, int *fy, int *tx, int *ty, int num_wins,
             int speed)
 {
-   int                 k, spd, *x = NULL, *y =
-      NULL, min, tmpx, tmpy, tmpw, tmph, i;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 k, *x = NULL, *y = NULL, tmpx, tmpy, tmpw, tmph, i;
    char                firstlast;
 
    EDBUG(3, "SlideEwinsTo");
@@ -99,51 +82,38 @@
        x = Emalloc(sizeof(int) * num_wins);
        y = Emalloc(sizeof(int) * num_wins);
      }
-   spd = 16;
-   min = 2;
+
    firstlast = 0;
    Mode.doingslide = 1;
-
    SoundPlay("SOUND_WINDOW_SLIDE");
 
    if (Conf.slidemode > 0)
       ecore_x_grab();
 
-   for (k = 0; k <= 1024; k += spd)
+   ETimedLoopInit(0, 1024, speed);
+   for (k = 0; k <= 1024;)
      {
        for (i = 0; i < num_wins; i++)
          {
-            if (ewin[i])
-              {
-                 gettimeofday(&timev1, NULL);
-                 x[i] = ((fx[i] * (1024 - k)) + (tx[i] * k)) >> 10;
-                 y[i] = ((fy[i] * (1024 - k)) + (ty[i] * k)) >> 10;
-                 tmpx = x[i];
-                 tmpy = y[i];
-                 tmpw = ewin[i]->client.w;
-                 tmph = ewin[i]->client.h;
-                 if (ewin[i]->type == EWIN_TYPE_MENU)
-                    EMoveWindow(disp, ewin[i]->win, tmpx, tmpy);
-                 else
-                    DrawEwinShape(ewin[i], 0, tmpx, tmpy, tmpw, tmph,
-                                  firstlast);
-                 if (firstlast == 0)
-                    firstlast = 1;
-                 ecore_x_sync();
-                 gettimeofday(&timev2, NULL);
-                 dsec = timev2.tv_sec - timev1.tv_sec;
-                 dusec = timev2.tv_usec - timev1.tv_usec;
-                 if (dusec < 0)
-                   {
-                      dsec--;
-                      dusec += 1000000;
-                   }
-                 tm = (double)dsec + (((double)dusec) / 1000000);
-                 spd = (int)((double)speed * tm);
-                 if (spd < min)
-                    spd = min;
-              }
+            if (!ewin[i])
+               continue;
+
+            x[i] = ((fx[i] * (1024 - k)) + (tx[i] * k)) >> 10;
+            y[i] = ((fy[i] * (1024 - k)) + (ty[i] * k)) >> 10;
+            tmpx = x[i];
+            tmpy = y[i];
+            tmpw = ewin[i]->client.w;
+            tmph = ewin[i]->client.h;
+            if (ewin[i]->type == EWIN_TYPE_MENU)
+               EMoveWindow(disp, ewin[i]->win, tmpx, tmpy);
+            else
+               DrawEwinShape(ewin[i], 0, tmpx, tmpy, tmpw, tmph, firstlast);
+            if (firstlast == 0)
+               firstlast = 1;
+            ecore_x_sync();
          }
+       /* We may loop faster here than originally intended */
+       k = ETimedLoopNext();
      }
 
    for (i = 0; i < num_wins; i++)
@@ -159,11 +129,14 @@
    Mode.doingslide = 0;
    if (Conf.slidemode > 0)
       ecore_x_ungrab();
+
    SoundPlay("SOUND_WINDOW_SLIDE_END");
+
    if (x)
       Efree(x);
    if (y)
       Efree(y);
+
    EDBUG_RETURN_;
 }
 
@@ -687,11 +660,7 @@
 EwinShade(EWin * ewin)
 {
    XSetWindowAttributes att;
-   int                 i, j, speed, a, b, c, d, ww, hh;
-   int                 k, spd, min;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 i, j, k, speed, a, b, c, d, ww, hh;
    char                pq;
 
    EDBUG(4, "EwinShade");
@@ -710,8 +679,6 @@
    Mode.queue_up = 0;
 
    speed = Conf.shadespeed;
-   spd = 32;
-   min = 2;
 
    ecore_x_grab();
 
@@ -723,43 +690,35 @@
        EwinBorderMinShadeSize(ewin, &b, &d);
        a = ewin->w;
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               ewin->w = i;
-               if (ewin->w < 1)
-                  ewin->w = 1;
-               ww = ewin->w - ewin->border->border.left -
-                  ewin->border->border.right;
-               if (ww < 1)
-                  ww = 1;
-               hh = ewin->client.h;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ww, hh);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, -(ewin->client.w - ww),
-                                     0, ewin->client.win, ShapeBounding,
-                                     ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 ewin->w = i;
+                 if (ewin->w < 1)
+                    ewin->w = 1;
+                 ww = ewin->w - ewin->border->border.left -
+                    ewin->border->border.right;
+                 if (ww < 1)
+                    ww = 1;
+                 hh = ewin->client.h;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ww, hh);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, -(ewin->client.w - ww),
+                                       0, ewin->client.win, ShapeBounding,
+                                       ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->shaded = 2;
        ewin->w = b;
        EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
@@ -775,44 +734,36 @@
        c = ewin->x;
        d = ewin->x + ewin->w - b;
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               j = ((c * (1024 - k)) + (d * k)) >> 10;
-               ewin->w = i;
-               ewin->x = j;
-               if (ewin->w < 1)
-                  ewin->w = 1;
-               ww = ewin->w - ewin->border->border.left -
-                  ewin->border->border.right;
-               if (ww < 1)
-                  ww = 1;
-               hh = ewin->client.h;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ww, hh);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0, 0, ewin->client.win,
-                                     ShapeBounding, ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 j = ((c * (1024 - k)) + (d * k)) >> 10;
+                 ewin->w = i;
+                 ewin->x = j;
+                 if (ewin->w < 1)
+                    ewin->w = 1;
+                 ww = ewin->w - ewin->border->border.left -
+                    ewin->border->border.right;
+                 if (ww < 1)
+                    ww = 1;
+                 hh = ewin->client.h;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ww, hh);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0, 0, ewin->client.win,
+                                       ShapeBounding, ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->shaded = 2;
        ewin->w = b;
        ewin->x = d;
@@ -828,44 +779,36 @@
        EwinBorderMinShadeSize(ewin, &b, &d);
        b = d;
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               ewin->h = i;
-               if (ewin->h < 1)
-                  ewin->h = 1;
-               hh = ewin->h - ewin->border->border.top -
-                  ewin->border->border.bottom;
-               if (hh < 1)
-                  hh = 1;
-               ww = ewin->client.w;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ww, hh);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0,
-                                     -(ewin->client.h - hh),
-                                     ewin->client.win, ShapeBounding,
-                                     ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 ewin->h = i;
+                 if (ewin->h < 1)
+                    ewin->h = 1;
+                 hh = ewin->h - ewin->border->border.top -
+                    ewin->border->border.bottom;
+                 if (hh < 1)
+                    hh = 1;
+                 ww = ewin->client.w;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ww, hh);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0,
+                                       -(ewin->client.h - hh),
+                                       ewin->client.win, ShapeBounding,
+                                       ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->shaded = 2;
        ewin->h = b;
        EMoveResizeWindow(disp, ewin->win_container, -30, -30, 1, 1);
@@ -882,44 +825,35 @@
        c = ewin->y;
        d = ewin->y + ewin->h - b;
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               j = ((c * (1024 - k)) + (d * k)) >> 10;
-               ewin->h = i;
-               ewin->y = j;
-               if (ewin->h < 1)
-                  ewin->h = 1;
-               hh = ewin->h - ewin->border->border.top -
-                  ewin->border->border.bottom;
-               if (hh < 1)
-                  hh = 1;
-               ww = ewin->client.w;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ww, hh);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0, 0, ewin->client.win,
-                                     ShapeBounding, ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 j = ((c * (1024 - k)) + (d * k)) >> 10;
+                 ewin->h = i;
+                 ewin->y = j;
+                 if (ewin->h < 1)
+                    ewin->h = 1;
+                 hh = ewin->h - ewin->border->border.top -
+                    ewin->border->border.bottom;
+                 if (hh < 1)
+                    hh = 1;
+                 ww = ewin->client.w;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ww, hh);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0, 0, ewin->client.win,
+                                       ShapeBounding, ShapeSet);
+                 EwinPropagateShapes(ewin);
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->shaded = 2;
        ewin->h = b;
        ewin->y = d;
@@ -951,14 +885,11 @@
 EwinUnShade(EWin * ewin)
 {
    XSetWindowAttributes att;
-   int                 i, j, speed, a, b, c, d;
-   int                 k, spd, min;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 i, j, k, speed, a, b, c, d;
    char                pq;
 
    EDBUG(4, "EwinUnShade");
+
    if (GetZoomEWin() == ewin)
       EDBUG_RETURN_;
    if (!ewin->shaded || ewin->iconified)
@@ -968,8 +899,6 @@
    Mode.queue_up = 0;
 
    speed = Conf.shadespeed;
-   spd = 32;
-   min = 2;
 
    ecore_x_grab();
 
@@ -990,41 +919,33 @@
        EMapWindow(disp, ewin->client.win);
        EMapWindow(disp, ewin->win_container);
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               ewin->w = i;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top,
-                                 ewin->w - ewin->border->border.left -
-                                 ewin->border->border.right, ewin->client.h);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding,
-                                     -(ewin->client.w -
-                                       (ewin->w - ewin->border->border.left -
-                                        ewin->border->border.right)), 0,
-                                     ewin->client.win, ShapeBounding,
-                                     ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 ewin->w = i;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top,
+                                   ewin->w - ewin->border->border.left -
+                                   ewin->border->border.right, ewin->client.h);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding,
+                                       -(ewin->client.w -
+                                         (ewin->w - ewin->border->border.left -
+                                          ewin->border->border.right)), 0,
+                                       ewin->client.win, ShapeBounding,
+                                       ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->w = b;
        MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
        ecore_x_sync();
@@ -1047,39 +968,31 @@
        EMapWindow(disp, ewin->client.win);
        EMapWindow(disp, ewin->win_container);
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               j = ((c * (1024 - k)) + (d * k)) >> 10;
-               ewin->w = i;
-               ewin->x = j;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top,
-                                 ewin->w - ewin->border->border.left -
-                                 ewin->border->border.right, ewin->client.h);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0, 0, ewin->client.win,
-                                     ShapeBounding, ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 j = ((c * (1024 - k)) + (d * k)) >> 10;
+                 ewin->w = i;
+                 ewin->x = j;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top,
+                                   ewin->w - ewin->border->border.left -
+                                   ewin->border->border.right, ewin->client.h);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0, 0, ewin->client.win,
+                                       ShapeBounding, ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->w = b;
        ewin->x = d;
        MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
@@ -1100,41 +1013,33 @@
        EMapWindow(disp, ewin->client.win);
        EMapWindow(disp, ewin->win_container);
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               ewin->h = i;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ewin->client.w,
-                                 ewin->h - ewin->border->border.top -
-                                 ewin->border->border.bottom);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0,
-                                     -(ewin->client.h -
-                                       (ewin->h - ewin->border->border.top -
-                                        ewin->border->border.bottom)),
-                                     ewin->client.win, ShapeBounding,
-                                     ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 ewin->h = i;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ewin->client.w,
+                                   ewin->h - ewin->border->border.top -
+                                   ewin->border->border.bottom);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0,
+                                       -(ewin->client.h -
+                                         (ewin->h - ewin->border->border.top -
+                                          ewin->border->border.bottom)),
+                                       ewin->client.win, ShapeBounding,
+                                       ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->h = b;
        MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
        ecore_x_sync();
@@ -1157,39 +1062,31 @@
        EMapWindow(disp, ewin->client.win);
        EMapWindow(disp, ewin->win_container);
        if ((Conf.animate_shading) || (ewin->type == EWIN_TYPE_MENU))
-          for (k = 0; k <= 1024; k += spd)
-            {
-               gettimeofday(&timev1, NULL);
-               i = ((a * (1024 - k)) + (b * k)) >> 10;
-               j = ((c * (1024 - k)) + (d * k)) >> 10;
-               ewin->h = i;
-               ewin->y = j;
-               EMoveResizeWindow(disp, ewin->win_container,
-                                 ewin->border->border.left,
-                                 ewin->border->border.top, ewin->client.w,
-                                 ewin->h - ewin->border->border.top -
-                                 ewin->border->border.bottom);
-               EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
-                                 ewin->h);
-               EwinBorderCalcSizes(ewin);
-               if (ewin->client.shaped)
-                  EShapeCombineShape(disp, ewin->win_container,
-                                     ShapeBounding, 0, 0, ewin->client.win,
-                                     ShapeBounding, ShapeSet);
-               EwinPropagateShapes(ewin);
-               gettimeofday(&timev2, NULL);
-               dsec = timev2.tv_sec - timev1.tv_sec;
-               dusec = timev2.tv_usec - timev1.tv_usec;
-               if (dusec < 0)
-                 {
-                    dsec--;
-                    dusec += 1000000;
-                 }
-               tm = (double)dsec + (((double)dusec) / 1000000);
-               spd = (int)((double)speed * tm);
-               if (spd < min)
-                  spd = min;
-            }
+         {
+            ETimedLoopInit(0, 1024, speed);
+            for (k = 0; k <= 1024;)
+              {
+                 i = ((a * (1024 - k)) + (b * k)) >> 10;
+                 j = ((c * (1024 - k)) + (d * k)) >> 10;
+                 ewin->h = i;
+                 ewin->y = j;
+                 EMoveResizeWindow(disp, ewin->win_container,
+                                   ewin->border->border.left,
+                                   ewin->border->border.top, ewin->client.w,
+                                   ewin->h - ewin->border->border.top -
+                                   ewin->border->border.bottom);
+                 EMoveResizeWindow(disp, ewin->win, ewin->x, ewin->y, ewin->w,
+                                   ewin->h);
+                 EwinBorderCalcSizes(ewin);
+                 if (ewin->client.shaped)
+                    EShapeCombineShape(disp, ewin->win_container,
+                                       ShapeBounding, 0, 0, ewin->client.win,
+                                       ShapeBounding, ShapeSet);
+                 EwinPropagateShapes(ewin);
+
+                 k = ETimedLoopNext();
+              }
+         }
        ewin->h = b;
        ewin->y = d;
        MoveResizeEwin(ewin, ewin->x, ewin->y, ewin->client.w, ewin->client.h);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/misc.c,v
retrieving revision 1.58.2.1
retrieving revision 1.58.2.2
diff -u -3 -r1.58.2.1 -r1.58.2.2
--- misc.c      5 Sep 2004 11:46:45 -0000       1.58.2.1
+++ misc.c      17 Sep 2004 16:13:43 -0000      1.58.2.2
@@ -21,6 +21,7 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 #include "E.h"
+#include <sys/time.h>
 
 /* This is a general quicksort algorithm, using median-of-three strategy.
  * 
@@ -90,6 +91,61 @@
      }
 }
 
+/*
+ * Stuff to make loops for animated effects.
+ */
+struct timeval      etl_tv_last;
+static int          etl_speed;
+static int          etl_k1, etl_k2, etl_ki;
+static double       etl_k;
+
+void
+ETimedLoopInit(int k1, int k2, int speed)
+{
+   etl_k1 = k1;
+   etl_k2 = k2;
+   etl_speed = speed;
+
+   etl_k = 1.0 * etl_k1;
+   gettimeofday(&etl_tv_last, NULL);
+}
+
+int
+ETimedLoopNext(void)
+{
+   struct timeval      tv;
+   int                 dsec, dusec;
+   double              spd, tm;
+
+   etl_ki++;                   /* Increment iteration count */
+
+   /* Find elapsed time since loop start */
+   gettimeofday(&tv, NULL);
+   dsec = tv.tv_sec - etl_tv_last.tv_sec;
+   dusec = tv.tv_usec - etl_tv_last.tv_usec;
+   etl_tv_last.tv_sec = tv.tv_sec;
+   etl_tv_last.tv_usec = tv.tv_usec;
+   if (dusec < 0)
+     {
+       dsec--;
+       dusec += 1000000;
+     }
+   tm = (double)dsec + (((double)dusec) / 1000000);
+
+   spd = ((double)etl_speed * tm);
+   if (spd < 0.001)            /* More or less arbitrary limit */
+      spd = 0.001;
+#if 0
+   Eprintf("SlideEwinTo k=%4f tm=%.3f spd=%f\n", etl_k, 1e3 * tm, spd);
+#endif
+   etl_k += spd;
+
+   return (int)etl_k;
+}
+
+/*
+ * Debug/error message printing.
+ */
 void
 Eprintf(const char *fmt, ...)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/Attic/mod-trans.c,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -3 -r1.1.2.3 -r1.1.2.4
--- mod-trans.c 5 Sep 2004 11:46:46 -0000       1.1.2.3
+++ mod-trans.c 17 Sep 2004 16:13:43 -0000      1.1.2.4
@@ -51,7 +51,7 @@
        if (tmp_st_hilight == ICLASS_ATTR_GLASS)
          {
             Conf.trans.hilight = tmp_st_hilight;
-            Conf.trans.menu_item = ICLASS_ATTR_BG;
+            Conf.trans.menu_item = ICLASS_ATTR_GLASS;
 
          }
        else if (tmp_st_hilight == ICLASS_ATTR_BG)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/setup.c,v
retrieving revision 1.139.2.14
retrieving revision 1.139.2.15
diff -u -3 -r1.139.2.14 -r1.139.2.15
--- setup.c     17 Sep 2004 14:28:34 -0000      1.139.2.14
+++ setup.c     17 Sep 2004 16:13:43 -0000      1.139.2.15
@@ -23,6 +23,7 @@
 #include "E.h"
 #include <signal.h>
 #include <X11/keysym.h>
+#include <signal.h>
 
 void
 MapUnmap(int start)
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/slideout.c,v
retrieving revision 1.22.2.7
retrieving revision 1.22.2.8
diff -u -3 -r1.22.2.7 -r1.22.2.8
--- slideout.c  7 Sep 2004 20:06:56 -0000       1.22.2.7
+++ slideout.c  17 Sep 2004 16:13:43 -0000      1.22.2.8
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 #include "E.h"
-#include <sys/time.h>
 
 struct _slideout
 {
@@ -41,42 +40,28 @@
 SlideWindowSizeTo(Window win, int fx, int fy, int tx, int ty, int fw, int fh,
                  int tw, int th, int speed)
 {
-   int                 k, spd, x, y, min, w, h;
-   struct timeval      timev1, timev2;
-   int                 dsec, dusec;
-   double              tm;
+   int                 k, x, y, w, h;
 
    EDBUG(5, "SlideWindowTo");
 
-   spd = 16;
-   min = 2;
-
    ecore_x_grab();
 
-   for (k = 0; k <= 1024; k += spd)
+   ETimedLoopInit(0, 1024, speed);
+   for (k = 0; k <= 1024;)
      {
-       gettimeofday(&timev1, NULL);
        x = ((fx * (1024 - k)) + (tx * k)) >> 10;
        y = ((fy * (1024 - k)) + (ty * k)) >> 10;
        w = ((fw * (1024 - k)) + (tw * k)) >> 10;
        h = ((fh * (1024 - k)) + (th * k)) >> 10;
        EMoveResizeWindow(disp, win, x, y, w, h);
        ecore_x_sync();
-       gettimeofday(&timev2, NULL);
-       dsec = timev2.tv_sec - timev1.tv_sec;
-       dusec = timev2.tv_usec - timev1.tv_usec;
-       if (dusec < 0)
-         {
-            dsec--;
-            dusec += 1000000;
-         }
-       tm = (double)dsec + (((double)dusec) / 1000000);
-       spd = (int)((double)speed * tm);
-       if (spd < min)
-          spd = min;
+
+       k = ETimedLoopNext();
      }
    EMoveResizeWindow(disp, win, tx, ty, tw, th);
+
    ecore_x_ungrab();
+
    EDBUG_RETURN_;
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/startup.c,v
retrieving revision 1.44.2.6
retrieving revision 1.44.2.7
diff -u -3 -r1.44.2.6 -r1.44.2.7
--- startup.c   7 Sep 2004 20:06:57 -0000       1.44.2.6
+++ startup.c   17 Sep 2004 16:13:43 -0000      1.44.2.7
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 #include "E.h"
-#include <sys/time.h>
 #include <time.h>
 
 Window              init_win1 = 0;
@@ -96,23 +95,15 @@
      }
    else
      {
-       int                 k, spd, x, y, xOffset, yOffset, ty, fy;
-       int                 min, speed;
-
-       /* we have this many so that we save on lines o code - eAndroid */
-       struct timeval      timev1, timev2;
-       int                 dsec, dusec;
-       double              tm;
+       int                 k, x, y, xOffset, yOffset, ty, fy;
 
        if ((!ic) || (!bg))
           EDBUG_RETURN_;
 
-       speed = Conf.slidespeedcleanup / 2;
-       spd = 16;
-       min = 2;
        fy = 0;
 
-       for (k = 0; k <= 1024; k += spd)
+       ETimedLoopInit(0, 1024, Conf.slidespeedcleanup / 2);
+       for (k = 0; k <= 1024;)
          {
             if (bg_sideways)
               {                /* so we can have two different slide methods */
@@ -130,22 +121,12 @@
                  yOffset = ((fy * (1024 - k)) + (ty * k)) >> 10;
                  y = ty;
               }
-            gettimeofday(&timev1, NULL);
+
             EMoveWindow(disp, w1, x + xOffset, -y - yOffset);
             EMoveWindow(disp, w2, -x - xOffset, y + yOffset);
             ecore_x_sync();
-            gettimeofday(&timev2, NULL);
-            dsec = timev2.tv_sec - timev1.tv_sec;
-            dusec = timev2.tv_usec - timev1.tv_usec;
-            if (dusec < 0)
-              {
-                 dsec--;
-                 dusec += 1000000;
-              }
-            tm = (double)dsec + (((double)dusec) / 1000000);
-            spd = (int)((double)speed * tm);
-            if (spd < min)
-               spd = min;
+
+            k = ETimedLoopNext();
          }
 
        EDestroyWindow(disp, w1);




-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to