Add action menu show/hide animation 56/48956/1 accepted/tizen/tv/20151005.055319 submit/tizen/20151005.003307
authorjinwoo.shin <jw0227.shin@samsung.com>
Fri, 2 Oct 2015 06:14:14 +0000 (15:14 +0900)
committerjinwoo.shin <jw0227.shin@samsung.com>
Fri, 2 Oct 2015 06:14:14 +0000 (15:14 +0900)
Change-Id: I5d5c2fe64b24afec7867019d0119194494194589
Signed-off-by: jinwoo.shin <jw0227.shin@samsung.com>
data/view/action_menu_view.edc
include/define.h
src/action_menu_view.c

index 03867a3..6c23d53 100644 (file)
@@ -35,9 +35,14 @@ group {
                                color, 255 255 255 255;
                                rel1.relative, 1.0 0.0;
                                min, 500 0;
-                               align, 1.0 0.0;
+                               align, 0.0 0.0;
                                fixed, 1 1;
                        }
+                       description {
+                               state, "show" 0.0;
+                               inherit, "default" 0.0;
+                               align, 1.0 0.0;
+                       }
                }
 
                part {
@@ -174,4 +179,24 @@ group {
                        }
                }
        }
+       programs {
+               program {
+                       signal, SIGNAL_SHOW;
+                       action, STATE_SET "show" 0.0;
+                       target, "menu_area";
+                       transition, CUBIC_BEZIER 0.667 TRANSITION_EASE_IN_OUT;
+               }
+               program {
+                       signal, SIGNAL_HIDE;
+                       source, SOURCE_ELM;
+                       action, STATE_SET "default" 0.0;
+                       target, "menu_area";
+                       transition, CUBIC_BEZIER 0.334 TRANSITION_EASE_OUT;
+                       after, "hide_finished";
+               }
+               program {
+                       name, "hide_finished";
+                       action, SIGNAL_EMIT SIGNAL_HIDE_FINISHED SOURCE_ELM;
+               }
+       }
 }
index a5e552b..7a6cec6 100644 (file)
 #define SIGNAL_TOGGLE "elm,state,toggle"
 #define SIGNAL_UNTOGGLE "elm,state,untoggle"
 #define SIGNAL_CHILD_REMOVED "child,removed"
+#define SIGNAL_SHOW "show"
+#define SIGNAL_HIDE "hide"
+#define SIGNAL_HIDE_FINISHED "elm,action,hide,finished"
+
+#define TRANSITION_EASE_IN_OUT 0.45 0.03 0.41 1.0
+#define TRANSITION_EASE_OUT 0.25 0.46 0.45 1.0
 
 #define FONT_REGULAR "BreezeSans"
 #define FONT_LIGHT "BreezeSans:style=Light"
index 16a03d3..ad29e40 100644 (file)
@@ -393,6 +393,19 @@ static void _draw_view_content(struct _priv *priv)
        }
 }
 
+static void _hide_finished_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source)
+{
+       struct _priv *priv;
+
+       if (!data)
+               return;
+
+       priv = data;
+
+       evas_object_hide(priv->base);
+}
+
 static Evas_Object *_create(Evas_Object *win, void *data)
 {
        struct _priv *priv;
@@ -433,6 +446,8 @@ static Evas_Object *_create(Evas_Object *win, void *data)
        _draw_view_content(priv);
 
        inputmgr_add_callback(priv->base, 0, &key_handler, priv);
+       elm_layout_signal_callback_add(priv->base, SIGNAL_HIDE_FINISHED,
+                       SOURCE_ELM, _hide_finished_cb, priv);
 
        return base;
 }
@@ -464,7 +479,7 @@ static void _hide(void *data)
        }
        priv = data;
 
-       evas_object_hide(priv->base);
+       elm_layout_signal_emit(priv->base, SIGNAL_HIDE, SOURCE_ELM);
 }
 
 static void _destroy(void *data)
@@ -489,6 +504,8 @@ static void _destroy(void *data)
 
        evas_object_smart_callback_del(priv->table, SIGNAL_CHILD_REMOVED,
                        _child_removed_cb);
+       elm_layout_signal_callback_del(priv->base, SIGNAL_HIDE_FINISHED,
+                       SOURCE_ELM, _hide_finished_cb);
 
        evas_object_del(priv->base);