Hooking elm_hover into signal_{emit,callback_add,callback_del}().

SVN revision: 53643
This commit is contained in:
Gustavo Lima Chaves 2010-10-19 20:21:03 +00:00
parent 770b0df365
commit c530774aaf
1 changed files with 39 additions and 0 deletions

View File

@ -140,6 +140,42 @@ _theme_hook(Evas_Object *obj)
if (evas_object_visible_get(wd->cov)) _hov_show_do(obj);
}
static void
_signal_emit_hook(Evas_Object *obj, const char *emission, const char *source)
{
Widget_Data *wd;
wd = elm_widget_data_get(obj);
if (!wd)
return;
edje_object_signal_emit(wd->cov, emission, source);
}
static void
_signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *source, void (*func_cb) (void *data, Evas_Object *o, const char *emission, const char *source), void *data)
{
Widget_Data *wd;
wd = elm_widget_data_get(obj);
if (!wd)
return;
edje_object_signal_callback_add(wd->hov, emission, source, func_cb, data);
}
static void *
_signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *source, void (*func_cb) (void *data, Evas_Object *o, const char *emission, const char *source))
{
Widget_Data *wd;
wd = elm_widget_data_get(obj);
if (!wd)
return NULL;
return edje_object_signal_callback_del(wd->hov, emission, source, func_cb);
}
static void
_elm_hover_left_space_calc(Widget_Data *wd, Evas_Coord *spc_l, Evas_Coord *spc_t, Evas_Coord *spc_r, Evas_Coord *spc_b)
{
@ -445,6 +481,9 @@ elm_hover_add(Evas_Object *parent)
elm_widget_theme_hook_set(obj, _theme_hook);
elm_widget_del_hook_set(obj, _del_hook);
elm_widget_can_focus_set(obj, EINA_TRUE);
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);
wd->hov = evas_object_rectangle_add(e);
evas_object_pass_events_set(wd->hov, EINA_TRUE);