forked from enlightenment/enlightenment
ok - desktop changes are done by edje transitions now
i hereby invoke the power of edje on ye desktop wallpapers. SVN revision: 15585
This commit is contained in:
parent
4285b97253
commit
472f87ff96
|
@ -29,7 +29,8 @@ default_error.edc \
|
|||
default_cpufreq.edc \
|
||||
default_ibox.edc \
|
||||
default_start.edc \
|
||||
default_winlist.edc
|
||||
default_winlist.edc \
|
||||
default_transitions.edc
|
||||
|
||||
default.edj: Makefile $(EXTRA_DIST)
|
||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
||||
|
|
|
@ -38,5 +38,6 @@ collections {
|
|||
#include "default_ibox.edc"
|
||||
#include "default_start.edc"
|
||||
#include "default_winlist.edc"
|
||||
#include "default_transitions.edc"
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,189 @@
|
|||
images {
|
||||
image: "e17_transition_vswipe_gap.png" COMP;
|
||||
}
|
||||
|
||||
group {
|
||||
name: "transitions/crossfade";
|
||||
parts {
|
||||
part {
|
||||
name: "bg_prev";
|
||||
type: SWALLOW;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bg_new";
|
||||
type: SWALLOW;
|
||||
clip_to: "bg_new_clip";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bg_new_clip";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
description {
|
||||
state: "done" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program {
|
||||
name: "go";
|
||||
signal: "go";
|
||||
source: "";
|
||||
action: STATE_SET "done" 0.0;
|
||||
transition: SINUSOIDAL 1.0;
|
||||
target: "bg_new_clip";
|
||||
after: "go2";
|
||||
}
|
||||
program {
|
||||
name: "go2";
|
||||
action: SIGNAL_EMIT "done" "";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group {
|
||||
name: "transitions/vswipe";
|
||||
parts {
|
||||
part {
|
||||
name: "bg_prev";
|
||||
type: SWALLOW;
|
||||
clip_to: "bg_prev_clip";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bg_new";
|
||||
type: SWALLOW;
|
||||
clip_to: "bg_new_clip";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bg_prev_clip";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
state: "default" 0.0;
|
||||
}
|
||||
description {
|
||||
state: "done" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "swipe_gap";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
min: 0 64;
|
||||
max: 99999 64;
|
||||
rel1 {
|
||||
to: "bg_prev_clip";
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
to: "bg_prev_clip";
|
||||
relative: 1.0 0.0;
|
||||
offset: -1 0;
|
||||
}
|
||||
image {
|
||||
normal: "e17_transition_vswipe_gap.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "bg_new_clip";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 0.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
description {
|
||||
state: "done" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program {
|
||||
name: "go";
|
||||
signal: "go";
|
||||
source: "";
|
||||
action: STATE_SET "done" 0.0;
|
||||
transition: SINUSOIDAL 1.0;
|
||||
target: "bg_new_clip";
|
||||
target: "bg_prev_clip";
|
||||
after: "go2";
|
||||
}
|
||||
program {
|
||||
name: "go2";
|
||||
action: SIGNAL_EMIT "done" "";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -276,4 +276,6 @@ e17_cpufreq_cpu1.png \
|
|||
e17_cpufreq_cpu2.png \
|
||||
e17_winlist_top.png \
|
||||
e17_winlist_bottom.png \
|
||||
e17_pager_window_shaded.png
|
||||
e17_pager_window_shaded.png \
|
||||
e17_transition_vswipe_gap.png
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 230 B |
116
src/bin/e_bg.c
116
src/bin/e_bg.c
|
@ -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 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
|||
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 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
|||
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_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
|||
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 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
|||
|
||||
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 @@ e_bg_update(void)
|
|||
|
||||
/* 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);
|
||||
}
|
||||
|
|
|
@ -10,13 +10,6 @@ typedef enum {
|
|||
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
|
||||
|
|
|
@ -187,12 +187,9 @@ e_config_init(void)
|
|||
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_init(void)
|
|||
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_init(void)
|
|||
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 */
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ typedef Eet_Data_Descriptor E_Config_DD;
|
|||
* 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 @@ struct _E_Config
|
|||
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
|
||||
|
|
|
@ -543,7 +543,8 @@ _e_zone_free(E_Zone *zone)
|
|||
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++)
|
||||
{
|
||||
|
|
|
@ -29,10 +29,7 @@ struct _E_Zone
|
|||
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;
|
||||
|
|
Loading…
Reference in New Issue