diff --git a/data/elementary/themes/edc/efl/check.edc b/data/elementary/themes/edc/efl/check.edc index 96e1a923f2..aed5ac6762 100644 --- a/data/elementary/themes/edc/efl/check.edc +++ b/data/elementary/themes/edc/efl/check.edc @@ -256,10 +256,7 @@ group { "efl/check"; } } programs { - program { - signal: "mouse,clicked,1"; source: "event"; - action: SIGNAL_EMIT "efl,action,check,toggle" "efl"; - } + EFL_UI_CLICKABLE_PART_BIND(event) program { signal: "efl,state,check,on"; source: "efl"; action: STATE_SET "selected" 0.0; @@ -774,10 +771,7 @@ group { "efl/check:toggle"; } } programs { - program { - signal: "mouse,clicked,1"; source: "event"; - action: SIGNAL_EMIT "efl,action,check,toggle" "efl"; - } + EFL_UI_CLICKABLE_PART_BIND(event) program { signal: "efl,state,check,on"; source: "efl"; script { diff --git a/data/elementary/themes/edc/efl/radio.edc b/data/elementary/themes/edc/efl/radio.edc index 962655c57a..35744936f7 100644 --- a/data/elementary/themes/edc/efl/radio.edc +++ b/data/elementary/themes/edc/efl/radio.edc @@ -222,10 +222,7 @@ group { "efl/radio"; } } programs { - program { - signal: "mouse,clicked,1"; source: "event"; - action: SIGNAL_EMIT "efl,action,radio,toggle" "efl"; - } + EFL_UI_CLICKABLE_PART_BIND(event) program { signal: "efl,state,radio,on"; source: "efl"; action: STATE_SET "selected" 0.0; diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c index 3492c360ee..87bc965a36 100644 --- a/src/lib/elementary/efl_ui_check.c +++ b/src/lib/elementary/efl_ui_check.c @@ -253,6 +253,12 @@ _on_check_toggle(void *data, _activate(data); } +static void +_clicked_cb(void *data, const Efl_Event *ev EINA_UNUSED) +{ + _activate(data); +} + EOLIAN static Eina_Bool _efl_ui_check_selected_get(const Eo *obj EINA_UNUSED, Efl_Ui_Check_Data *pd EINA_UNUSED) { @@ -304,7 +310,7 @@ _efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); - + efl_ui_clickable_util_bind_to_theme(wd->resize_obj, obj); if (elm_widget_is_legacy(obj)) { efl_layout_signal_callback_add @@ -320,8 +326,7 @@ _efl_ui_check_efl_object_constructor(Eo *obj, Efl_Ui_Check_Data *pd EINA_UNUSED) (wd->resize_obj, "efl,action,check,on", "*", obj, _on_check_on, NULL); efl_layout_signal_callback_add (wd->resize_obj, "efl,action,check,off", "*", obj, _on_check_off, NULL); - efl_layout_signal_callback_add - (wd->resize_obj, "efl,action,check,toggle", "*", obj, _on_check_toggle, NULL); + efl_event_callback_add(obj, EFL_INPUT_EVENT_CLICKED, _clicked_cb, obj); } efl_access_object_role_set(obj, EFL_ACCESS_ROLE_CHECK_BOX); diff --git a/src/lib/elementary/efl_ui_check.eo b/src/lib/elementary/efl_ui_check.eo index 95d1635054..b1571ca203 100644 --- a/src/lib/elementary/efl_ui_check.eo +++ b/src/lib/elementary/efl_ui_check.eo @@ -1,4 +1,4 @@ -class @beta Efl.Ui.Check extends Efl.Ui.Layout_Base implements Efl.Access.Widget.Action, Efl.Text, Efl.Content +class @beta Efl.Ui.Check extends Efl.Ui.Layout_Base implements Efl.Access.Widget.Action, Efl.Text, Efl.Content, Efl.Input.Clickable { [[Check widget diff --git a/src/lib/elementary/efl_ui_radio.c b/src/lib/elementary/efl_ui_radio.c index 581a5c6319..5458db7f5b 100644 --- a/src/lib/elementary/efl_ui_radio.c +++ b/src/lib/elementary/efl_ui_radio.c @@ -218,12 +218,11 @@ _efl_ui_radio_efl_object_constructor(Eo *obj, Efl_Ui_Radio_Data *pd) ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL); + /* in newer APIs the toggle is toggeled in check via the clickable interface */ if (elm_widget_is_legacy(obj)) elm_layout_signal_callback_add (obj, "elm,action,radio,toggle", "*", _radio_on_cb, obj); - else - elm_layout_signal_callback_add - (obj, "efl,action,radio,toggle", "*", _radio_on_cb, obj); + if (elm_widget_is_legacy(obj)) { diff --git a/src/tests/elementary/spec/efl_test_clickable.c b/src/tests/elementary/spec/efl_test_clickable.c index 3068aec140..8051a8e3c1 100644 --- a/src/tests/elementary/spec/efl_test_clickable.c +++ b/src/tests/elementary/spec/efl_test_clickable.c @@ -10,7 +10,7 @@ #include "elm_widget.h" /* spec-meta-start {"test-interface":"Efl.Ui.Clickable", - "test-widgets": ["Efl.Ui.Button", "Efl.Ui.Image", "Efl.Ui.Panes", "Efl.Ui.Frame", "Efl.Ui.Item.Realized"] + "test-widgets": ["Efl.Ui.Button", "Efl.Ui.Image", "Efl.Ui.Panes", "Efl.Ui.Frame", "Efl.Ui.Item.Realized", "Efl.Ui.Radio", "Efl.Ui.Check"] } spec-meta-end */