From: hermet Date: Wed, 14 Mar 2012 13:03:38 +0000 (+0000) Subject: elementary/ctxpopup - support more common apis X-Git-Tag: REL_F_I9500_20120323_1~17^2~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1a1aece607b19961478d54c6adf29202915b2f9a;p=framework%2Fuifw%2Felementary.git elementary/ctxpopup - support more common apis elm_object_signal_emit elm_object_signal_callback_add elm_object_signal_callback_del git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@69336 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index 425081b..6a6fb74 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -140,6 +140,10 @@ static void _content_del(void *data, static void _list_del(Widget_Data *wd); static void _list_new(Evas_Object *obj); static void _remove_items(Widget_Data * wd); +static void _disable_hook(Evas_Object *obj); +static void _signal_emit_hook(Evas_Object *obj, const char *emission, const char *source); +static void _signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data); +static void _signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data); static const char SIG_DISMISSED[] = "dismissed"; @@ -1295,6 +1299,43 @@ _item_del_pre_hook(Elm_Object_Item *it) return EINA_TRUE; } +static void +_disable_hook(Evas_Object *obj) +{ + Eina_List *l; + Elm_Object_Item *it; + + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + + EINA_LIST_FOREACH(wd->items, l, it) + elm_object_item_disabled_set(it, elm_widget_disabled_get(obj)); +} + +static void +_signal_emit_hook(Evas_Object *obj, const char *emission, const char *source) +{ + Widget_Data *wd = elm_widget_data_get(obj); + if (!wd) return; + edje_object_signal_emit(wd->base, 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(wd->base, 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(wd->base, emission, source, func_cb, data); +} + EAPI Evas_Object * elm_ctxpopup_add(Evas_Object *parent) { @@ -1316,6 +1357,10 @@ elm_ctxpopup_add(Evas_Object *parent) elm_widget_content_set_hook_set(obj, _content_set_hook); elm_widget_content_unset_hook_set(obj, _content_unset_hook); elm_widget_content_get_hook_set(obj, _content_get_hook); + elm_widget_disable_hook_set(obj, _disable_hook); + elm_widget_signal_emit_hook_set(obj, _signal_emit_hook); + elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook); + elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook); //Background wd->bg = edje_object_add(e); diff --git a/src/lib/elc_ctxpopup.h b/src/lib/elc_ctxpopup.h index 8695bda..bb5934a 100644 --- a/src/lib/elc_ctxpopup.h +++ b/src/lib/elc_ctxpopup.h @@ -29,9 +29,14 @@ * @li "default" - Title label in the title area * * Supported elm_object common APIs. + * @li elm_object_disabled_set + * @li elm_object_disabled_get * @li elm_object_part_content_set * @li elm_object_part_content_get * @li elm_object_part_content_unset + * @li elm_object_signal_emit + * @li elm_object_signal_callback_add + * @li elm_object_signal_callback_del * * Supported elm_object_item common APIs. * @li elm_object_item_disabled_set