+#define KEYBOARD_EFFECT_FAST 0.20
group { name: "e/comp/effects/keyboard";
script {
+ public ang;
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
/*set state */
new st;
+ new rot;
+ new buf[32];
+
st = getarg(2);
+ rot = getarg(3);
+
+ set_int(ang, rot);
+
if (st == 0)
{
+ snprintf(buf, sizeof(buf), "default,%d", rot);
set_state(PART:"clipper", "default", 0.0);
- set_state(PART:"shower", "default", 0.0);
+ set_state(PART:"shower", buf, 0.0);
}
else if (st == 1)
{
}
else if (st == 2)
{
+ snprintf(buf, sizeof(buf), "restack_hidden,%d", rot);
set_state(PART:"clipper", "restack_hidden", 0.0);
- set_state(PART:"shower", "restack_hidden", 0.0);
+ set_state(PART:"shower", buf, 0.0);
}
else if (st == 3)
{
{
}
}
+ public hide_state(val, Float:pos)
+ {
+ new rot;
+ new buf[32];
+
+ rot = get_int(ang);
+ snprintf(buf, sizeof(buf), "hide,%d", rot);
+
+ set_tween_state_anim(PART:"shower", "visible", 0.0, buf, 0.0, DECELERATE, pos, "CURRENT");
+ set_tween_state_anim(PART:"clipper", "visible", 0.0, buf, 0.0, DECELERATE, pos, "CURRENT");
+
+ if (pos == 1.0)
+ {
+ if (get_int(val) == 1)
+ run_program(PROGRAM:"hide2");
+ else
+ run_program(PROGRAM:"done");
+ }
+ }
}
parts {
part { name: "clipper";
}
description { state: "hide" 0.0;
inherit: "default" 0.0;
+ color: 255 255 255 255;
}
description { state: "restack_visible" 0.0;
inherit: "visible" 0.0;
rel1.relative: 0 1;
rel2.relative: 1 2;
}
+ description { state: "default,0" 0.0;
+ inherit: "default" 0.0;
+ }
+ description { state: "default,90" 0.0;
+ rel1.relative: 1 0;
+ rel2.relative: 2 1;
+ }
+ description { state: "default,180" 0.0;
+ rel1.relative: 0 -1;
+ rel2.relative: 0 1;
+ }
+ description { state: "default,270" 0.0;
+ rel1.relative: -1 0;
+ rel2.relative: 0 1;
+ }
description { state: "visible" 0.0;
inherit: "default" 0.0;
rel1.relative: 0 0;
description { state: "hide" 0.0;
inherit: "default" 0.0;
}
+ description { state: "hide,0" 0.0;
+ inherit: "hide" 0.0;
+ }
+ description { state: "hide,90" 0.0;
+ inherit: "default,90" 0.0;
+ }
+ description { state: "hide,180" 0.0;
+ inherit: "default,180" 0.0;
+ }
+ description { state: "hide,270" 0.0;
+ inherit: "default,270" 0.0;
+ }
description { state: "restack_visible" 0.0;
inherit: "visible" 0.0;
}
description { state: "restack_hidden" 0.0;
inherit: "default" 0.0;
}
+ description { state: "restack_hidden,0" 0.0;
+ inherit: "restack_hidden" 0.0;
+ }
+ description { state: "restack_hidden,90" 0.0;
+ inherit: "default,90" 0.0;
+ }
+ description { state: "restack_hidden,180" 0.0;
+ inherit: "default,180" 0.0;
+ }
+ description { state: "restack_hidden,270" 0.0;
+ inherit: "default,270" 0.0;
+ }
description { state: "restack_done" 0.0;
inherit: "visible" 0.0;
}
program { name: "show1";
signal: "e,action,go";
source: "e";
- filter: "shower" "default";
+ filter: "clipper" "default";
action: STATE_SET "visible" 0.0;
- transition: ACCELERATE COMP_EFFECT_DURATION_FAST;
+ transition: DECELERATE KEYBOARD_EFFECT_FAST;
target: "shower";
target: "clipper";
target: "e.swallow.content";
program { name: "hide1";
signal: "e,action,go";
source: "e";
- filter: "shower" "visible";
- action: STATE_SET "hide" 0.0;
- transition: ACCELERATE COMP_EFFECT_DURATION_FAST;
- target: "shower";
- target: "clipper";
- after: "hide2";
+ filter: "clipper" "visible";
+ script{
+ anim(KEYBOARD_EFFECT_FAST, "hide_state", 1);
+ }
}
program { name: "hide2";
action: STATE_SET "default" 0.0;
program { name: "restack,hide";
signal: "e,action,go";
source: "e";
- filter: "shower" "restack_visible";
- action: STATE_SET "hide" 0.0;
- transition: ACCELERATE COMP_EFFECT_DURATION_FAST;
- target: "shower";
- target: "clipper";
- after: "done";
+ filter: "clipper" "restack_visible";
+ script{
+ anim(KEYBOARD_EFFECT_FAST, "hide_state", 0);
+ }
}
program { name: "restack,show";
signal: "e,action,go";
source: "e";
- filter: "shower" "restack_hidden";
+ filter: "clipper" "restack_hidden";
action: STATE_SET "visible" 0.0;
- transition: ACCELERATE COMP_EFFECT_DURATION_FAST;
+ transition: DECELERATE KEYBOARD_EFFECT_FAST;
target: "shower";
target: "clipper";
target: "e.swallow.content";
program { name: "restack,finish";
signal: "e,action,go";
source: "e";
- filter: "shower" "restack_done";
+ filter: "clipper" "restack_done";
action: STATE_SET "visible" 0.0;
target: "shower";
target: "clipper";
}
static void
-_eff_object_setup(E_Client *ec)
+_eff_object_setup(E_Client *ec, E_Effect_Group group)
{
E_Comp_Config *cfg;
cfg = e_comp_config_get();
- if (ec->vkbd.vkbd)
+ if (group == E_EFFECT_GROUP_KEYBOARD)
e_comp_object_effect_set(ec->frame, "keyboard");
else
{
{
E_Client *ec;
E_Effect_Group group;
+ int ang = -1;
if (!_eff) return EINA_FALSE;
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
group = _eff_group_get(ec);
- if (group != E_EFFECT_GROUP_NORMAL) return EINA_FALSE;
+ if ((group != E_EFFECT_GROUP_NORMAL) &&
+ (group != E_EFFECT_GROUP_KEYBOARD)) return EINA_FALSE;
if (evas_object_visible_get(obj)) return EINA_FALSE;
if (!_eff_ref(ec)) return EINA_FALSE;
EFFINF("SET EXTRA_ANIMATING...", ec->pixmap, ec);
ec->extra_animating = EINA_TRUE;
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){0}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){0, ang}, 2);
if (e_comp->nocomp)
{
_eff_pending_effect_set(ec,
Eina_Bool lowered = 0;
Evas_Object *below;
int map_ly;
+ int ang = -1;
if (!_eff) return EINA_FALSE;
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
group = _eff_group_get(ec);
- if (group != E_EFFECT_GROUP_NORMAL) return EINA_FALSE;
+ if ((group != E_EFFECT_GROUP_NORMAL) &&
+ (group != E_EFFECT_GROUP_KEYBOARD)) return EINA_FALSE;
if (!evas_object_visible_get(obj)) return EINA_FALSE;
if (!_eff_ref(ec)) return EINA_FALSE;
if (lowered)
_eff_object_layer_up(ec);
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){1}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){1, ang}, 2);
if (e_comp->nocomp)
{
E_Client *ec;
E_Effect_Group group;
Eina_Bool v1, v2;
+ int ang = -1;
if (!_eff) return EINA_FALSE;
e_comp_object_signal_emit(below->frame, "e,action,restack,hide", "e");
return EINA_TRUE;
}
- /* for NORMAL group */
- else if (group == E_EFFECT_GROUP_NORMAL)
+ /* for NORMAL and KEYBOARD group */
+ else if ((group == E_EFFECT_GROUP_NORMAL) ||
+ (group == E_EFFECT_GROUP_KEYBOARD))
{
v1 = _eff_visibility_stack_check(ec, _eff->stack.old);
v2 = _eff_visibility_stack_check(ec, _eff->stack.cur);
e_comp_override_add();
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){0}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){0, ang}, 2);
if (e_comp->nocomp)
{
E_Client *ec;
E_Effect_Group group;
Eina_Bool v1, v2;
+ int ang = -1;
if (!_eff) return EINA_FALSE;
if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE;
group = _eff_group_get(ec);
- if (group != E_EFFECT_GROUP_NORMAL) return EINA_FALSE;
+ if ((group != E_EFFECT_GROUP_NORMAL) &&
+ (group != E_EFFECT_GROUP_KEYBOARD)) return EINA_FALSE;
if (!evas_object_visible_get(obj)) return EINA_FALSE;
e_comp_override_add();
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){1}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){1, ang}, 2);
if (e_comp->nocomp)
{
E_Effect_Group group;
const char *emission;
E_Client *ec_home = NULL;
+ int ang = -1;
if (!_eff) return EINA_FALSE;
emission = eina_stringshare_add("e,action,restack,hide");
}
- if (group != E_EFFECT_GROUP_NORMAL) return EINA_FALSE;
+ if ((group != E_EFFECT_GROUP_NORMAL) &&
+ (group != E_EFFECT_GROUP_KEYBOARD)) return EINA_FALSE;
if ((!e_util_strcmp(emission, "e,action,restack,show")))
{
_eff_object_layer_up(ec);
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){2}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){2, ang}, 2);
if (e_comp->nocomp)
{
_eff_object_layer_up(ec);
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){3}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){3, ang}, 2);
if (e_comp->nocomp)
{
e_comp_override_add();
- _eff_object_setup(ec);
- e_comp_object_effect_params_set(ec->frame, 0, (int[]){4}, 1);
+ _eff_object_setup(ec, group);
+ ang = ec->e.state.rot.ang.curr;
+ e_comp_object_effect_params_set(ec->frame, 0, (int[]){4, ang}, 2);
if (e_comp->nocomp)
{