Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_bg.c e_bg.h e_config.c e_config.h e_zone.c e_zone.h 


Log Message:


ok - desktop changes are done by edje transitions now
i hereby invoke the power of edje on ye desktop wallpapers.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_bg.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_bg.c      30 Jun 2005 10:43:21 -0000      1.2
+++ e_bg.c      30 Jun 2005 14:07:27 -0000      1.3
@@ -4,7 +4,7 @@
 #include "e.h"
 
 /* local subsystem functions */
-static int _e_bg_animator(void *data);
+static void _e_bg_signal(void *data, Evas_Object *obj, const char *emission, 
const char *source);
 
 /* local subsystem globals */
 
@@ -15,35 +15,13 @@
    Evas_Object *o;
    Evas_List *l;
    int ok;
-
-   if (transition == E_BG_TRANSITION_START)
-     {
-       zone->bg_transition_mode = e_config->desktop_bg_start_transition;
-       zone->bg_transition_time = e_config->desktop_bg_start_transition_time;
-     }
-   else if (transition == E_BG_TRANSITION_DESK)
-     {
-       zone->bg_transition_mode = e_config->desktop_bg_desk_transition;
-       zone->bg_transition_time = e_config->desktop_bg_desk_transition_time;
-     }
-   else if (transition == E_BG_TRANSITION_CHANGE)
-     {
-       zone->bg_transition_mode = e_config->desktop_bg_change_transition;
-       zone->bg_transition_time = e_config->desktop_bg_change_transition_time;
-     }
-   if ((zone->bg_transition_mode == E_BG_TRANSITION_MODE_NONE) ||
-       (zone->bg_transition_time == 0.0))
-     transition = E_BG_TRANSITION_NONE;
-   if (zone->bg_transition_mode == E_BG_TRANSITION_MODE_RANDOM)
-     {
-       zone->bg_transition_mode = 
-         (rand() % (E_BG_TRANSITION_MODE_LAST - E_BG_TRANSITION_MODE_RANDOM))
-         + E_BG_TRANSITION_MODE_RANDOM + 1;
-       if (zone->bg_transition_mode <= E_BG_TRANSITION_MODE_RANDOM)
-         zone->bg_transition_mode = E_BG_TRANSITION_MODE_RANDOM + 1;
-       else if (zone->bg_transition_mode >= E_BG_TRANSITION_MODE_LAST)
-         zone->bg_transition_mode = E_BG_TRANSITION_MODE_LAST - 1;
-     }
+   char *trans = "";
+   
+   if (transition == E_BG_TRANSITION_START) trans = e_config->transition_start;
+   else if (transition == E_BG_TRANSITION_DESK) trans = 
e_config->transition_desk;
+   else if (transition == E_BG_TRANSITION_CHANGE) trans = 
e_config->transition_change;
+   if (strlen(trans) < 1) transition = E_BG_TRANSITION_NONE;
+   
    if (transition == E_BG_TRANSITION_NONE)
      {
        if (zone->bg_object)
@@ -52,15 +30,31 @@
             zone->bg_object = NULL;
          }
      }
-   if (transition != E_BG_TRANSITION_NONE)
+   else
      {
+       char buf[4096];
+       
        if (zone->bg_object)
          {
             if (zone->prev_bg_object)
               evas_object_del(zone->prev_bg_object);
             zone->prev_bg_object = zone->bg_object;
+            if (zone->transition_object)
+              evas_object_del(zone->transition_object);
+            zone->transition_object = NULL;
             zone->bg_object = NULL;
          }
+       o = edje_object_add(zone->container->bg_evas);
+       zone->transition_object = o;
+       evas_object_data_set(o, "e_zone", zone);
+       snprintf(buf, sizeof(buf), "transitions/%s", trans);
+       e_theme_edje_object_set(o, "base/theme/transitions", buf);
+       edje_object_signal_callback_add(o, "done", "*", _e_bg_signal, zone);
+       evas_object_move(o, zone->x, zone->y);
+       evas_object_resize(o, zone->w, zone->h);
+       evas_object_layer_set(o, -1);
+       evas_object_clip_set(o, zone->bg_clip_object);
+       evas_object_show(o);
      }
    o = edje_object_add(zone->container->bg_evas);
    zone->bg_object = o;
@@ -94,9 +88,8 @@
          e_theme_edje_object_set(o, "base/theme/background",
                                  "desktop/background");
      }
-   evas_object_layer_set(o, -1);
-   evas_object_lower(o);
 
+   evas_object_layer_set(o, -1);
    evas_object_clip_set(o, zone->bg_clip_object);
    evas_object_show(o);
    
@@ -117,9 +110,11 @@
    
    if (transition != E_BG_TRANSITION_NONE)
      {
-       if (!zone->bg_animator)
-         zone->bg_animator= ecore_animator_add(_e_bg_animator, zone);
-       zone->bg_set_time = ecore_time_get();
+       edje_object_part_swallow(zone->transition_object, "bg_prev",
+                                zone->prev_bg_object);
+       edje_object_part_swallow(zone->transition_object, "bg_new",
+                                zone->bg_object);
+       edje_object_signal_emit(zone->transition_object, "go", "");
      }
 }
 
@@ -181,49 +176,26 @@
 
 /* local subsystem functions */
 
-static int
-_e_bg_animator(void *data)
+static void
+_e_bg_signal(void *data, Evas_Object *obj, const char *emission, const char 
*source)
 {
    E_Zone *zone;
-   double t;
-   int a;
    
    zone = data;
-   /* t is an animating INDEX 0.0 - 1.0, it is used as a lookup into
-    * the effect. 1.0 == finished */
-   t = (ecore_time_get() - zone->bg_set_time) / zone->bg_transition_time;
-   if (t < 0.0) t = 0.0;
-   else if (t > 1.0) t = 1.0;
-   
-   if (zone->bg_transition_mode == E_BG_TRANSITION_MODE_FADE)
-     {
-       a = (1.0 - t) * 255.0;
-       if (a < 0) a = 0;
-       else if (a > 255) a = 255;
-       evas_object_color_set(zone->prev_bg_object,
-                             255, 255, 255, a);
-     }
-   else if (zone->bg_transition_mode == E_BG_TRANSITION_MODE_SINUSOUDAL_FADE)
-     {
-       double t2;
-       
-       t2 = (1.0 - cos(t * M_PI)) / 2.0;
-       
-       a = (1.0 - t2) * 255.0;
-       if (a < 0) a = 0;
-       else if (a > 255) a = 255;
-       evas_object_color_set(zone->prev_bg_object,
-                             255, 255, 255, a);
-     }
-     
-   /* if we still animate.. */
-   if (t < 1.0) return 1;
-   
+
    if (zone->prev_bg_object)
      {
        evas_object_del(zone->prev_bg_object);
        zone->prev_bg_object = NULL;
      }
-   zone->bg_animator = NULL;
-   return 0;
+   if (zone->transition_object)
+     {
+       evas_object_del(zone->transition_object);
+       zone->transition_object = NULL;
+     }
+   evas_object_move(zone->bg_object, zone->x, zone->y);
+   evas_object_resize(zone->bg_object, zone->w, zone->h);
+   evas_object_layer_set(zone->bg_object, -1);
+   evas_object_clip_set(zone->bg_object, zone->bg_clip_object);
+   evas_object_show(zone->bg_object);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_bg.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_bg.h      30 Jun 2005 10:43:21 -0000      1.2
+++ e_bg.h      30 Jun 2005 14:07:28 -0000      1.3
@@ -10,13 +10,6 @@
      E_BG_TRANSITION_CHANGE
 } E_Bg_Transition;
 
-typedef enum {
-   E_BG_TRANSITION_MODE_NONE,
-   E_BG_TRANSITION_MODE_RANDOM,
-   E_BG_TRANSITION_MODE_FADE,
-   E_BG_TRANSITION_MODE_SINUSOUDAL_FADE,
-   E_BG_TRANSITION_MODE_LAST
-} E_Bg_Transition_Mode;
 #else
 #ifndef E_BG_H
 #define E_BG_H
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- e_config.c  30 Jun 2005 10:43:21 -0000      1.70
+++ e_config.c  30 Jun 2005 14:07:28 -0000      1.71
@@ -187,12 +187,9 @@
    E_CONFIG_VAL(D, T, kill_timer_wait, DOUBLE);
    E_CONFIG_VAL(D, T, ping_clients, INT);
    E_CONFIG_VAL(D, T, ping_clients_wait, DOUBLE);
-   E_CONFIG_VAL(D, T, desktop_bg_start_transition, INT);
-   E_CONFIG_VAL(D, T, desktop_bg_start_transition_time, DOUBLE);
-   E_CONFIG_VAL(D, T, desktop_bg_desk_transition, INT);
-   E_CONFIG_VAL(D, T, desktop_bg_desk_transition_time, DOUBLE);
-   E_CONFIG_VAL(D, T, desktop_bg_change_transition, INT);
-   E_CONFIG_VAL(D, T, desktop_bg_change_transition_time, DOUBLE);
+   E_CONFIG_VAL(D, T, transition_start, STR);
+   E_CONFIG_VAL(D, T, transition_desk, STR);
+   E_CONFIG_VAL(D, T, transition_change, STR);
    
    e_config = e_config_domain_load("e", _e_config_edd);
    if (e_config)
@@ -290,12 +287,9 @@
        e_config->kill_timer_wait = 10.0;
        e_config->ping_clients = 1;
        e_config->ping_clients_wait = 10.0;
-       e_config->desktop_bg_start_transition = E_BG_TRANSITION_MODE_NONE;
-       e_config->desktop_bg_start_transition_time = 1.0;
-       e_config->desktop_bg_desk_transition = 
E_BG_TRANSITION_MODE_SINUSOUDAL_FADE;
-       e_config->desktop_bg_desk_transition_time = 0.5;
-       e_config->desktop_bg_change_transition = 
E_BG_TRANSITION_MODE_SINUSOUDAL_FADE;
-       e_config->desktop_bg_change_transition_time = 1.0;
+       e_config->transition_start = strdup("");
+       e_config->transition_desk = strdup("vswipe");
+       e_config->transition_change = strdup("crossfade");
        
          {
             E_Config_Module *em;
@@ -826,12 +820,6 @@
    E_CONFIG_LIMIT(e_config->kill_timer_wait, 0.0, 120.0);
    E_CONFIG_LIMIT(e_config->ping_clients, 0, 1);
    E_CONFIG_LIMIT(e_config->ping_clients_wait, 0.0, 120.0);
-   E_CONFIG_LIMIT(e_config->desktop_bg_start_transition, 
E_BG_TRANSITION_MODE_NONE, E_BG_TRANSITION_MODE_LAST);
-   E_CONFIG_LIMIT(e_config->desktop_bg_start_transition_time, 0.01, 60.0);
-   E_CONFIG_LIMIT(e_config->desktop_bg_desk_transition, 
E_BG_TRANSITION_MODE_NONE, E_BG_TRANSITION_MODE_LAST);
-   E_CONFIG_LIMIT(e_config->desktop_bg_desk_transition_time, 0.01, 60.0);
-   E_CONFIG_LIMIT(e_config->desktop_bg_change_transition, 
E_BG_TRANSITION_MODE_NONE, E_BG_TRANSITION_MODE_LAST);
-   E_CONFIG_LIMIT(e_config->desktop_bg_change_transition_time, 0.01, 60.0);
 
    /* apply lang config - exception because config is loaded after intl setup 
*/
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- e_config.h  30 Jun 2005 10:43:21 -0000      1.36
+++ e_config.h  30 Jun 2005 14:07:28 -0000      1.37
@@ -47,7 +47,7 @@
  * defaults for e to work - started at 100 when we introduced this config
  * versioning feature
  */
-#define E_CONFIG_FILE_VERSION 116
+#define E_CONFIG_FILE_VERSION 117
 
 #define E_EVAS_ENGINE_DEFAULT      0
 #define E_EVAS_ENGINE_SOFTWARE_X11 1
@@ -131,12 +131,9 @@
    double      kill_timer_wait;
    int         ping_clients;
    double      ping_clients_wait;
-   int         desktop_bg_start_transition;
-   double      desktop_bg_start_transition_time;
-   int         desktop_bg_desk_transition;
-   double      desktop_bg_desk_transition_time;
-   int         desktop_bg_change_transition;
-   double      desktop_bg_change_transition_time;
+   char       *transition_start;
+   char       *transition_desk;
+   char       *transition_change;
 };
 
 struct _E_Config_Module
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- e_zone.c    29 Jun 2005 14:28:47 -0000      1.60
+++ e_zone.c    30 Jun 2005 14:07:28 -0000      1.61
@@ -543,7 +543,8 @@
    evas_object_del(zone->bg_clip_object);
    evas_object_del(zone->bg_object);
    if (zone->prev_bg_object) evas_object_del(zone->prev_bg_object);
-   if (zone->bg_animator) ecore_animator_del(zone->bg_animator);
+   if (zone->transition_object) evas_object_del(zone->transition_object);
+
    /* free desks */
    for (x = 0; x < zone->desk_x_count; x++)
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- e_zone.h    29 Jun 2005 14:28:47 -0000      1.27
+++ e_zone.h    30 Jun 2005 14:07:28 -0000      1.28
@@ -29,10 +29,7 @@
    Evas_Object         *bg_event_object;
    Evas_Object         *bg_clip_object;
    Evas_Object         *prev_bg_object;
-   Ecore_Animator      *bg_animator;
-   double               bg_set_time;
-   double               bg_transition_time;
-   E_Bg_Transition_Mode bg_transition_mode;
+   Evas_Object         *transition_object;
    
    int                  desk_x_count, desk_y_count;
    int                  desk_x_current, desk_y_current;




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to