Describe more widgets callbacks.

These are all that Editje support now :-) Add others later as
required, but patches are welcome!



SVN revision: 47488
This commit is contained in:
Gustavo Sverzut Barbieri 2010-03-26 10:59:56 +00:00
parent c70784c37c
commit 9c951bc6fc
7 changed files with 187 additions and 48 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}