From 4206dddfff41eae88563f1c740e93e5e6c44e2e9 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Tue, 4 Oct 2011 01:24:08 +0000 Subject: [PATCH] elm gengrid: Propagate Gengrid signals to the internal edje view. Patch by Benjamin Drucker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On Tue, Oct 4, 2011 at 7:54 AM, Benjamin Drucker wrote: > Right now, signals coming from the gengrid's internal edje object are > propagated up to the gengrid object. > This patch enables the other direction as well: you can use the functions > >  elm_object_signal_callback_add(grid, ...) >  elm_object_signal_callback_del(grid, ...) > > to signal the gengrid's internal edje object. > > Please review, thanks. > -Ben SVN revision: 63784 --- legacy/elementary/src/lib/elm_gengrid.c | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index 0f9704ddbf..d2f20850bd 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -640,6 +640,32 @@ _signal_emit_hook(Evas_Object *obj, emission, source); } +static void +_signal_callback_add_hook(Evas_Object *obj, + const char *emission, + const char *source, + Edje_Signal_Cb func_cb, + void *data) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + edje_object_signal_callback_add(elm_smart_scroller_edje_object_get(wd->scr), + emission, source, func_cb, data); +} + +static void +_signal_callback_del_hook(Evas_Object *obj, + const char *emission, + const char *source, + Edje_Signal_Cb func_cb, + void *data) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + edje_object_signal_callback_del_full(elm_smart_scroller_edje_object_get(wd->scr), + emission, source, func_cb, data); +} + static void _mouse_move(void *data, Evas *evas __UNUSED__, @@ -1952,6 +1978,8 @@ elm_gengrid_add(Evas_Object *parent) elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_signal_emit_hook_set(obj, _signal_emit_hook); elm_widget_can_focus_set(obj, EINA_TRUE); + elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); + elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); elm_widget_event_hook_set(obj, _event_hook); wd->scr = elm_smart_scroller_add(e);