add maximize animations
This commit is contained in:
parent
90c5b70582
commit
528250de98
|
@ -31,4 +31,82 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#define COMP_EFFECT_DURATION 0.2
|
||||||
|
|
||||||
|
group { name: "e/comp/effects/desksanity/maximize";
|
||||||
|
script {
|
||||||
|
public message(Msg_Type:type, id, ...) {
|
||||||
|
if ((type == MSG_INT_SET) && (id == 0)) {
|
||||||
|
/* set state */
|
||||||
|
new st;
|
||||||
|
|
||||||
|
st = getarg(2);
|
||||||
|
if (st == 1)
|
||||||
|
set_state(PART:"mover", "custom", 0.0);
|
||||||
|
else
|
||||||
|
set_state(PART:"mover", "default", 0.0);
|
||||||
|
} else if ((type == MSG_INT_SET) && (id == 1)) {
|
||||||
|
/* client geom[4] */
|
||||||
|
new x, y, xx, yy;
|
||||||
|
|
||||||
|
x = getarg(2);
|
||||||
|
y = getarg(3);
|
||||||
|
xx = getarg(4);
|
||||||
|
yy = getarg(5);
|
||||||
|
|
||||||
|
custom_state(PART:"mover", "default", 0.0);
|
||||||
|
set_state_val(PART:"mover", STATE_REL1_OFFSET, x, y);
|
||||||
|
set_state_val(PART:"mover", STATE_REL2_OFFSET, xx, yy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parts {
|
||||||
|
part { name: "mover"; type: SPACER;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
part { name: "e.swallow.content"; type: SWALLOW;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.to: "mover";
|
||||||
|
rel2.to: "mover";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
programs {
|
||||||
|
program {
|
||||||
|
name: "show";
|
||||||
|
signal: "e,action,go";
|
||||||
|
source: "e";
|
||||||
|
filter: "mover" "default";
|
||||||
|
action: STATE_SET "custom" 0.0;
|
||||||
|
transition: SINUSOIDAL COMP_EFFECT_DURATION CURRENT;
|
||||||
|
target: "mover";
|
||||||
|
after: "done";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "hide";
|
||||||
|
signal: "e,action,go";
|
||||||
|
source: "e";
|
||||||
|
filter: "mover" "custom";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: SINUSOIDAL COMP_EFFECT_DURATION CURRENT;
|
||||||
|
target: "mover";
|
||||||
|
after: "done";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "stop";
|
||||||
|
signal: "e,action,stop";
|
||||||
|
source: "e";
|
||||||
|
action: ACTION_STOP;
|
||||||
|
target: "show";
|
||||||
|
target: "hide";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "done";
|
||||||
|
action: SIGNAL_EMIT "e,action,done" "e";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ pkg_LTLIBRARIES = module.la
|
||||||
module_la_SOURCES = e_mod_main.h \
|
module_la_SOURCES = e_mod_main.h \
|
||||||
e_mod_main.c \
|
e_mod_main.c \
|
||||||
e_mod_config.c \
|
e_mod_config.c \
|
||||||
|
maximize.c \
|
||||||
moveresize.c \
|
moveresize.c \
|
||||||
desksanity.c
|
desksanity.c
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ e_modapi_init(E_Module *m)
|
||||||
bind_textdomain_codeset(PACKAGE, "UTF-8");
|
bind_textdomain_codeset(PACKAGE, "UTF-8");
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/e-module-desksanity.edj", m->dir);
|
snprintf(buf, sizeof(buf), "%s/e-module-desksanity.edj", m->dir);
|
||||||
|
elm_theme_overlay_add(NULL, buf);
|
||||||
//
|
//
|
||||||
//e_configure_registry_category_add("appearance", 80, D_("Look"),
|
//e_configure_registry_category_add("appearance", 80, D_("Look"),
|
||||||
//NULL, "preferences-look");
|
//NULL, "preferences-look");
|
||||||
|
@ -55,6 +56,7 @@ e_modapi_init(E_Module *m)
|
||||||
ds_init();
|
ds_init();
|
||||||
e_moveresize_replace(EINA_TRUE);
|
e_moveresize_replace(EINA_TRUE);
|
||||||
mr_init();
|
mr_init();
|
||||||
|
maximize_init();
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
@ -67,6 +69,7 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
||||||
e_configure_registry_category_del("extensions");
|
e_configure_registry_category_del("extensions");
|
||||||
|
|
||||||
E_FREE_FUNC(mod->cfd, e_object_del);
|
E_FREE_FUNC(mod->cfd, e_object_del);
|
||||||
|
maximize_shutdown();
|
||||||
mr_shutdown();
|
mr_shutdown();
|
||||||
ds_shutdown();
|
ds_shutdown();
|
||||||
//e_config_domain_save("module.desksanity", conf_edd, ds_config);
|
//e_config_domain_save("module.desksanity", conf_edd, ds_config);
|
||||||
|
|
|
@ -46,4 +46,7 @@ EINTERN void ds_shutdown(void);
|
||||||
EINTERN void mr_shutdown(void);
|
EINTERN void mr_shutdown(void);
|
||||||
EINTERN void mr_init(void);
|
EINTERN void mr_init(void);
|
||||||
|
|
||||||
|
EINTERN void maximize_init(void);
|
||||||
|
EINTERN void maximize_shutdown(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
#include "e_mod_main.h"
|
||||||
|
|
||||||
|
static Ecore_Event_Handler *eh = NULL;
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ds_unmaximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client *ec = data;
|
||||||
|
int x, y, w, h;
|
||||||
|
|
||||||
|
e_comp_object_effect_set(ec->frame, "desksanity/maximize");
|
||||||
|
e_comp_object_frame_xy_adjust(ec->frame, ec->saved.x, ec->saved.y, &x, &y);
|
||||||
|
e_comp_object_frame_wh_adjust(ec->frame, ec->saved.w, ec->saved.h, &w, &h);
|
||||||
|
e_comp_object_effect_params_set(ec->frame, 1, (int[]){ec->x - x, ec->y - y, (ec->x + ec->w) - (x + w), (ec->y + ec->h) - (y + h)}, 4);
|
||||||
|
e_comp_object_effect_params_set(ec->frame, 0, (int[]){1}, 1);
|
||||||
|
e_comp_object_effect_start(ec->frame, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ds_maximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client *ec = data;
|
||||||
|
int x, y, w, h;
|
||||||
|
|
||||||
|
e_comp_object_effect_set(ec->frame, "desksanity/maximize");
|
||||||
|
e_comp_object_frame_xy_adjust(ec->frame, ec->saved.x, ec->saved.y, &x, &y);
|
||||||
|
e_comp_object_frame_wh_adjust(ec->frame, ec->saved.w, ec->saved.h, &w, &h);
|
||||||
|
e_comp_object_effect_params_set(ec->frame, 1, (int[]){x - ec->x, y - ec->y, (x + w) - (ec->x + ec->w), (y + h) - (ec->y + ec->h)}, 4);
|
||||||
|
e_comp_object_effect_params_set(ec->frame, 0, (int[]){1}, 1);
|
||||||
|
e_comp_object_effect_start(ec->frame, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ds_maximize_check(E_Client *ec)
|
||||||
|
{
|
||||||
|
if (e_client_util_ignored_get(ec)) return;
|
||||||
|
evas_object_smart_callback_add(ec->frame, "maximize_done", _ds_maximize, ec);
|
||||||
|
evas_object_smart_callback_add(ec->frame, "unmaximize", _ds_unmaximize, ec);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_ds_maximize_add(void *d EINA_UNUSED, int t EINA_UNUSED, E_Event_Client *ev)
|
||||||
|
{
|
||||||
|
_ds_maximize_check(ev->ec);
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
}
|
||||||
|
|
||||||
|
EINTERN void
|
||||||
|
maximize_init(void)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
E_CLIENT_FOREACH(e_comp_get(NULL), ec)
|
||||||
|
_ds_maximize_check(ec);
|
||||||
|
eh = ecore_event_handler_add(E_EVENT_CLIENT_ADD, (Ecore_Event_Handler_Cb)_ds_maximize_add, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
EINTERN void
|
||||||
|
maximize_shutdown(void)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
E_CLIENT_FOREACH(e_comp_get(NULL), ec)
|
||||||
|
{
|
||||||
|
if (e_client_util_ignored_get(ec)) continue;
|
||||||
|
evas_object_smart_callback_del(ec->frame, "maximize", _ds_maximize);
|
||||||
|
evas_object_smart_callback_del(ec->frame, "unmaximize", _ds_unmaximize);
|
||||||
|
}
|
||||||
|
E_FREE_FUNC(eh, ecore_event_handler_del);
|
||||||
|
}
|
Loading…
Reference in New Issue