atspi: checked state for elm_check added

Reviewers: stanluk

Differential Revision: https://phab.enlightenment.org/D1000
This commit is contained in:
Zbigniew Kosinski 2014-06-12 12:57:54 +09:00 committed by Carsten Haitzler (Rasterman)
parent 44b2c2bbb9
commit 3c0067305f
3 changed files with 34 additions and 0 deletions

View File

@ -2569,6 +2569,8 @@ _set_broadcast_flag(const char *event)
STATE_TYPE_SET(_object_state_broadcast_mask, ATSPI_STATE_FOCUSED);
else if (!strcmp(tokens[2], "Showing"))
STATE_TYPE_SET(_object_state_broadcast_mask, ATSPI_STATE_SHOWING);
else if (!strcmp(tokens[2], "Checked"))
STATE_TYPE_SET(_object_state_broadcast_mask, ATSPI_STATE_CHECKED);
}
else if (!strcmp(tokens[1], "PropertyChange"))
{
@ -2699,6 +2701,9 @@ _state_changed_signal_send(void *data, Eo *obj EINA_UNUSED, const Eo_Event_Descr
case ELM_ATSPI_STATE_ACTIVE:
type_desc = "active";
break;
case ELM_ATSPI_STATE_CHECKED:
type_desc = "checked";
break;
default:
return EINA_FALSE;
}

View File

@ -71,6 +71,11 @@ _activate(Evas_Object *obj)
}
evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_state_changed_signal_emit(obj,
ELM_ATSPI_STATE_CHECKED,
sd->state);
}
/* FIXME: replicated from elm_layout just because check's icon spot
@ -89,6 +94,19 @@ _icon_signal_emit(Evas_Object *obj)
edje_object_message_signal_process(wd->resize_obj);
}
EOLIAN static Elm_Atspi_State_Set
_elm_check_elm_interface_atspi_accessible_state_set_get(Eo *obj, Elm_Check_Data *_pd EINA_UNUSED)
{
Elm_Atspi_State_Set states = 0;
eo_do_super(obj, ELM_CHECK_CLASS, states = elm_interface_atspi_accessible_state_set_get());
if (elm_check_state_get(obj))
STATE_TYPE_SET(states, ELM_ATSPI_STATE_CHECKED);
return states;
}
/* FIXME: replicated from elm_layout just because check's icon spot
* is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
* can changed the theme API */
@ -259,6 +277,11 @@ _on_check_off(void *data,
elm_layout_signal_emit(obj, "elm,state,check,off", "elm");
evas_object_smart_callback_call(data, SIG_CHANGED, NULL);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_state_changed_signal_emit(data,
ELM_ATSPI_STATE_CHECKED,
sd->state);
}
static void
@ -275,6 +298,11 @@ _on_check_on(void *data,
if (sd->statep) *sd->statep = sd->state;
elm_layout_signal_emit(obj, "elm,state,check,on", "elm");
evas_object_smart_callback_call(data, SIG_CHANGED, NULL);
if (_elm_config->atspi_mode)
elm_interface_atspi_accessible_state_changed_signal_emit(data,
ELM_ATSPI_STATE_CHECKED,
sd->state);
}
static void

View File

@ -58,6 +58,7 @@ class Elm_Check (Elm_Layout)
Elm_Layout::text_aliases::get;
Elm_Layout::content_aliases::get;
Elm_Layout::sizing_eval;
Elm_Interface_Atspi_Accessible::state_set::get;
}
events {
changed;