name, GRP_VIEW_ACTION_MENU;
parts {
part {
+ name, "reference";
+ type, RECT;
+ scale, 1;
+ description {
+ state, "default" 0.0;
+ min, 500 0;
+ rel1.relative, 1.0 0.0;
+ align, 0.0 0.5;
+ fixed, 1 0;
+ visible, 0;
+ }
+ description {
+ state, "show" 0.0;
+ inherit, "default" 0.0;
+ min, 0 0;
+ }
+ }
+
+ part {
name, "bg.dark";
type, RECT;
scale, 1;
description {
state, "default" 0.0;
color, 255 255 255 255;
- rel1.relative, 1.0 0.0;
+ rel1 {
+ to, "reference";
+ relative, 1.0 0.0;
+ }
+ rel2.to, "reference";
min, 500 0;
align, 1.0 0.5;
fixed, 1 0;
}
+ description {
+ state, "show" 0.0;
+ inherit, "default" 0.0;
+ }
}
part {
}
}
}
+
+ programs {
+ program {
+ name, SIG_SHOW;
+ signal, SIG_SHOW;
+ source, SIG_SOURCE_EDC;
+ action, STATE_SET "show" 0.0;
+ transition, TRANSITION_MENU_SHOW;
+ target, "reference";
+ target, "bg";
+ }
+
+ program {
+ name, SIG_HIDE;
+ signal, SIG_HIDE;
+ source, SIG_SOURCE_EDC;
+ action, STATE_SET "default" 0.0;
+ transition, TRANSITION_MENU_HIDE;
+ target, "reference";
+ target, "bg";
+ after, SIG_HIDE_DONE;
+ }
+
+ program {
+ name, SIG_HIDE_DONE;
+ action, SIGNAL_EMIT SIG_HIDE_DONE SIG_SOURCE_EDC;
+ }
+ }
}
group {
relative, 0.0 0.0;
}
visible, 0;
+ fixed, 1 1;
}
description {
state, "visible" 0.0;
target, "part.no.content.bg";
target, "part.no.content.text";
}
- }
- programs {
program {
name, SIG_CONTENT;
signal, SIG_CONTENT;
elm_object_focus_set(obj, EINA_TRUE);
}
-static void _livetv_selected(void)
+static void _livetv_selected(struct _priv *priv)
{
if (!utils_launch_app(APP_ID_LIVETV)) {
_ERR("Launch live tv failed.");
return;
}
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SIG_SOURCE_EDC);
}
static void _favorite_selected(struct _priv *priv)
viewmgr_update_view(VIEW_BASE, UPDATE_SHOW_TOAST,
STR_ADD_FAVORITE);
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SIG_SOURCE_EDC);
}
static void _uninstall_selected(struct _priv *priv)
set_app_favorite(adata, false);
viewmgr_update_view(VIEW_BASE, UPDATE_GRID, adata);
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SIG_SOURCE_EDC);
}
static void _popup_clicked_cb(int id, void *data, Evas_Object *obj)
switch (id) {
case BTN_LIVETV:
- _livetv_selected();
+ _livetv_selected(priv);
break;
case BTN_FAVORITE:
static void _key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
Evas_Event_Key_Down *ev)
{
- if (!ev) {
+ struct _priv *priv;
+
+ if (!data || !ev) {
_ERR("Invalid argument.");
return;
}
+ priv = data;
if (!strcmp(ev->keyname, KEY_BACK)
|| !strcmp(ev->keyname, KEY_BACK_REMOTE))
- viewmgr_hide_view(VIEW_ACTION_MENU);
+ elm_object_signal_emit(priv->base, SIG_HIDE, SIG_SOURCE_EDC);
}
static void _grid_mouse_move_cb(int id, void *data, Evas *e, Evas_Object *obj,
SIG_SOURCE_EDC, _grid_item_selected_cb);
}
-static void _grid_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
- Evas_Event_Key_Down *ev)
-{
- if (!ev) {
- _ERR("Invalid argument.");
- return;
- }
-
- if (!strcmp(ev->keyname, KEY_BACK)
- || !strcmp(ev->keyname, KEY_BACK_REMOTE))
- viewmgr_hide_view(VIEW_ACTION_MENU);
-}
-
static input_handler _btn_input_handler = {
.mouse_move = _mouse_move_cb,
.clicked = _clicked_cb,
.mouse_move = _grid_mouse_move_cb,
.realized = _grid_realized_cb,
.unrealized = _grid_unrealized_cb,
- .key_down = _grid_key_down_cb
+ .key_down = _key_down_cb
};
static bool _draw_livetv_area(struct _priv *priv)
static int _get_favorite_grid_height(int cnt)
{
- int height;
- int col;
+ int height, col;
if (cnt % SIZE_FAVORITE_COL_MAX == 0)
col = cnt / SIZE_FAVORITE_COL_MAX;
{
int cnt;
- priv->fav_list = get_app_favorite_list();
if (!priv->fav_list) {
elm_object_signal_emit(priv->menu_area,
SIG_NO_CONTENT, SRC_FAVORITE_AREA);
return grid;
}
+static void _hide_done_cb(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;
goto end;
}
+ elm_object_signal_callback_add(base, SIG_HIDE_DONE, SIG_SOURCE_EDC,
+ _hide_done_cb, NULL);
+
return base;
end:
_draw_action_menu(priv);
+ elm_object_signal_emit(priv->base, SIG_SHOW, SIG_SOURCE_EDC);
elm_object_focus_set(priv->live_btn, EINA_TRUE);
}
return;
priv->adata = data;
+ } else if (update_type == UPDATE_FAVORITE) {
+ priv->fav_list = data;
}
}
if (priv->base)
evas_object_del(priv->base);
+ if (priv->fav_list)
+ free_app_list(priv->fav_list);
+
free(priv);
}