* @param[in] reverse_dir Reverse direction
*/
void listmgr_set_list_next_focus(struct listmgr *listmgr, const char *list_id,
- Evas_Object *obj_to_focus, Elm_Focus_Direction dir);
+ Evas_Object *obj_to_focus, Elm_Focus_Direction dir,
+ Eina_Bool add_reverse_link, Elm_Focus_Direction reverse_dir);
bool listmgr_update_grid(struct listmgr *listmgr, const char *list_id);
}
void listmgr_set_list_next_focus(struct listmgr *listmgr, const char *list_id,
- Evas_Object *obj_to_focus, Elm_Focus_Direction dir)
+ Evas_Object *obj_to_focus, Elm_Focus_Direction dir,
+ Eina_Bool add_reverse_link, Elm_Focus_Direction reverse_dir)
{
struct list_info *linfo = NULL;
obj_to_focus = linfo->grid;
elm_object_focus_next_object_set(linfo->grid, obj_to_focus, dir);
+
+ if (add_reverse_link) {
+ elm_object_focus_next_object_set(obj_to_focus, linfo->grid, reverse_dir);
+ }
}
bool listmgr_hide_grid(struct listmgr *listmgr, const char *list_id,
_ERR("Fill location list failed.");
}
listmgr_set_list_next_focus(list_mgr, LOCATION_LIST_ID,
- NULL, ELM_FOCUS_UP);
+ NULL, ELM_FOCUS_UP,
+ EINA_FALSE, ELM_FOCUS_UP);
}
inputmgr_add_callback(priv->btn, 0, &_input_handler, priv);
layoutmgr_set_layout_data(lmgr, LAYOUT_ID_CHANNEL, priv);
+ elm_object_focus_next_object_set(priv->btn, (Evas_Object*)data, ELM_FOCUS_UP);
+
return true;
}
listmgr_add_inner_grid_cb(priv->listmgr, LIST_WIRELESS,
&_grid_input_handler, NULL);
+ if(data) {
+ listmgr_set_list_next_focus(priv->listmgr, LIST_WIRELESS,
+ (Evas_Object *)data, ELM_FOCUS_UP, EINA_FALSE, ELM_FOCUS_DOWN);
+
+ elm_object_focus_next_object_set((Evas_Object *)data, priv->network_type_btn, ELM_FOCUS_DOWN);
+ }
+
+
return true;
err:
if(data) {
listmgr_set_list_next_focus(priv->list_mgr, LIST_SOUND_MODES_ID,
- (Evas_Object *)data, ELM_FOCUS_UP);
+ (Evas_Object *)data, ELM_FOCUS_UP, EINA_TRUE, ELM_FOCUS_DOWN);
listmgr_set_list_next_focus(priv->list_mgr, LIST_SPEAKERS_ID,
- (Evas_Object *)data, ELM_FOCUS_UP);
+ (Evas_Object *)data, ELM_FOCUS_UP, EINA_FALSE, ELM_FOCUS_UP);
}
if (!_fill_lists(priv)) {