focus: Added internal widget APIs of focus highlight object of elm window.
authorAmitesh Singh <amitesh.sh@samsung.com>
Mon, 21 Jul 2014 10:04:27 +0000 (19:04 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 21 Jul 2014 10:04:27 +0000 (19:04 +0900)
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

src/lib/elm_widget.c
src/lib/elm_widget.h
src/lib/elm_win.c

index 1c5b71e..d6af6ff 100644 (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)
 {
index 1fe5ab4..3f6db35 100644 (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);
index 59dfc0e..6964127 100644 (file)
@@ -4832,6 +4832,33 @@ _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool 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)
 {
    ELM_WIN_DATA_GET(obj, sd);