Summary: code refactoring - get rid of unneccessary Efl.Access.Value interface.

reviewers_: l.oleksak, stanluk, bu5hm4n, zmike

Reviewed By: l.oleksak

Subscribers: zmike, l.oleksak, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8578

Reviewed-by: Lukasz Oleksak <Lukas.Oleksak>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11304
This commit is contained in:
Mateusz Denys 2020-02-24 17:05:52 +01:00 committed by Marcel Hollerbach
parent 4f88dfd10d
commit ad00102842
14 changed files with 50 additions and 157 deletions

View File

@ -148,7 +148,6 @@ EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel);
# include <efl_access_component.eo.h>
# include <efl_access_editable_text.eo.h>
# include <efl_access_selection.eo.h>
# include <efl_access_value.eo.h>
# include <efl_ui_theme.eo.h>
# include <efl_config_global.eo.h>

View File

@ -78,7 +78,7 @@ efl_access_attribute_free(Efl_Access_Attribute *attr);
* Emits Accessible 'PropertyChanged' signal for 'Value' property.
*/
#define efl_access_value_changed_signal_emit(obj) \
efl_access_object_event_emit(obj, EFL_ACCESS_OBJECT_EVENT_PROPERTY_CHANGED, "value");
efl_access_object_event_emit(obj, EFL_ACCESS_OBJECT_EVENT_PROPERTY_CHANGED, "value");
/**
* Emits Accessible 'ChildrenChanged' signal with added child as argument.

View File

@ -4,7 +4,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
#define ELM_LAYOUT_PROTECTED
#define EFL_ACCESS_VALUE_PROTECTED
#define EFL_PART_PROTECTED
#define EFL_UI_FORMAT_PROTECTED
@ -650,12 +649,6 @@ _efl_ui_progressbar_part_efl_ui_range_display_range_value_get(const Eo *obj, voi
return _progressbar_part_value_get(sd, pd->part);
}
EOLIAN static void
_efl_ui_progressbar_efl_access_value_value_and_text_get(const Eo *obj EINA_UNUSED, Efl_Ui_Progressbar_Data *_pd, double *value, const char **text EINA_UNUSED)
{
if (value) *value = _pd->val;
}
EOLIAN static void
_efl_ui_progressbar_part_efl_ui_range_display_range_limits_set(Eo *obj, void *_pd EINA_UNUSED, double min, double max)
{

View File

@ -1,5 +1,5 @@
class Efl.Ui.Progressbar extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Display, Efl.Ui.Format,
Efl.Ui.Layout_Orientable, Efl.Access.Value,
class @beta Efl.Ui.Progressbar extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Display, Efl.Ui.Format,
Efl.Ui.Layout_Orientable,
Efl.Text, Efl.Content, Efl.Text_Markup
{
[[Progress bar widget.
@ -53,7 +53,6 @@ class Efl.Ui.Progressbar extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Dis
Efl.Ui.Layout_Orientable.orientation { get; set; }
Efl.Ui.Format.apply_formatted_value;
Efl.Part.part_get;
Efl.Access.Value.value_and_text { get; }
Efl.Text.text { get; set; }
Efl.Text_Markup.markup { get; set; }
Efl.Content.content { get; set; }

View File

@ -4,7 +4,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_ACCESS_VALUE_PROTECTED
#define ELM_LAYOUT_PROTECTED
#include <Elementary.h>
@ -37,7 +36,7 @@ _delay_change(void *data)
efl_event_callback_call(data, EFL_UI_RANGE_EVENT_STEADY, NULL);
if (_elm_config->atspi_mode)
efl_access_value_changed_signal_emit(data);
efl_access_object_event_emit(data, EFL_UI_RANGE_EVENT_CHANGED, NULL);
return ECORE_CALLBACK_CANCEL;
}
@ -76,7 +75,7 @@ _emit_events(Eo *obj, Efl_Ui_Slider_Data *sd)
// emit accessibility event also if value was changed by API
if (_elm_config->atspi_mode)
efl_access_value_changed_signal_emit(obj);
efl_access_object_event_emit(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
}
static void
@ -795,45 +794,6 @@ _efl_ui_slider_efl_ui_focus_object_on_focus_update(Eo *obj, Efl_Ui_Slider_Data *
// A11Y Accessibility
EOLIAN static void
_efl_ui_slider_efl_access_value_value_and_text_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd, double *value, const char **text)
{
if (value) *value = sd->val;
if (text) *text = NULL;
}
EOLIAN static Eina_Bool
_efl_ui_slider_efl_access_value_value_and_text_set(Eo *obj, Efl_Ui_Slider_Data *sd, double value, const char *text EINA_UNUSED)
{
if (value < sd->val_min) value = sd->val_min;
if (value > sd->val_max) value = sd->val_max;
efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_START, NULL);
if (fabs(value - sd->val) > DBL_EPSILON)
{
_user_value_update(obj, value);
}
efl_event_callback_call(obj, EFL_UI_SLIDER_EVENT_SLIDER_DRAG_STOP, NULL);
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_slider_efl_access_value_range_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd, double *lower, double *upper, const char **descr)
{
if (lower) *lower = sd->val_min;
if (upper) *upper = sd->val_max;
if (descr) *descr = NULL;
}
EOLIAN static double
_efl_ui_slider_efl_access_value_increment_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd)
{
return sd->step;
}
EOLIAN const Efl_Access_Action_Data *
_efl_ui_slider_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *pd EINA_UNUSED)
{

View File

@ -1,5 +1,4 @@
class Efl.Ui.Slider extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Interactive, Efl.Ui.Layout_Orientable,
Efl.Access.Value,
Efl.Access.Widget.Action
{
[[Elementary slider class
@ -23,9 +22,6 @@ class Efl.Ui.Slider extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Interacti
Efl.Ui.Range_Display.range_limits {get; set; }
Efl.Ui.Range_Interactive.range_step { get; set; }
Efl.Ui.Layout_Orientable.orientation { get; set; }
Efl.Access.Value.value_and_text { get; set; }
Efl.Access.Value.range { get; }
Efl.Access.Value.increment { get; }
Efl.Access.Widget.Action.elm_actions { get; }
}
events {

View File

@ -4,7 +4,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_ACCESS_VALUE_PROTECTED
#include <Elementary.h>
#include "elm_priv.h"
@ -34,7 +33,7 @@ _delay_change(void *data)
efl_event_callback_call(data, EFL_UI_RANGE_EVENT_STEADY, NULL);
if (_elm_config->atspi_mode)
efl_access_value_changed_signal_emit(data);
efl_access_object_event_emit(data, EFL_UI_RANGE_EVENT_CHANGED, NULL);
return ECORE_CALLBACK_CANCEL;
}
@ -89,7 +88,7 @@ _val_set(Evas_Object *obj)
// emit accessibility event also if value was changed by API
if (_elm_config->atspi_mode)
efl_access_value_changed_signal_emit(obj);
efl_access_object_event_emit(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
evas_object_smart_changed(obj);
}
@ -871,44 +870,6 @@ _efl_ui_slider_interval_efl_ui_layout_orientable_orientation_get(const Eo *obj E
}
// A11Y Accessibility
EOLIAN static void
_efl_ui_slider_interval_efl_access_value_value_and_text_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Interval_Data *sd, double *value, const char **text)
{
if (value) *value = sd->val;
if (text) *text = NULL;
}
EOLIAN static Eina_Bool
_efl_ui_slider_interval_efl_access_value_value_and_text_set(Eo *obj, Efl_Ui_Slider_Interval_Data *sd, double value, const char *text EINA_UNUSED)
{
double oldval = sd->val;
if (value < sd->val_min) value = sd->val_min;
if (value > sd->val_max) value = sd->val_max;
efl_event_callback_call(obj, EFL_UI_SLIDER_INTERVAL_EVENT_SLIDER_DRAG_START, NULL);
sd->val = value;
_val_set(obj);
sd->val = oldval;
_slider_update(obj, EINA_TRUE);
efl_event_callback_call(obj, EFL_UI_SLIDER_INTERVAL_EVENT_SLIDER_DRAG_STOP, NULL);
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_slider_interval_efl_access_value_range_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Interval_Data *sd, double *lower, double *upper, const char **descr)
{
if (lower) *lower = sd->val_min;
if (upper) *upper = sd->val_max;
if (descr) *descr = NULL;
}
EOLIAN static double
_efl_ui_slider_interval_efl_access_value_increment_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Interval_Data *sd)
{
return sd->step;
}
EOLIAN const Efl_Access_Action_Data *
_efl_ui_slider_interval_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_UNUSED, Efl_Ui_Slider_Interval_Data *pd EINA_UNUSED)

View File

@ -1,5 +1,5 @@
class @beta Efl.Ui.Slider_Interval extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Interactive,
Efl.Ui.Layout_Orientable, Efl.Access.Value, Efl.Access.Widget.Action
Efl.Ui.Layout_Orientable, Efl.Access.Widget.Action
{
[[An interval slider.
@ -29,9 +29,6 @@ class @beta Efl.Ui.Slider_Interval extends Efl.Ui.Layout_Base implements Efl.Ui.
Efl.Ui.Range_Display.range_limits {get; set; }
Efl.Ui.Range_Interactive.range_step { get; set; }
Efl.Ui.Layout_Orientable.orientation { get; set; }
Efl.Access.Value.value_and_text { get; set; }
Efl.Access.Value.range { get; }
Efl.Access.Value.increment { get; }
Efl.Access.Widget.Action.elm_actions { get; }
}
events {

View File

@ -3,7 +3,6 @@
#endif
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_VALUE_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_UI_FORMAT_PROTECTED

View File

@ -1,5 +1,5 @@
class Efl.Ui.Spin extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Display,
Efl.Ui.Format, Efl.Access.Value, Efl.Access.Widget.Action
Efl.Ui.Format, Efl.Access.Widget.Action
{
[[A Spin.

View File

@ -3,7 +3,6 @@
#endif
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_VALUE_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
#define EFL_UI_FOCUS_COMPOSITION_PROTECTED
#define EFL_UI_FORMAT_PROTECTED
@ -758,44 +757,6 @@ _efl_ui_spin_button_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_
// A11Y Accessibility
EOLIAN static void
_efl_ui_spin_button_efl_access_value_value_and_text_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED, double *value, const char **text)
{
Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
if (value) *value = pd->val;
if (text) *text = NULL;
}
EOLIAN static Eina_Bool
_efl_ui_spin_button_efl_access_value_value_and_text_set(Eo *obj, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED, double value, const char *text EINA_UNUSED)
{
Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
if (pd->val_min > value) return EINA_FALSE;
if (pd->val_max < value) return EINA_FALSE;
efl_ui_range_value_set(obj, value);
return EINA_TRUE;
}
EOLIAN static void
_efl_ui_spin_button_efl_access_value_range_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED, double *lower, double *upper, const char **descr)
{
Efl_Ui_Spin_Data *pd = efl_data_scope_get(obj, EFL_UI_SPIN_CLASS);
if (lower) *lower = pd->val_min;
if (upper) *upper = pd->val_max;
if (descr) *descr = NULL;
}
EOLIAN static double
_efl_ui_spin_button_efl_access_value_increment_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spin_Button_Data *pd)
{
return pd->step;
}
EOLIAN static const char*
_efl_ui_spin_button_efl_access_object_i18n_name_get(const Eo *obj, Efl_Ui_Spin_Button_Data *sd EINA_UNUSED)
{

View File

@ -71,9 +71,6 @@ class Efl.Ui.Spin_Button extends Efl.Ui.Spin
Efl.Ui.Range_Display.range_value { set; }
Efl.Ui.Layout_Orientable.orientation { get; set; }
Efl.Access.Object.i18n_name { get; }
Efl.Access.Value.value_and_text { get; set; }
Efl.Access.Value.range { get; }
Efl.Access.Value.increment { get; }
Efl.Access.Widget.Action.elm_actions { get; }
Efl.Ui.Format.apply_formatted_value;
Efl.Ui.Range_Interactive.range_step { get; set; }

View File

@ -118,6 +118,7 @@ static int _init_count = 0;
static void _state_changed_signal_send(void *data, const Efl_Event *event);
static void _bounds_changed_signal_send(void *data, const Efl_Event *event);
static void _property_changed_signal_send(void *data, const Efl_Event *event);
static void _value_property_changed_signal_send(void *data, const Efl_Event *event);
static void _children_changed_signal_send(void *data, const Efl_Event *event);
static void _window_signal_send(void *data, const Efl_Event *event);
static void _visible_data_changed_signal_send(void *data, const Efl_Event *event);
@ -168,7 +169,8 @@ static const Elm_Atspi_Bridge_Event_Handler event_handlers[] = {
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, _text_caret_moved_send },
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_INSERTED, _text_text_inserted_send },
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_REMOVED, _text_text_removed_send },
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, _text_selection_changed_send }
{ EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, _text_selection_changed_send },
{ EFL_UI_RANGE_EVENT_CHANGED, _value_property_changed_signal_send }
};
enum _Atspi_Object_Child_Event_Type
@ -2162,7 +2164,12 @@ _value_properties_set(const Eldbus_Service_Interface *interface, const char *pro
Eo *bridge = eldbus_service_object_data_get(interface, ELM_ATSPI_BRIDGE_CLASS_NAME);
Eo *obj = _bridge_object_from_path(bridge, obj_path);
ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_VALUE_INTERFACE, request_msg);
if (elm_widget_is_legacy(obj)) {
ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_VALUE_INTERFACE, request_msg);
}
else if(efl_isa(obj, EFL_UI_RANGE_DISPLAY_INTERFACE)) {
ELM_ATSPI_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_UI_RANGE_DISPLAY_INTERFACE, request_msg);
}
if (!eldbus_message_iter_arguments_get(iter, "d", &value))
{
@ -2171,7 +2178,13 @@ _value_properties_set(const Eldbus_Service_Interface *interface, const char *pro
if (!strcmp(property, "CurrentValue"))
{
ret = efl_access_value_and_text_set(obj, value, NULL);
if (elm_widget_is_legacy(obj))
ret = efl_access_value_and_text_set(obj, value, NULL);
else if(efl_isa(obj, EFL_UI_RANGE_DISPLAY_INTERFACE)) {
efl_ui_range_value_set(obj, value);
ret = (efl_ui_range_value_get(obj) == value);
}
else ret = EINA_FALSE;
Eldbus_Message *answer = eldbus_message_method_return_new(request_msg);
eldbus_message_arguments_append(answer, "b", ret);
return answer;
@ -2190,29 +2203,32 @@ _value_properties_get(const Eldbus_Service_Interface *interface, const char *pro
Eo *bridge = eldbus_service_object_data_get(interface, ELM_ATSPI_BRIDGE_CLASS_NAME);
Eo *obj = _bridge_object_from_path(bridge, obj_path);
ELM_ATSPI_PROPERTY_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_ACCESS_VALUE_INTERFACE, request_msg, error);
ELM_ATSPI_PROPERTY_OBJ_CHECK_OR_RETURN_DBUS_ERROR(obj, EFL_UI_RANGE_DISPLAY_INTERFACE, request_msg, error);
if (!strcmp(property, "CurrentValue"))
{
efl_access_value_and_text_get(obj, &value, NULL);
value = efl_ui_range_value_get(obj);
eldbus_message_iter_basic_append(iter, 'd', value);
return EINA_TRUE;
}
if (!strcmp(property, "MinimumValue"))
{
efl_access_value_range_get(obj, &value, NULL, NULL);
efl_ui_range_limits_get(obj, &value, NULL);
eldbus_message_iter_basic_append(iter, 'd', value);
return EINA_TRUE;
}
if (!strcmp(property, "MaximumValue"))
{
efl_access_value_range_get(obj, NULL, &value, NULL);
efl_ui_range_limits_get(obj, NULL, &value);
eldbus_message_iter_basic_append(iter, 'd', value);
return EINA_TRUE;
}
if (!strcmp(property, "MinimumIncrement"))
{
value = efl_access_value_increment_get(obj);
if(efl_isa(obj, EFL_UI_RANGE_INTERACTIVE_INTERFACE)) {
value = efl_ui_range_step_get(obj);
}
else { value = 0; }
eldbus_message_iter_basic_append(iter, 'd', value);
return EINA_TRUE;
}
@ -2508,7 +2524,10 @@ _collection_iter_match_rule_get(Eldbus_Message_Iter *iter, struct collection_mat
else if (!strcmp(ifc_name, "image"))
class = EFL_ACCESS_SELECTION_INTERFACE;
else if (!strcmp(ifc_name, "value"))
class = EFL_ACCESS_VALUE_INTERFACE;
{
class = EFL_ACCESS_VALUE_INTERFACE;
rule->ifaces = eina_list_append(rule->ifaces, EFL_UI_RANGE_DISPLAY_INTERFACE); //alternative interface
}
if (class)
rule->ifaces = eina_list_append(rule->ifaces, class);
@ -3185,6 +3204,8 @@ _iter_interfaces_append(Eldbus_Message_Iter *iter, const Eo *obj)
eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_TEXT);
if (efl_isa(obj, EFL_ACCESS_VALUE_INTERFACE))
eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_VALUE);
if (efl_isa(obj, EFL_UI_RANGE_DISPLAY_INTERFACE))
eldbus_message_iter_basic_append(iter_array, 's', ATSPI_DBUS_INTERFACE_VALUE);
eldbus_message_iter_container_close(iter, iter_array);
}
@ -3952,7 +3973,7 @@ _property_changed_signal_send(void *data, const Efl_Event *event)
{
prop = ATSPI_OBJECT_PROPERTY_VALUE;
atspi_desc = "accessible-value";
}
}
if (prop == ATSPI_OBJECT_PROPERTY_LAST)
{
ERR("Unrecognized property name!");
@ -3970,6 +3991,15 @@ _property_changed_signal_send(void *data, const Efl_Event *event)
&_event_obj_signals[ATSPI_OBJECT_EVENT_PROPERTY_CHANGED], atspi_desc, 0, 0, NULL);
}
static void
_value_property_changed_signal_send(void *data, const Efl_Event *event)
{
ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(data, pd);
_bridge_signal_send(data, event->object, ATSPI_DBUS_INTERFACE_EVENT_OBJECT,
&_event_obj_signals[ATSPI_OBJECT_EVENT_PROPERTY_CHANGED], "accessible-value", 0, 0, NULL);
}
static void
_visible_data_changed_signal_send(void *data, const Efl_Event *event)
{

View File

@ -280,6 +280,7 @@ _value_set(Evas_Object *obj,
efl_event_callback_legacy_call(obj, ELM_SPINNER_EVENT_CHANGED, NULL);
efl_access_value_changed_signal_emit(obj);
efl_access_object_event_emit(obj, EFL_UI_RANGE_EVENT_CHANGED, NULL);
ecore_timer_del(sd->delay_change_timer);
sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
_delay_change_timer_cb, obj);