summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSoohye Shin <soohye.shin@samsung.com>2015-09-03 14:37:42 +0900
committerSoohye Shin <soohye.shin@samsung.com>2015-09-03 14:37:42 +0900
commit6bfa52412e1bd3a25f009a03a9bca587a3835e60 (patch)
tree486acd0e196271af6d84db7d7cd458656bed739a
parent0c3a2a1a2c635109ae4d35e7772e5ea3932ee5dd (diff)
downloadair_home-6bfa52412e1bd3a25f009a03a9bca587a3835e60.tar.gz
air_home-6bfa52412e1bd3a25f009a03a9bca587a3835e60.tar.bz2
air_home-6bfa52412e1bd3a25f009a03a9bca587a3835e60.zip
add animation effect to show and hide action menu
Change-Id: I23e0e09d4e0d12b05e3ab0bcd31cb3d7c9cec43d Signed-off-by: Soohye Shin <soohye.shin@samsung.com>
-rw-r--r--edje/view/actionmenu.edc68
-rw-r--r--edje/widget/button.edc2
-rw-r--r--src/view/view_action_menu.c21
3 files changed, 83 insertions, 8 deletions
diff --git a/edje/view/actionmenu.edc b/edje/view/actionmenu.edc
index 12310a5..4fab779 100644
--- a/edje/view/actionmenu.edc
+++ b/edje/view/actionmenu.edc
@@ -28,12 +28,46 @@ group {
}
}
part {
+ name, "guide";
+ type, RECT;
+ description {
+ state, "default" 0.0;
+ rel1.relative, 1.0 0.0;
+ min, 500 0;
+ align, 0.0 0.5;
+ visible, 0;
+ }
+ description {
+ state, "show" 0.0;
+ inherit, "default" 0.0;
+ min, 0 0;
+ }
+ }
+ part {
+ name, "clip";
+ type, RECT;
+ description {
+ state, "default" 0.0;
+ color, 0 0 0 0;
+ }
+ description {
+ state, "show" 0.0;
+ inherit, "default" 0.0;
+ color, 255 255 255 255;
+ }
+ }
+ part {
name, "bar";
type, RECT;
scale, 1;
+ clip_to, "clip";
description {
state, "default" 0.0;
- rel1.relative, 1.0 0.0;
+ rel1 {
+ to, "guide";
+ relative, 1.0 0.0;
+ }
+ rel2.to, "guide";
min, 500 0;
fixed, 1 0;
align, 1.0 0.5;
@@ -153,6 +187,38 @@ group {
}
}
}
+ programs {
+ program {
+ name, "sig,show,init";
+ signal, SIG_SHOW;
+ source, SRC_PROG;
+ action, STATE_SET "default" 0.0;
+ target, "clip";
+ target, "guide";
+ after, "sig,show";
+ }
+ program {
+ name, "sig,show";
+ action, STATE_SET "show" 0.0;
+ transition, SIN 0.45;
+ target, "clip";
+ target, "guide";
+ }
+ program {
+ name, "sig,hide";
+ signal, SIG_HIDE;
+ source, SRC_PROG;
+ action, STATE_SET "default" 0.0;
+ transition, DECEL 0.3;
+ target, "clip";
+ target, "guide";
+ after, "sig,hide,done";
+ }
+ program {
+ name, "sig,hide,done";
+ action, SIGNAL_EMIT SIG_HIDE_DONE SRC_EDJE;
+ }
+ }
}
group {
name, GRP_ACTION_MENU_LIVETV;
diff --git a/edje/widget/button.edc b/edje/widget/button.edc
index e3283a0..4d57906 100644
--- a/edje/widget/button.edc
+++ b/edje/widget/button.edc
@@ -205,7 +205,7 @@ group {
parts {
part {
name, "icon";
- type, RECT;
+ type, SPACER;
scale, 1;
description {
state, "default" 0.0;
diff --git a/src/view/view_action_menu.c b/src/view/view_action_menu.c
index 41b34fd..f0532be 100644
--- a/src/view/view_action_menu.c
+++ b/src/view/view_action_menu.c
@@ -261,7 +261,7 @@ static void _select(int id, void *data, Evas_Object *obj)
break;
case INPUT_HANDLER_TYPE_POPUP_RESET:
viewmgr_update_view(VIEW_USER_EDIT, UPDATE_TYPE_RESET, NULL);
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
_delete_popup(priv, obj);
break;
case INPUT_HANDLER_TYPE_POPUP_DELETE:
@@ -292,7 +292,7 @@ static void _key_down(int id, void *data, Evas *e, Evas_Object *obj,
case INPUT_HANDLER_TYPE_BTN:
case INPUT_HANDLER_TYPE_MENU_RESET:
case INPUT_HANDLER_TYPE_MENU_DELETE:
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SRC_PROG);
break;
case INPUT_HANDLER_TYPE_POPUP_RESET:
case INPUT_HANDLER_TYPE_POPUP_DISCARD:
@@ -346,6 +346,12 @@ static bool _add_base(struct _priv *priv)
return true;
}
+static void _hide_done(void *data, Evas_Object *obj, const char *emission,
+ const char *source)
+{
+ viewmgr_hide_view(VIEW_ACTION_MENU);
+}
+
static Evas_Object *_create(Evas_Object *win, void *data)
{
struct _priv *priv;
@@ -384,6 +390,8 @@ static Evas_Object *_create(Evas_Object *win, void *data)
}
viewmgr_set_view_data(VIEW_ACTION_MENU, priv);
+ elm_object_signal_callback_add(base, SIG_HIDE_DONE, SRC_EDJE,
+ _hide_done, NULL);
return base;
}
@@ -404,9 +412,12 @@ static void _update_focus_sequence(struct _priv *priv)
if (eo) {
elm_object_focus_next_object_set(priv->btn, eo, ELM_FOCUS_DOWN);
elm_object_focus_next_object_set(eo, eo, ELM_FOCUS_LEFT);
- } else
+ elm_object_focus_set(eo, EINA_TRUE);
+ } else {
elm_object_focus_next_object_set(priv->btn, priv->btn,
ELM_FOCUS_DOWN);
+ elm_object_focus_set(priv->btn, EINA_TRUE);
+ }
}
static bool _add_menu_item(struct _priv *priv)
@@ -470,9 +481,7 @@ static void _show(void *data)
}
evas_object_show(priv->base);
-
- if (priv->btn)
- elm_object_focus_set(priv->btn, EINA_TRUE);
+ elm_object_signal_emit(priv->base, SIG_SHOW, SRC_PROG);
}
static void _hide(void *data)