zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6d0f51412626b13e495a3eed559880b1266403f7

commit 6d0f51412626b13e495a3eed559880b1266403f7
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Wed Jul 31 09:02:05 2019 -0400

    efl_ui_check/radio: use clickable
    
    Summary:
    with this commit the state of the check / radio buttons are changes when
    the Widget is clicked. The Widget is now using clickable and emits all
    the events.
    
    ref T7865
    
    Reviewers: segfaultxavi, zmike, Jaehyun_Cho, woohyun
    
    Reviewed By: zmike
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Maniphest Tasks: T7865
    
    Differential Revision: https://phab.enlightenment.org/D9456
---
 data/elementary/themes/edc/efl/check.edc       | 10 ++--------
 data/elementary/themes/edc/efl/radio.edc       |  5 +----
 src/lib/elementary/efl_ui_check.c              | 11 ++++++++---
 src/lib/elementary/efl_ui_check.eo             |  2 +-
 src/lib/elementary/efl_ui_radio.c              |  5 ++---
 src/tests/elementary/spec/efl_test_clickable.c |  2 +-
 6 files changed, 15 insertions(+), 20 deletions(-)

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
  */

-- 


Reply via email to