focus: Added internal widget APIs of focus highlight object of elm window.

Summary: This is required to support the animation of focus highlight object in case of item looping (genlist/gengrid/list).

Reviewers: seoz, woohyun, raster

Reviewed By: raster

Subscribers: anand.km, seoz

Differential Revision: https://phab.enlightenment.org/D1136
This commit is contained in:
Amitesh Singh 2014-07-21 19:04:27 +09:00 committed by Carsten Haitzler (Rasterman)
parent 76e3372531
commit d6f308d1d6
3 changed files with 65 additions and 0 deletions

View File

@ -161,6 +161,37 @@ _elm_widget_focus_highlight_start(const Evas_Object *obj)
_elm_win_focus_highlight_start(top);
}
void
_elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source)
{
Evas_Object *top = elm_widget_top_get(obj);
if (top && eo_isa(top, ELM_WIN_CLASS))
_elm_win_focus_highlight_signal_emit(top, emission, source);
}
void
_elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission,
const char *source, Edje_Signal_Cb _focus_highlight_signal_cb,
void *data)
{
Evas_Object *top = elm_widget_top_get(obj);
if (top && eo_isa(top, ELM_WIN_CLASS))
_elm_win_focus_highlight_signal_callback_add(top, emission, source, _focus_highlight_signal_cb, data);
}
void
_elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission,
const char *source,
Edje_Signal_Cb _focus_highlight_signal_cb)
{
Evas_Object *top = elm_widget_top_get(obj);
if (top && eo_isa(top, ELM_WIN_CLASS))
_elm_win_focus_highlight_signal_callback_del(obj, emission, source, _focus_highlight_signal_cb);
}
EAPI Eina_Bool
elm_widget_focus_highlight_enabled_get(const Evas_Object *obj)
{

View File

@ -524,6 +524,13 @@ void _elm_widget_focus_highlight_start(const Evas_Object *obj);
void _elm_widget_highlight_in_theme_update(Eo *obj);
void _elm_win_focus_highlight_start(Evas_Object *obj);
void _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme);
void _elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source);
void _elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source);
void _elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data);
void _elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data);
void _elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb);
void _elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb);
void _elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb);
EAPI void _elm_access_clear(Elm_Access_Info *ac);
EAPI void _elm_access_text_set(Elm_Access_Info *ac, int type, const char *text);

View File

@ -4831,6 +4831,33 @@ _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme)
sd->focus_highlight.cur.in_theme = !!in_theme;
}
void
_elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source)
{
ELM_WIN_DATA_GET(obj, sd);
if (sd->focus_highlight.enabled)
edje_object_signal_emit(sd->focus_highlight.fobj, emission, source);
}
void
_elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission,
const char *source, Edje_Signal_Cb _focus_highlight_signal_cb,
void *data)
{
ELM_WIN_DATA_GET(obj, sd);
if (sd->focus_highlight.enabled && sd->focus_highlight.fobj)
edje_object_signal_callback_add(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb, data);
}
void
_elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission,
const char *source, Edje_Signal_Cb _focus_highlight_signal_cb)
{
ELM_WIN_DATA_GET(obj, sd);
if (sd->focus_highlight.enabled && sd->focus_highlight.fobj)
edje_object_signal_callback_del(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb);
}
void
_elm_win_focus_highlight_start(Evas_Object *obj)
{