elm_object_focus_set(obj, EINA_TRUE);
}
-static void _livetv_selected(void *data, Evas_Object *obj)
+static void _livetv_selected(void)
{
- /* It will be implemented later */
-}
-
-static void _favorite_selected(void *data, Evas_Object *obj)
-{
- struct _priv *priv;
- struct grid_data *gdata;
-
- if (!data) {
- _ERR("Invalid argument.");
+ if (!utils_launch_app(STR_LIVETV_APP_ID, NULL, NULL)) {
+ _ERR("Launch live tv failed.");
return;
}
- priv = data;
-
- if (!priv->gdata)
- return;
- gdata = priv->gdata;
+ viewmgr_hide_view(VIEW_ID_ACTION_MENU);
+}
+static void _favorite_selected(struct grid_data *gdata)
+{
if (!gdata->item_action(gdata->focused_item, ACTION_UPDATE_FAVORITE)) {
_ERR("Unfavorite failed.");
return;
}
- /* FIXME: The base view will be reloaded later */
-
+ viewmgr_update_view(VIEW_ID_BASE, UPDATE_GRID, gdata);
viewmgr_hide_view(VIEW_ID_ACTION_MENU);
}
static void _clicked_cb(int id, void *data, Evas_Object *obj)
{
+ struct _priv *priv;
+
+ if (!data)
+ return;
+ priv = data;
+
+ if (!priv->gdata)
+ return;
+
switch (id) {
case BTN_LIVETV:
- _livetv_selected(data, obj);
+ _livetv_selected();
break;
case BTN_FAVORITE:
- _favorite_selected(data, obj);
+ _favorite_selected(priv->gdata);
break;
case BTN_LOCK:
evas_object_hide(priv->base);
}
+static void _update(void *view_data, int update_type, void *data)
+{
+ struct _priv *priv;
+ struct grid_data *gdata;
+
+ if (!view_data || !data) {
+ _ERR("Get data failed.");
+ return;
+ }
+ priv = view_data;
+ gdata = data;
+
+ if (update_type == UPDATE_GRID) {
+ if (!priv || !priv->gmgr || !priv->base)
+ return;
+
+ gdata->list = gdata->create_item_list();
+ if (!gdata->list)
+ elm_object_part_text_set(priv->base, PART_NO_CONTENTS,
+ STR_NO_CONTENTS);
+ else
+ gridmgr_append_list(priv->gmgr, gdata->id, gdata->list);
+
+ _draw_content_count(priv->base, eina_list_count(gdata->list),
+ priv->cur_menu_id);
+ }
+}
+
static void _destroy(void *data)
{
struct _priv *priv;
.create = _create,
.show = _show,
.hide = _hide,
+ .update = _update,
.destroy = _destroy,
};