elementary/naviframe : Naviframe is now supporting focus_direction.

This commit is contained in:
WooHyun Jung 2013-03-11 17:03:21 +09:00
parent cfe2ab206e
commit 2cb1f66c54
3 changed files with 41 additions and 0 deletions

View File

@ -1140,3 +1140,4 @@
2013-03-11 WooHyun Jung
* Fixed a bug that naviframe's focus_next didn't work after changing evenry item to elm_layout.
* Naviframe is now supproting .

View File

@ -83,6 +83,7 @@ Improvements:
* Improve support on 64bits system.
* Improve gengrid item append performance.
* Naviframe works for H/W Back key event.
* Naviframe is now supproting focus_direction.
Fixes:

View File

@ -1230,6 +1230,42 @@ _elm_naviframe_smart_focus_next(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
eina_list_free(l);
}
static void
_elm_naviframe_smart_focus_direction_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
{
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
*ret = EINA_TRUE;
}
static void
_elm_naviframe_smart_focus_direction(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
{
Evas_Object *base = va_arg(*list, Evas_Object *);
double degree = va_arg(*list, double);
Evas_Object **direction = va_arg(*list, Evas_Object **);
double *weight = va_arg(*list, double *);
Eina_Bool *ret = va_arg(*list, Eina_Bool *);
if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret;
Eina_List *l = NULL;
Elm_Naviframe_Item *top_it;
void *(*list_data_get)(const Eina_List *list);
top_it = (Elm_Naviframe_Item *)elm_naviframe_top_item_get(obj);
if (!top_it) return;
list_data_get = eina_list_data_get;
l = eina_list_append(l, VIEW(top_it));
int_ret = elm_widget_focus_list_direction_get
(obj, base, l, list_data_get, degree, direction, weight);
if (ret) *ret = int_ret;
eina_list_free(l);
}
static void
_elm_naviframe_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
{
@ -1996,6 +2032,9 @@ _class_constructor(Eo_Class *klass)
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), _elm_naviframe_smart_focus_next_manager_is),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT), _elm_naviframe_smart_focus_next),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), _elm_naviframe_smart_focus_direction_manager_is),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION), _elm_naviframe_smart_focus_direction),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_THEME), _elm_naviframe_smart_theme),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_ACCESS), _elm_naviframe_smart_access),
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_EVENT), _elm_naviframe_smart_event),