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 {
}
}
}
+ 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;
+ }
+ }
}
#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"
}
}
+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;
_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;
}
}
priv = data;
- evas_object_hide(priv->base);
+ elm_layout_signal_emit(priv->base, SIGNAL_HIDE, SOURCE_ELM);
}
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);