discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=d177714539924caf6f215ea6531aaa7e42256b12
commit d177714539924caf6f215ea6531aaa7e42256b12 Author: Mike Blumenkrantz <[email protected]> Date: Tue Aug 19 06:43:53 2014 -0400 unify fading code --- src/e_mod_main.c | 28 ++++++++++++++++++++++++++++ src/e_mod_main.h | 1 + src/moveresize.c | 24 +++++------------------- src/pip.c | 27 +++------------------------ 4 files changed, 37 insertions(+), 43 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 6cc3006..1a7776a 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -6,6 +6,16 @@ static E_Config_DD *conf_edd = NULL; EINTERN Mod *mod = NULL; EINTERN Config *ds_config = NULL; +static Evas_Object *fade_obj = NULL; + +static void +_ds_fade_end(Ecore_Cb cb, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED) +{ + E_FREE_FUNC(fade_obj, evas_object_del); + if (cb) + cb(NULL); +} + static void _e_mod_ds_config_load(void) { @@ -105,3 +115,21 @@ e_modapi_save(E_Module *m EINA_UNUSED) return 1; } +EINTERN void +ds_fade_setup(E_Comp *comp) +{ + if (fade_obj) return; + fade_obj = evas_object_rectangle_add(comp->evas); + evas_object_name_set(fade_obj, "fade_obj"); + evas_object_geometry_set(fade_obj, 0, 0, comp->man->w, comp->man->h); + evas_object_layer_set(fade_obj, E_LAYER_MENU + 1); + evas_object_show(fade_obj); + efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL); + efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 192, 0.3, NULL, NULL); +} + +EINTERN void +ds_fade_end(Ecore_Cb end_cb) +{ + efx_fade(fade_obj, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, (Efx_End_Cb)_ds_fade_end, end_cb); +} diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 4bcde64..b908022 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -84,6 +84,7 @@ extern Mod *mod; extern Config *ds_config; EINTERN void ds_fade_setup(E_Comp *comp); +EINTERN void ds_fade_end(Ecore_Cb cb); EINTERN void ds_init(void); EINTERN void ds_shutdown(void); diff --git a/src/moveresize.c b/src/moveresize.c index 5a8e3b6..4cf88f1 100644 --- a/src/moveresize.c +++ b/src/moveresize.c @@ -11,7 +11,6 @@ static Evas_Object *resize_text = NULL; static Evas_Object *resize_rect[4] = {NULL}; -static Evas_Object *fade_obj = NULL; static E_Client *client = NULL; static E_Client_Hook *ec_hooks[EC_HOOK_COUNT] = {NULL}; @@ -19,7 +18,6 @@ static E_Client_Hook *ec_hooks[EC_HOOK_COUNT] = {NULL}; static void clear_all(void) { - E_FREE_FUNC(fade_obj, evas_object_del); E_FREE_FUNC(mr_line_x, evas_object_del); E_FREE_FUNC(mr_line_y, evas_object_del); E_FREE_FUNC(move_text_x, evas_object_del); @@ -40,7 +38,7 @@ clear_all(void) } static void -fade_end(void *d EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj EINA_UNUSED) +_fade_end(void *d EINA_UNUSED) { e_comp_shape_queue_block(client->comp, 0); clear_all(); @@ -242,18 +240,6 @@ line_add(Evas *e) } static void -fade_setup(E_Client *ec) -{ - fade_obj = evas_object_rectangle_add(ec->comp->evas); - evas_object_name_set(fade_obj, "fade_obj"); - evas_object_geometry_set(fade_obj, 0, 0, ec->comp->man->w, ec->comp->man->h); - evas_object_layer_set(fade_obj, E_LAYER_MENU + 1); - evas_object_show(fade_obj); - efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL); - efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 192, 0.3, NULL, NULL); -} - -static void pulse(void *d EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj) { efx_queue_append(obj, EFX_EFFECT_SPEED_SINUSOIDAL, EFX_QUEUED_EFFECT(EFX_EFFECT_FADE(255, 255, 255, 255)), 0.6, NULL, NULL); @@ -269,7 +255,7 @@ move_start(E_Client *ec) client = ec; e_comp_shape_queue_block(ec->comp, 1); - fade_setup(ec); + ds_fade_setup(ec->comp); ec->layer_block = 1; evas_object_layer_set(ec->frame, E_LAYER_MENU + 1); @@ -311,7 +297,7 @@ move_end(void *d EINA_UNUSED, E_Client *ec EINA_UNUSED) efx_fade(mr_line_y, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL); efx_fade(move_text_x, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL); efx_fade(move_text_y, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL); - efx_fade(fade_obj, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, fade_end, NULL); + ds_fade_end(_fade_end); } static void @@ -324,7 +310,7 @@ resize_start(E_Client *ec) client = ec; e_comp_shape_queue_block(ec->comp, 1); - fade_setup(ec); + ds_fade_setup(ec->comp); ec->layer_block = 1; evas_object_layer_set(ec->frame, E_LAYER_MENU + 1); @@ -393,7 +379,7 @@ resize_end(void *d EINA_UNUSED, E_Client *ec EINA_UNUSED) efx_fade(resize_rect[x], EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, NULL, NULL); efx_queue_clear(resize_rect[x]); } - efx_fade(fade_obj, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, fade_end, NULL); + ds_fade_end(_fade_end); } EINTERN void diff --git a/src/pip.c b/src/pip.c index ac3ef5d..45d021b 100644 --- a/src/pip.c +++ b/src/pip.c @@ -9,8 +9,6 @@ static Ecore_Event_Handler *action_handler = NULL; static Eina_Bool editing = EINA_FALSE; -static Evas_Object *fade_obj = NULL; - typedef struct Pip { Evas_Object *pip; @@ -21,25 +19,6 @@ typedef struct Pip Eina_Bool resize : 1; } Pip; - -static void -fade_setup(E_Comp *comp) -{ - fade_obj = evas_object_rectangle_add(comp->evas); - evas_object_name_set(fade_obj, "fade_obj"); - evas_object_geometry_set(fade_obj, 0, 0, comp->man->w, comp->man->h); - evas_object_layer_set(fade_obj, E_LAYER_MENU + 1); - evas_object_show(fade_obj); - efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 0, 0.0, NULL, NULL); - efx_fade(fade_obj, EFX_EFFECT_SPEED_LINEAR, EFX_COLOR(0, 0, 0), 192, 0.3, NULL, NULL); -} - -static void -fade_end(void *d EINA_UNUSED, Efx_Map_Data *emd EINA_UNUSED, Evas_Object *obj) -{ - E_FREE_FUNC(obj, evas_object_del); -} - static void pips_edit(void) { @@ -50,7 +29,7 @@ pips_edit(void) comp = e_comp_get(NULL); if (comp->nocomp) return; editing = EINA_TRUE; - fade_setup(comp); + ds_fade_setup(comp); it = eina_hash_iterator_data_new(pips); EINA_ITERATOR_FOREACH(it, pip) { @@ -68,7 +47,7 @@ pips_noedit(void) Eina_Iterator *it; editing = EINA_FALSE; - efx_fade(fade_obj, EFX_EFFECT_SPEED_DECELERATE, EFX_COLOR(0, 0, 0), 0, 0.3, fade_end, NULL); + ds_fade_end(NULL); it = eina_hash_iterator_data_new(pips); EINA_ITERATOR_FOREACH(it, pip) { @@ -347,7 +326,7 @@ pip_shutdown(void) E_FREE_FUNC(pips, eina_hash_free); E_FREE_FUNC(handlers[0], ecore_event_handler_del); E_FREE_FUNC(handlers[1], ecore_event_handler_del); - E_FREE_FUNC(fade_obj, evas_object_del); + ds_fade_end(NULL); e_action_predef_name_del(D_("Compositor"), D_("Manage Minis")); e_action_del("pips"); act = NULL; --
