summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Kosinski <z.kosinski@samsung.com>2014-06-12 12:57:54 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2014-06-12 12:57:55 +0900
commita873c720d50a6b132598a2676a8d05f9af213b40 (patch)
treedd6a848fb9bf39409e92562a22272c5edc45f712
parente4a74b17755dea099166ce9596c0c78a56a4ea0b (diff)
downloadelementary-a873c720d50a6b132598a2676a8d05f9af213b40.tar.gz
atspi: checked state for elm_check added
Reviewers: stanluk Differential Revision: https://phab.enlightenment.org/D1000
-rw-r--r--src/lib/elm_atspi_bridge.c5
-rw-r--r--src/lib/elm_check.c28
-rw-r--r--src/lib/elm_check.eo1
3 files changed, 34 insertions, 0 deletions
diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index c1f1ad50c..83f7415c6 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -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;
}
diff --git a/src/lib/elm_check.c b/src/lib/elm_check.c
index a72ee401a..f26ef4aaf 100644
--- a/src/lib/elm_check.c
+++ b/src/lib/elm_check.c
@@ -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
diff --git a/src/lib/elm_check.eo b/src/lib/elm_check.eo
index f066d0b13..be92e9146 100644
--- a/src/lib/elm_check.eo
+++ b/src/lib/elm_check.eo
@@ -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;