#ifndef __AIR_SETTINGS_FAVORITEMGR_H__
#define __AIR_SETTINGS_FAVORITEMGR_H__
-void _set_favorite(Evas_Object *obj, Eina_Bool status);
+void set_favorite(Evas_Object *obj, Eina_Bool status);
#endif /* __AIR_SETTINGS_FAVORITEMGR_H__ */
UPDATE_ENABLE,
UPDATE_DISABLE,
UPDATE_REORDER_MODE_ON,
+ UPDATE_ADDED_TO_FAV,
+ UPDATE_REMOVED_FROM_FAV,
UPDATE_TOAST
};
#ifndef VIEW_ACTION_MENU_H_
#define VIEW_ACTION_MENU_H_
-#include "common/viewmgr.h"
+typedef struct {
+
+ const char *layout_id;
+ const char *layout_subitem_id;
+ int layout_subitem_menu_id;
+}action_menu_parameter;
enum {
ACT_MENU_SRC_VIEW_UPDATE
#include "common/favoritemgr.h"
#include "define.h"
-void _set_favorite(Evas_Object *obj, Eina_Bool status)
+void set_favorite(Evas_Object *obj, Eina_Bool status)
{
SETTING_TRACE_BEGIN;
if(EINA_TRUE == status) {
}
if (m->info[i])
- _set_favorite(m->btn[i], m->info[i]->favorite);
+ set_favorite(m->btn[i], m->info[i]->favorite);
if (m->info[i]->progress_evas) {
elm_progressbar_value_set(m->info[i]->progress_evas, m->info[i]->progress_value());
elm_object_disabled_set(btn, info[i].disabled);
evas_object_size_hint_align_set(btn, 0, 0);
- if (info[i].favorite) {
- _set_favorite(btn, info[i].favorite);
- }
+ if (info[i].favorite)
+ set_favorite(btn, info[i].favorite);
if (info[i].progress_value) {
info[i].progress_evas = utils_add_progressbar(btn, PART_MENU_PROGRESS, NULL);
#include <tv_service_proxy.h>
#include "app_debug.h"
+#include "common/favoritemgr.h"
#include "common/inputmgr.h"
#include "common/layoutmgr.h"
#include "common/utils.h"
case UPDATE_ENABLE:
elm_object_disabled_set(priv->ly, EINA_FALSE);
break;
+ case UPDATE_ADDED_TO_FAV:
+ set_favorite(priv->ly, EINA_TRUE);
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ set_favorite(priv->ly, EINA_FALSE);
+ break;
default:
break;
}
#include "app_debug.h"
#include "common/datamgr.h"
+#include "common/favoritemgr.h"
#include "common/inputmgr.h"
#include "common/layoutmgr.h"
#include "common/listmgr.h"
case UPDATE_ENABLE:
elm_object_disabled_set(priv->ly, EINA_FALSE);
break;
+ case UPDATE_ADDED_TO_FAV:
+ set_favorite(priv->ly, EINA_TRUE);
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ set_favorite(priv->ly, EINA_FALSE);
+ break;
default:
break;
}
static void _selected_menu(void *data, int id)
{
+ action_menu_parameter am_param = {0,};
+ am_param.layout_id = LAYOUT_ID_PICTURE;
+ am_param.layout_subitem_menu_id = id;
+
switch (id)
{
case MENU_PICTURE_MODE:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_MODE);
+ am_param.layout_subitem_id = VIEW_PICTURE_MODE;
break;
case MENU_CONTRAST:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_CONTRAST);
+ am_param.layout_subitem_id = VIEW_PICTURE_CONTRAST;
break;
case MENU_BRIGHTNESS:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_BRIGHTNESS);
+ am_param.layout_subitem_id = VIEW_PICTURE_BRIGHTNESS;
break;
case MENU_SHARPNESS:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_SHARPNESS);
+ am_param.layout_subitem_id = VIEW_PICTURE_SHARPNESS;
break;
case MENU_COLOR:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_COLOR);
+ am_param.layout_subitem_id = VIEW_PICTURE_COLOR;
break;
case MENU_TINT:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_TINT);
+ am_param.layout_subitem_id = VIEW_PICTURE_TINT;
break;
case MENU_SCREEN_ADJ:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_PICTURE_SCREEN_ADJ);
+ am_param.layout_subitem_id = VIEW_PICTURE_SCREEN_ADJ;
break;
default:
return;
}
+ viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, (void *)&am_param);
viewmgr_show_view(VIEW_ACTION_MENU);
}
static void _update(void *layout_data, int update_type, void *data)
{
struct _priv *priv = (struct _priv *)layout_data;
+ int menu_item_id = (int)data;
if (!priv) {
_ERR("Invalid argument.");
case UPDATE_CONTENT:
menumgr_update(priv->menu);
break;
+ case UPDATE_ADDED_TO_FAV:
+ if (menu_item_id >=0 && menu_item_id < ARRAY_SIZE(menu_info)) {
+ menu_info[menu_item_id].favorite = EINA_TRUE;
+ menumgr_update(priv->menu);
+ }
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ if (menu_item_id >=0 && menu_item_id < ARRAY_SIZE(menu_info)) {
+ menu_info[menu_item_id].favorite = EINA_FALSE;
+ menumgr_update(priv->menu);
+ }
+ break;
default:
break;
}
elm_object_part_text_set(priv->ly, PART_SPEAKER_SETTINGS_DESC1, STR_SPEAKER_SETTINGS_DESC1);
elm_object_part_text_set(priv->ly, PART_SPEAKER_SETTINGS_DESC2, STR_SPEAKER_SETTINGS_DESC2);
- //TODO Find how favorite will be saved and get the favorite status and set it
- // when layout is created
- _set_favorite(priv->ly, EINA_TRUE);
-
priv->speakers_count = ARRAY_SIZE(speakers);
priv->list_mgr = listmgr_create(priv->ly);
case UPDATE_ENABLE:
elm_object_disabled_set(priv->ly, EINA_FALSE);
break;
+ case UPDATE_ADDED_TO_FAV:
+ set_favorite(priv->ly, EINA_TRUE);
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ set_favorite(priv->ly, EINA_FALSE);
+ break;
default:
break;
}
#include <system_info.h>
#include "app_debug.h"
+#include "common/favoritemgr.h"
#include "common/inputmgr.h"
#include "common/layoutmgr.h"
#include "common/menumgr.h"
case UPDATE_ENABLE:
elm_object_disabled_set(priv->ly, EINA_FALSE);
break;
+ case UPDATE_ADDED_TO_FAV:
+ set_favorite(priv->ly, EINA_TRUE);
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ set_favorite(priv->ly, EINA_FALSE);
+ break;
default:
break;
}
.title = STR_CLOCK,
.style = STYLE_STATUS_BTN,
.disabled = EINA_FALSE,
- .favorite = EINA_TRUE,
+ .favorite = EINA_FALSE,
.status = _get_clock_mode,
.selected = _selected,
.focused = _focused,
static void _selected_menu(void *data, int id)
{
+ action_menu_parameter am_param = {0,};
+ am_param.layout_id = LAYOUT_ID_SYSTEM;
+ am_param.layout_subitem_menu_id = id;
switch (id)
{
case MENU_CLOCK:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_CLOCK);
+ am_param.layout_subitem_id = VIEW_CLOCK;
break;
case MENU_SLEEP_TIMER:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_SLEEP_TIMER);
+ am_param.layout_subitem_id = VIEW_SLEEP_TIMER;
break;
case MENU_WAKEUP_TIMER:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_WAKEUP_TIMER);
+ am_param.layout_subitem_id = VIEW_WAKEUP_TIMER;
break;
case MENU_CHANGE_PINCODE:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_CHANGE_PINCODE);
+ am_param.layout_subitem_id = VIEW_CHANGE_PINCODE;
break;
case MENU_LANGUAGE:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_LANGUAGE);
+ am_param.layout_subitem_id = VIEW_LANGUAGE;
break;
case MENU_SUBTITLE:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_SUBTITLE);
+ am_param.layout_subitem_id = VIEW_SUBTITLE;
break;
case MENU_RESET:
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, VIEW_RESET);
+ am_param.layout_subitem_id = VIEW_RESET;
break;
default:
return;
}
+ viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, (void *)&am_param);
viewmgr_show_view(VIEW_ACTION_MENU);
}
static void _update(void *layout_data, int update_type, void *data)
{
struct _priv *priv = (struct _priv *)layout_data;
+ int menu_item_id = (int)data;
if (!priv) {
_ERR("Invalid argument.");
case UPDATE_CONTENT:
menumgr_update(priv->menu);
break;
+ case UPDATE_ADDED_TO_FAV:
+ if (menu_item_id >=0 && menu_item_id < ARRAY_SIZE(menu_info)) {
+ menu_info[menu_item_id].favorite = EINA_TRUE;
+ menumgr_update(priv->menu);
+ }
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ if (menu_item_id >=0 && menu_item_id < ARRAY_SIZE(menu_info)) {
+ menu_info[menu_item_id].favorite = EINA_FALSE;
+ menumgr_update(priv->menu);
+ }
+ break;
default:
break;
}
#include <Elementary.h>
#include "app_debug.h"
+#include "common/favoritemgr.h"
#include "common/inputmgr.h"
#include "common/layoutmgr.h"
#include "common/menumgr.h"
case UPDATE_CONTENT:
menumgr_update(priv->menu);
break;
+ case UPDATE_ADDED_TO_FAV:
+ set_favorite(priv->ly, EINA_TRUE);
+ break;
+ case UPDATE_REMOVED_FROM_FAV:
+ set_favorite(priv->ly, EINA_FALSE);
+ break;
default:
break;
}
return false;
}
- if (!viewmgr_add_view(view_action_menu_get_vclass(), NULL)) {
- _ERR("Add action menu view failed.");
- evas_object_del(win);
- return false;
- }
-
if (!_create_picture_ui()) {
evas_object_del(win);
return false;
_destroy_picture_ui();
_destroy_system_ui();
- if (!viewmgr_remove_view(VIEW_ACTION_MENU))
- _ERR("Remove view failed.");
-
if (!viewmgr_destroy())
_ERR("Destroy viewmgr failed.");
* limitations under the License.
*/
-#include "view/view_action_menu.h"
-
-#include "define.h"
-#include "common/utils.h"
#include "app_debug.h"
#include "common/inputmgr.h"
+#include "common/layoutmgr.h"
+#include "common/utils.h"
+#include "common/viewmgr.h"
+#include "define.h"
+#include "view/view_action_menu.h"
enum {
LIVE_TV_BUTTON_ID,
MORE_FAV_BUTTON_ID,
REORDER_BUTTON_ID,
- FAV_BUTTON_ID,
+ ADD_TO_FAV_BUTTON_ID,
+ REM_FROM_FAV_BUTTON_ID,
TUT_BUTTON_ID
};
Evas_Object *reorder_btn;
Evas_Object *fav_btn;
Evas_Object *tut_btn;
-
+ const char *caller_layout_id;
+ const char *caller_layout_subitem_id;
+ int caller_layout_subitem_menu_id;
+ layoutmgr *lmgr;
};
/* Class functions: */
return NULL;
}
+ priv->lmgr = (layoutmgr *)data;
priv->action_menu_layout = utils_add_layout(win, GRP_VIEW_ACTION_MENU, EINA_TRUE);
if (!priv->action_menu_layout) {
inputmgr_add_callback(priv->live_tv_btn, LIVE_TV_BUTTON_ID, &_btn_handler, priv);
inputmgr_add_callback(priv->more_fav_btn, MORE_FAV_BUTTON_ID, &_btn_handler, priv);
inputmgr_add_callback(priv->reorder_btn, REORDER_BUTTON_ID, &_btn_handler, priv);
- inputmgr_add_callback(priv->fav_btn, FAV_BUTTON_ID, &_btn_handler, priv);
+ inputmgr_add_callback(priv->fav_btn, ADD_TO_FAV_BUTTON_ID, &_btn_handler, priv);
inputmgr_add_callback(priv->tut_btn, TUT_BUTTON_ID, &_btn_handler, priv);
if (!viewmgr_set_view_data(VIEW_ACTION_MENU, priv)) {
_ERR("Invalid parameter.");
return;
}
+ priv->caller_layout_id = NULL;
+ priv->caller_layout_subitem_id = NULL;
evas_object_hide(priv->action_menu_layout);
viewmgr_update_view(VIEW_BASE, UPDATE_ENABLE, NULL);
}
_ERR("Invalid parameter.");
return;
}
+
evas_object_del(priv->action_menu_layout);
free(priv);
}
static void _update(void *view_data, int update_type, void *data)
{
- const char *view_id = (const char *)data;
+ action_menu_parameter *amp = NULL;
struct _priv *vd = (struct _priv *)view_data;
- if (!view_id || !vd)
+ if (!data || !vd)
return;
/* Unset them and hide: */
evas_object_hide(vd->fav_btn);
evas_object_hide(vd->tut_btn);
+ amp = (action_menu_parameter *)data;
+
+ vd->caller_layout_id = amp->layout_id;
+ vd->caller_layout_subitem_id = amp->layout_subitem_id;
+ vd->caller_layout_subitem_menu_id = amp->layout_subitem_menu_id;
+
+ /*TODO: call fav app and check if this item is added to fav database, then
+ * (depending on the rsponse) display fav icon button as active or not */
if (ACT_MENU_SRC_VIEW_UPDATE == update_type) {
- if (!strcmp(view_id, VIEW_BASE)) {
- elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN0, vd->reorder_btn);
- }
+ if(!amp->layout_subitem_id) {
- if (!strcmp(view_id, VIEW_PICTURE_MODE) ||
- !strcmp(view_id, VIEW_PICTURE_CONTRAST) ||
- !strcmp(view_id, VIEW_PICTURE_BRIGHTNESS) ||
- !strcmp(view_id, VIEW_PICTURE_SHARPNESS) ||
- !strcmp(view_id, VIEW_PICTURE_COLOR) ||
- !strcmp(view_id, VIEW_PICTURE_TINT) ||
- !strcmp(view_id, VIEW_PICTURE_SCREEN_ADJ) ||
- !strcmp(view_id, VIEW_CLOCK) ||
- !strcmp(view_id, VIEW_SLEEP_TIMER) ||
- !strcmp(view_id, VIEW_WAKEUP_TIMER) ||
- !strcmp(view_id, VIEW_CHANGE_PINCODE) ||
- !strcmp(view_id, VIEW_LANGUAGE) ||
- !strcmp(view_id, VIEW_SUBTITLE) ||
- !strcmp(view_id, VIEW_LOCATION) ||
- !strcmp(view_id, VIEW_RESET) ||
- !strcmp(view_id, VIEW_NEW_NETWORK)
+ if (!strcmp(vd->caller_layout_id, LAYOUT_ID_PICTURE) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_SYSTEM) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_SUPPORT) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_INFO) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_VOICE)
+ ) {
+ elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN0, vd->reorder_btn);
+ elm_object_focus_next_object_set(vd->live_tv_btn, vd->reorder_btn, ELM_FOCUS_DOWN);
+ elm_object_focus_next_object_set(vd->more_fav_btn, vd->reorder_btn, ELM_FOCUS_UP);
+ }
+
+ if (!strcmp(vd->caller_layout_id, LAYOUT_ID_SOUND) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_CHANNEL) ||
+ !strcmp(vd->caller_layout_id, LAYOUT_ID_NETWORK)
) {
elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN0, vd->fav_btn);
- elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN1, vd->tut_btn);
+ elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN1, vd->reorder_btn);
+ elm_object_focus_next_object_set(vd->live_tv_btn, vd->fav_btn, ELM_FOCUS_DOWN);
+ elm_object_focus_next_object_set(vd->more_fav_btn, vd->fav_btn, ELM_FOCUS_UP);
+ }
+ } else {
+ if (!strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_MODE) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_CONTRAST) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_BRIGHTNESS) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_SHARPNESS) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_COLOR) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_TINT) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_PICTURE_SCREEN_ADJ) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_CLOCK) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_SLEEP_TIMER) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_WAKEUP_TIMER) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_CHANGE_PINCODE) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_LANGUAGE) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_SUBTITLE) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_LOCATION) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_RESET) ||
+ !strcmp(vd->caller_layout_subitem_id, VIEW_NEW_NETWORK)
+ ) {
+ elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN0, vd->fav_btn);
+ elm_layout_content_set(vd->action_menu_layout, PART_ACT_MENU_ICO_BTN1, vd->tut_btn);
+ elm_object_focus_next_object_set(vd->live_tv_btn, vd->fav_btn, ELM_FOCUS_DOWN);
+ elm_object_focus_next_object_set(vd->more_fav_btn, vd->fav_btn, ELM_FOCUS_UP);
+ }
}
}
-
}
static void _mouse_cb(int id, void *data, Evas_Object *obj)
case REORDER_BUTTON_ID:
viewmgr_update_view(VIEW_BASE, UPDATE_REORDER_MODE_ON, NULL);
break;
- case FAV_BUTTON_ID:
- /* TODO: contact base view and from there fav app maybe ? */
+ case ADD_TO_FAV_BUTTON_ID:
+ /* TODO: contact fav app maybe and tell to set this as a fav ? */
+ layoutmgr_update_layout(priv->lmgr, priv->caller_layout_id,
+ UPDATE_ADDED_TO_FAV, (void *)priv->caller_layout_subitem_menu_id);
+ break;
+ case REM_FROM_FAV_BUTTON_ID:
+ /* TODO: contact fav app maybe and tell to remove this from fav DB ? */
+ layoutmgr_update_layout(priv->lmgr, priv->caller_layout_id,
+ UPDATE_REMOVED_FROM_FAV, (void *)priv->caller_layout_subitem_menu_id);
break;
case TUT_BUTTON_ID:
/* TODO: popup */
{
struct _priv *priv = (struct _priv *)data;
+ action_menu_parameter am_param = {0,};
+
if (!obj || !ev || !priv) {
_ERR("Invalid argument.");
return;
ui_app_exit();
if (!strcmp(ev->keyname, KEY_MENU) || !strcmp(ev->keyname, KEY_MENU_EMULATOR)) {
- viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE, (void *)view_base_get_vclass()->view_id);
- viewmgr_show_view(VIEW_ACTION_MENU);
- if (id >= 0 && id < LAYOUT_MAX)
+ if (id >= 0 && id < LAYOUT_MAX) {
+ am_param.layout_id = _mdata_p[id]->get_lclass()->layout_id;
+ viewmgr_update_view(VIEW_ACTION_MENU, ACT_MENU_SRC_VIEW_UPDATE,
+ (void *)&am_param);
+ viewmgr_show_view(VIEW_ACTION_MENU);
elm_layout_signal_emit(priv->menu[id], SIG_SELECTED, "");
+ }
}
}
return NULL;
}
+ /* action menu: */
+ if (!viewmgr_add_view(view_action_menu_get_vclass(), priv->lmgr)) {
+ evas_object_del(priv->base);
+ free(priv);
+ }
+
return priv->base;
}
}
priv = data;
+ viewmgr_remove_view(VIEW_ACTION_MENU);
+
for (i = 0; i < LAYOUT_MAX; i++)
layoutmgr_remove_layout(priv->lmgr, _mdata_p[i]->layout_id);