atspi: value interface implementation for elm_spinner

Reviewers: stanluk

Differential Revision: https://phab.enlightenment.org/D1122
This commit is contained in:
Zbigniew Kosinski 2014-07-25 10:13:02 +02:00 committed by Lukasz Stanislawski
parent 7ee0b1c86a
commit d22bf48eb8
2 changed files with 53 additions and 1 deletions

View File

@ -14,6 +14,9 @@
#include "elm_interface_atspi_accessible.h"
#include "elm_interface_atspi_accessible.eo.h"
#define ELM_INTERFACE_ATSPI_VALUE_PROTECTED
#include "elm_interface_atspi_value.eo.h"
#define MY_CLASS ELM_SPINNER_CLASS
#define MY_CLASS_NAME "Elm_Spinner"
@ -115,6 +118,7 @@ _label_write(Evas_Object *obj)
apply:
elm_layout_text_set(obj, "elm.text", buf);
elm_interface_atspi_accessible_name_changed_signal_emit(obj);
if (sd->entry_visible) _entry_show(sd);
}
@ -158,6 +162,7 @@ _value_set(Evas_Object *obj,
sd->val = new_val;
evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
elm_interface_atspi_accessible_value_changed_signal_emit(obj);
ecore_timer_del(sd->delay_change_timer);
sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
_delay_change_timer_cb, obj);
@ -1062,4 +1067,46 @@ _elm_spinner_class_constructor(Eo_Class *klass)
_elm_spinner_smart_focus_next_enable = EINA_TRUE;
}
// A11Y Accessibility
EOLIAN static void
_elm_spinner_elm_interface_atspi_value_value_and_text_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double *value, const char **text)
{
if (value) *value = sd->val;
if (text) *text = NULL;
}
EOLIAN static Eina_Bool
_elm_spinner_elm_interface_atspi_value_value_and_text_set(Eo *obj, Elm_Spinner_Data *sd, double value, const char *text EINA_UNUSED)
{
if (sd->val_min > value) return EINA_FALSE;
if (sd->val_max < value) return EINA_FALSE;
sd->val = value;
_val_set(obj);
return EINA_TRUE;
}
EOLIAN static void
_elm_spinner_elm_interface_atspi_value_range_get(Eo *obj EINA_UNUSED, Elm_Spinner_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
_elm_spinner_elm_interface_atspi_value_increment_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
{
return sd->step;
}
EOLIAN static const char*
_elm_spinner_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Spinner_Data *sd EINA_UNUSED)
{
return elm_layout_text_get(obj, "elm.text");
}
// A11Y Accessibility - END
#include "elm_spinner.eo.c"

View File

@ -1,4 +1,4 @@
class Elm_Spinner (Elm_Layout)
class Elm_Spinner (Elm_Layout, Elm_Interface_Atspi_Value)
{
eo_prefix: elm_obj_spinner;
properties {
@ -374,6 +374,11 @@ class Elm_Spinner (Elm_Layout)
Elm_Widget.on_focus;
Elm_Widget.event;
Elm_Layout.sizing_eval;
Elm_Interface_Atspi_Accessible.name.get;
Elm_Interface_Atspi_Value.value_and_text.get;
Elm_Interface_Atspi_Value.value_and_text.set;
Elm_Interface_Atspi_Value.range.get;
Elm_Interface_Atspi_Value.increment.get;
}
events {
changed;