From d4d3da2cef5f72084509d46039fde0d960d07096 Mon Sep 17 00:00:00 2001 From: Lukasz Stanislawski Date: Fri, 24 Oct 2014 13:32:08 +0200 Subject: [PATCH] atspi: add 'checked' state for elm_radio --- legacy/elementary/src/lib/elm_radio.c | 21 +++++++++++++++++++++ legacy/elementary/src/lib/elm_radio.eo | 1 + 2 files changed, 22 insertions(+) diff --git a/legacy/elementary/src/lib/elm_radio.c b/legacy/elementary/src/lib/elm_radio.c index 9bee933691..6efeb01e52 100644 --- a/legacy/elementary/src/lib/elm_radio.c +++ b/legacy/elementary/src/lib/elm_radio.c @@ -57,6 +57,15 @@ _state_set(Evas_Object *obj, Eina_Bool state) elm_layout_signal_emit(obj, "elm,state,radio,on", "elm"); else elm_layout_signal_emit(obj, "elm,state,radio,off", "elm"); + if (_elm_config->atspi_mode) + { + if (sd->state) + { + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_CHECKED, EINA_TRUE); + } + else + elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_CHECKED, EINA_FALSE); + } } } @@ -451,4 +460,16 @@ _elm_radio_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSED return &atspi_actions[0]; } +EOLIAN Elm_Atspi_State_Set +_elm_radio_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Radio_Data *pd EINA_UNUSED) +{ + Elm_Atspi_State_Set ret; + + eo_do_super(obj, ELM_RADIO_CLASS, ret = elm_interface_atspi_accessible_state_set_get()); + if (obj == elm_radio_selected_object_get(obj)) + STATE_TYPE_SET(ret, ELM_ATSPI_STATE_CHECKED); + + return ret; +} + #include "elm_radio.eo.c" diff --git a/legacy/elementary/src/lib/elm_radio.eo b/legacy/elementary/src/lib/elm_radio.eo index 566afdff11..7a644aa5cf 100644 --- a/legacy/elementary/src/lib/elm_radio.eo +++ b/legacy/elementary/src/lib/elm_radio.eo @@ -112,6 +112,7 @@ class Elm_Radio (Elm_Layout, Elm_Interface_Atspi_Widget_Action) Elm_Layout.text_aliases.get; Elm_Layout.content_aliases.get; Elm_Layout.sizing_eval; + Elm_Interface_Atspi_Accessible.state_set.get; Elm_Interface_Atspi_Widget_Action.elm_actions.get; } events {