From: Gustavo Sverzut Barbieri Date: Fri, 26 Mar 2010 10:59:56 +0000 (+0000) Subject: Describe more widgets callbacks. X-Git-Tag: v1.0.0~4695 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=932a4d869853ff635aa73efe1269113365ceb792;p=platform%2Fupstream%2Felementary.git Describe more widgets callbacks. These are all that Editje support now :-) Add others later as required, but patches are welcome! SVN revision: 47488 --- diff --git a/src/lib/elc_scrolled_entry.c b/src/lib/elc_scrolled_entry.c index 5175d44..6627557 100644 --- a/src/lib/elc_scrolled_entry.c +++ b/src/lib/elc_scrolled_entry.c @@ -12,6 +12,37 @@ struct _Widget_Data }; static const char *widtype = NULL; + +static const char SIG_CHANGED[] = "changed"; +static const char SIG_ACTIVATED[] = "activated"; +static const char SIG_PRESS[] = "press"; +static const char SIG_LONGPRESSED[] = "longpressed"; +static const char SIG_CLICKED[] = "clicked"; +static const char SIG_CLICKED_DOUBLE[] = "clicked,double"; +static const char SIG_SELECTION_PASTE[] = "selection,paste"; +static const char SIG_SELECTION_COPY[] = "selection,copy"; +static const char SIG_SELECTION_CUT[] = "selection,cut"; +static const char SIG_SELECTION_START[] = "selection,start"; +static const char SIG_SELECTION_CHANGED[] = "selection,changed"; +static const char SIG_SELECTION_CLEARED[] = "selection,cleared"; +static const char SIG_CURSOR_CHANGED[] = "cursor,changed"; +static const char SIG_ANCHOR_CLICKED[] = "anchor,clicked"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {SIG_ACTIVATED, ""}, + {SIG_PRESS, ""}, + {SIG_LONGPRESSED, ""}, + {SIG_SELECTION_PASTE, ""}, + {SIG_SELECTION_COPY, ""}, + {SIG_SELECTION_CUT, ""}, + {SIG_SELECTION_START, ""}, + {SIG_SELECTION_CHANGED, ""}, + {SIG_SELECTION_CLEARED, ""}, + {SIG_CURSOR_CHANGED, ""}, + {SIG_ANCHOR_CLICKED, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -64,85 +95,85 @@ static void _entry_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { _sizing_eval(data); - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } static void _entry_activated(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "activated", NULL); + evas_object_smart_callback_call(data, SIG_ACTIVATED, NULL); } static void _entry_press(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "press", NULL); + evas_object_smart_callback_call(data, SIG_PRESS, NULL); } static void _entry_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "clicked", NULL); + evas_object_smart_callback_call(data, SIG_CLICKED, NULL); } static void _entry_clicked_double(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "clicked,double", NULL); + evas_object_smart_callback_call(data, SIG_CLICKED_DOUBLE, NULL); } static void _entry_cursor_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "cursor,changed", NULL); + evas_object_smart_callback_call(data, SIG_CURSOR_CHANGED, NULL); } static void _entry_anchor_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "anchor,clicked", NULL); + evas_object_smart_callback_call(data, SIG_ANCHOR_CLICKED, NULL); } static void _entry_selection_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,start", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_START, NULL); } static void _entry_selection_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,changed", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, NULL); } static void _entry_selection_cleared(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,cleared", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CLEARED, NULL); } static void _entry_selection_paste(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,paste", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL); } static void _entry_selection_copy(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,copy", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_COPY, NULL); } static void _entry_selection_cut(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "selection,cut", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CUT, NULL); } static void _entry_longpressed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "longpressed", NULL); + evas_object_smart_callback_call(data, SIG_LONGPRESSED, NULL); } static void @@ -206,6 +237,9 @@ elm_scrolled_entry_add(Evas_Object *parent) _sizing_eval(obj); + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_check.c b/src/lib/elm_check.c index 2379240..2a5f9cc 100644 --- a/src/lib/elm_check.c +++ b/src/lib/elm_check.c @@ -40,6 +40,12 @@ static void _signal_check_off(void *data, Evas_Object *obj, const char *emission static void _signal_check_on(void *data, Evas_Object *obj, const char *emission, const char *source); static void _signal_check_toggle(void *data, Evas_Object *obj, const char *emission, const char *source); +static const char SIG_CHANGED[] = "changed"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -132,7 +138,7 @@ _signal_check_off(void *data, Evas_Object *obj __UNUSED__, const char *emission wd->state = EINA_FALSE; if (wd->statep) *wd->statep = wd->state; edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm"); - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } static void @@ -143,7 +149,7 @@ _signal_check_on(void *data, Evas_Object *obj __UNUSED__, const char *emission _ wd->state = EINA_TRUE; if (wd->statep) *wd->statep = wd->state; edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm"); - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } static void @@ -157,7 +163,7 @@ _signal_check_toggle(void *data, Evas_Object *obj __UNUSED__, const char *emissi edje_object_signal_emit(wd->chk, "elm,state,check,on", "elm"); else edje_object_signal_emit(wd->chk, "elm,state,check,off", "elm"); - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } /** @@ -199,6 +205,10 @@ elm_check_add(Evas_Object *parent) evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj); _sizing_eval(obj); + + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 6a1a394..4f064ae 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -63,6 +63,36 @@ static void _signal_entry_copy_notify(void *data, Evas_Object *obj, const char * static void _signal_entry_cut_notify(void *data, Evas_Object *obj, const char *emission, const char *source); static void _signal_cursor_changed(void *data, Evas_Object *obj, const char *emission, const char *source); +static const char SIG_CHANGED[] = "changed"; +static const char SIG_ACTIVATED[] = "activated"; +static const char SIG_PRESS[] = "press"; +static const char SIG_LONGPRESSED[] = "longpressed"; +static const char SIG_CLICKED[] = "clicked"; +static const char SIG_CLICKED_DOUBLE[] = "clicked,double"; +static const char SIG_SELECTION_PASTE[] = "selection,paste"; +static const char SIG_SELECTION_COPY[] = "selection,copy"; +static const char SIG_SELECTION_CUT[] = "selection,cut"; +static const char SIG_SELECTION_START[] = "selection,start"; +static const char SIG_SELECTION_CHANGED[] = "selection,changed"; +static const char SIG_SELECTION_CLEARED[] = "selection,cleared"; +static const char SIG_CURSOR_CHANGED[] = "cursor,changed"; +static const char SIG_ANCHOR_CLICKED[] = "anchor,clicked"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {SIG_ACTIVATED, ""}, + {SIG_PRESS, ""}, + {SIG_LONGPRESSED, ""}, + {SIG_SELECTION_PASTE, ""}, + {SIG_SELECTION_COPY, ""}, + {SIG_SELECTION_CUT, ""}, + {SIG_SELECTION_START, ""}, + {SIG_SELECTION_CHANGED, ""}, + {SIG_SELECTION_CLEARED, ""}, + {SIG_CURSOR_CHANGED, ""}, + {SIG_ANCHOR_CLICKED, ""}, + {NULL, NULL} +}; + static Eina_List *entries = NULL; struct _Mod_Api @@ -300,7 +330,7 @@ _paste(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "selection,paste", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL); if (wd->sel_notify_handler) { #ifdef HAVE_ELEMENTARY_X @@ -447,7 +477,7 @@ _long_press(void *data) edje_object_part_text_select_abort(wd->ent, "elm.text"); } wd->longpress_timer = NULL; - evas_object_smart_callback_call(data, "longpressed", NULL); + evas_object_smart_callback_call(data, SIG_LONGPRESSED, NULL); return 0; } @@ -757,7 +787,7 @@ _signal_entry_changed(void *data, Evas_Object *obj __UNUSED__, const char *emiss _sizing_eval(data); if (wd->text) eina_stringshare_del(wd->text); wd->text = NULL; - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } static void @@ -772,7 +802,7 @@ _signal_selection_start(void *data, Evas_Object *obj __UNUSED__, const char *emi if (entry != data) elm_entry_select_none(entry); } wd->have_selection = EINA_TRUE; - evas_object_smart_callback_call(data, "selection,start", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_START, NULL); if (wd->sel_notify_handler) { char *txt = _mkup_to_text(elm_entry_selection_get(data)); @@ -798,7 +828,7 @@ _signal_selection_changed(void *data, Evas_Object *obj __UNUSED__, const char *e Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; wd->have_selection = EINA_TRUE; - evas_object_smart_callback_call(data, "selection,changed", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, NULL); if (wd->sel_notify_handler) { char *txt = _mkup_to_text(elm_entry_selection_get(data)); @@ -825,7 +855,7 @@ _signal_selection_cleared(void *data, Evas_Object *obj __UNUSED__, const char *e if (!wd) return; if (!wd->have_selection) return; wd->have_selection = EINA_FALSE; - evas_object_smart_callback_call(data, "selection,cleared", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CLEARED, NULL); if (wd->sel_notify_handler) { if (wd->cut_sel) @@ -868,7 +898,7 @@ _signal_entry_paste_request(void *data, Evas_Object *obj __UNUSED__, const char { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "selection,paste", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, NULL); if (wd->sel_notify_handler) { #ifdef HAVE_ELEMENTARY_X @@ -890,7 +920,7 @@ _signal_entry_copy_notify(void *data, Evas_Object *obj __UNUSED__, const char *e { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "selection,copy", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_COPY, NULL); } static void @@ -899,7 +929,7 @@ _signal_entry_cut_notify(void *data, Evas_Object *obj __UNUSED__, const char *em Widget_Data *wd = elm_widget_data_get(data); char *txt; if (!wd) return; - evas_object_smart_callback_call(data, "selection,cut", NULL); + evas_object_smart_callback_call(data, SIG_SELECTION_CUT, NULL); txt = _mkup_to_text(elm_entry_selection_get(data)); eina_stringshare_replace(&wd->cut_sel, txt); if (txt) free(txt); @@ -914,7 +944,7 @@ _signal_cursor_changed(void *data, Evas_Object *obj __UNUSED__, const char *emis Widget_Data *wd = elm_widget_data_get(data); Evas_Coord cx, cy, cw, ch; if (!wd) return; - evas_object_smart_callback_call(data, "cursor,changed", NULL); + evas_object_smart_callback_call(data, SIG_CURSOR_CHANGED, NULL); edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text", &cx, &cy, &cw, &ch); if (!wd->deferred_recalc_job) @@ -986,7 +1016,7 @@ _signal_anchor_up(void *data, Evas_Object *obj __UNUSED__, const char *emission, } } if (!wd->disabled) - evas_object_smart_callback_call(data, "anchor,clicked", &ei); + evas_object_smart_callback_call(data, SIG_ANCHOR_CLICKED, &ei); } } @@ -1016,7 +1046,7 @@ _signal_key_enter(void *data, Evas_Object *obj __UNUSED__, const char *emission { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "activated", NULL); + evas_object_smart_callback_call(data, SIG_ACTIVATED, NULL); } static void @@ -1024,7 +1054,7 @@ _signal_mouse_down(void *data, Evas_Object *obj __UNUSED__, const char *emission { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "press", NULL); + evas_object_smart_callback_call(data, SIG_PRESS, NULL); } static void @@ -1032,7 +1062,7 @@ _signal_mouse_up(void *data, Evas_Object *obj __UNUSED__, const char *emission _ { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "clicked", NULL); + evas_object_smart_callback_call(data, SIG_CLICKED, NULL); } static void @@ -1040,7 +1070,7 @@ _signal_mouse_double(void *data, Evas_Object *obj __UNUSED__, const char *emissi { Widget_Data *wd = elm_widget_data_get(data); if (!wd) return; - evas_object_smart_callback_call(data, "clicked,double", NULL); + evas_object_smart_callback_call(data, SIG_CLICKED_DOUBLE, NULL); } #ifdef HAVE_ELEMENTARY_X @@ -1186,6 +1216,9 @@ elm_entry_add(Evas_Object *parent) // if found - hook in if ((wd->api) && (wd->api->obj_hook)) wd->api->obj_hook(obj); + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_radio.c b/src/lib/elm_radio.c index b767792..ba84d48 100644 --- a/src/lib/elm_radio.c +++ b/src/lib/elm_radio.c @@ -60,6 +60,12 @@ static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *eve static void _sub_del(void *data, Evas_Object *obj, void *event_info); static void _signal_radio_on(void *data, Evas_Object *obj, const char *emission, const char *source); +static const char SIG_CHANGED[] = "changed"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -192,7 +198,7 @@ _signal_radio_on(void *data, Evas_Object *obj __UNUSED__, const char *emission _ wd->group->value = wd->value; if (wd->group->valuep) *(wd->group->valuep) = wd->group->value; _state_set_all(wd); - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } /** @@ -234,6 +240,10 @@ elm_radio_add(Evas_Object *parent) wd->state = 0; _sizing_eval(obj); + + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c index 2a3b2a0..4956145 100644 --- a/src/lib/elm_scroller.c +++ b/src/lib/elm_scroller.c @@ -50,6 +50,28 @@ static void _show_region_hook(void *data, Evas_Object *obj); static void _sizing_eval(Evas_Object *obj); static void _sub_del(void *data, Evas_Object *obj, void *event_info); +static const char SIG_SCROLL[] = "scroll"; +static const char SIG_SCROLL_ANIM_START[] = "scroll,anim,start"; +static const char SIG_SCROLL_ANIM_STOP[] = "scroll,anim,stop"; +static const char SIG_SCROLL_DRAG_START[] = "scroll,drag,start"; +static const char SIG_SCROLL_DRAG_STOP[] = "scroll,drag,stop"; +static const char SIG_EDGE_LEFT[] = "edge,left"; +static const char SIG_EDGE_RIGHT[] = "edge,right"; +static const char SIG_EDGE_TOP[] = "edge,top"; +static const char SIG_EDGE_BOTTOM[] = "edge,bottom"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_SCROLL, ""}, + {SIG_SCROLL_ANIM_START, ""}, + {SIG_SCROLL_ANIM_STOP, ""}, + {SIG_SCROLL_DRAG_START, ""}, + {SIG_SCROLL_DRAG_STOP, ""}, + {SIG_EDGE_LEFT, ""}, + {SIG_EDGE_RIGHT, ""}, + {SIG_EDGE_TOP, ""}, + {SIG_EDGE_BOTTOM, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -204,55 +226,55 @@ _resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event static void _edge_left(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "edge,left", NULL); + evas_object_smart_callback_call(data, SIG_EDGE_LEFT, NULL); } static void _edge_right(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "edge,right", NULL); + evas_object_smart_callback_call(data, SIG_EDGE_RIGHT, NULL); } static void _edge_top(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "edge,top", NULL); + evas_object_smart_callback_call(data, SIG_EDGE_TOP, NULL); } static void _edge_bottom(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "edge,bottom", NULL); + evas_object_smart_callback_call(data, SIG_EDGE_BOTTOM, NULL); } static void _scroll(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "scroll", NULL); + evas_object_smart_callback_call(data, SIG_SCROLL, NULL); } static void _scroll_anim_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "scroll,anim,start", NULL); + evas_object_smart_callback_call(data, SIG_SCROLL_ANIM_START, NULL); } static void _scroll_anim_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "scroll,anim,stop", NULL); + evas_object_smart_callback_call(data, SIG_SCROLL_ANIM_STOP, NULL); } static void _scroll_drag_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "scroll,drag,start", NULL); + evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_START, NULL); } static void _scroll_drag_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - evas_object_smart_callback_call(data, "scroll,drag,stop", NULL); + evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_STOP, NULL); } /** @@ -314,6 +336,10 @@ elm_scroller_add(Evas_Object *parent) evas_object_smart_callback_add(wd->scr, "drag,stop", _scroll_drag_stop, obj); _sizing_eval(obj); + + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c index c6fd167..f88df28 100644 --- a/src/lib/elm_slider.c +++ b/src/lib/elm_slider.c @@ -66,6 +66,18 @@ static void _sub_del(void *data, Evas_Object *obj, void *event_info); static void _units_set(Evas_Object *obj); static void _indicator_set(Evas_Object *obj); +static const char SIG_CHANGED[] = "changed"; +static const char SIG_DELAY_CHANGED[] = "delay,changed"; +static const char SIG_DRAG_START[] = "slider,drag,start"; +static const char SIG_DRAG_STOP[] = "slider,drag,stop"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {SIG_DELAY_CHANGED, ""}, + {SIG_DRAG_START, ""}, + {SIG_DRAG_STOP, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -158,7 +170,7 @@ _delay_change(void *data) Widget_Data *wd = elm_widget_data_get(data); if (!wd) return 0; wd->delay = NULL; - evas_object_smart_callback_call(data, "delay,changed", NULL); + evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, NULL); return 0; } @@ -177,7 +189,7 @@ _val_fetch(Evas_Object *obj) if (val != wd->val) { wd->val = val; - evas_object_smart_callback_call(obj, "changed", NULL); + evas_object_smart_callback_call(obj, SIG_CHANGED, NULL); if (wd->delay) ecore_timer_del(wd->delay); wd->delay = ecore_timer_add(0.2, _delay_change, obj); } @@ -248,7 +260,7 @@ static void _drag_start(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { _val_fetch(data); - evas_object_smart_callback_call(data, "slider,drag,start", NULL); + evas_object_smart_callback_call(data, SIG_DRAG_START, NULL); _units_set(data); _indicator_set(data); } @@ -257,7 +269,7 @@ static void _drag_stop(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { _val_fetch(data); - evas_object_smart_callback_call(data, "slider,drag,stop", NULL); + evas_object_smart_callback_call(data, SIG_DRAG_STOP, NULL); _units_set(data); _indicator_set(data); } @@ -328,6 +340,10 @@ elm_slider_add(Evas_Object *parent) evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj); _sizing_eval(obj); + + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; } diff --git a/src/lib/elm_toggle.c b/src/lib/elm_toggle.c index 21532de..cc19b3d 100644 --- a/src/lib/elm_toggle.c +++ b/src/lib/elm_toggle.c @@ -23,6 +23,12 @@ static void _sub_del(void *data, Evas_Object *obj, void *event_info); static void _signal_toggle_off(void *data, Evas_Object *obj, const char *emission, const char *source); static void _signal_toggle_on(void *data, Evas_Object *obj, const char *emission, const char *source); +static const char SIG_CHANGED[] = "changed"; +static const Evas_Smart_Cb_Description _signals[] = { + {SIG_CHANGED, ""}, + {NULL, NULL} +}; + static void _del_hook(Evas_Object *obj) { @@ -117,7 +123,7 @@ _signal_toggle_off(void *data, Evas_Object *obj __UNUSED__, const char *emission if (!wd) return; wd->state = 0; if (wd->statep) *wd->statep = wd->state; - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } static void @@ -127,7 +133,7 @@ _signal_toggle_on(void *data, Evas_Object *obj __UNUSED__, const char *emission if (!wd) return; wd->state = 1; if (wd->statep) *wd->statep = wd->state; - evas_object_smart_callback_call(data, "changed", NULL); + evas_object_smart_callback_call(data, SIG_CHANGED, NULL); } EAPI Evas_Object * @@ -163,6 +169,10 @@ elm_toggle_add(Evas_Object *parent) evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj); _sizing_eval(obj); + + // TODO: convert Elementary to subclassing of Evas_Smart_Class + // TODO: and save some bytes, making descriptions per-class and not instance! + evas_object_smart_callbacks_descriptions_set(obj, _signals); return obj; }