raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=3f98d71830163a154762f2d16301d720c781b7c5

commit 3f98d71830163a154762f2d16301d720c781b7c5
Author: Amitesh Singh <[email protected]>
Date:   Mon Jul 21 19:04:27 2014 +0900

    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
---
 src/lib/elm_widget.c | 31 +++++++++++++++++++++++++++++++
 src/lib/elm_widget.h |  7 +++++++
 src/lib/elm_win.c    | 27 +++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)

diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index 1c5b71e..d6af6ff 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -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)
 {
diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h
index 1fe5ab4..3f6db35 100644
--- a/src/lib/elm_widget.h
+++ b/src/lib/elm_widget.h
@@ -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);
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 59dfc0e..6964127 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -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);

-- 


Reply via email to