*/
EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+ /**
+ * Set the text to read out when in accessibility mode
+ *
+ * @param obj The object which is described
+ * @param txt The text that describes the widget to people with poor or no vision
+ *
+ * @ingroup General
+ */
+ EAPI void elm_object_access_info_set(Evas_Object *obj, const char *txt);
+
#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
/**
if (txt) free(txt);
}
+EAPI void
+_elm_access_say(const char *txt)
+{
+ _access_init();
+ if (mapi)
+ {
+ if (mapi->out_done_callback_set)
+ mapi->out_done_callback_set(_access_read_done, NULL);
+ if (mapi->out_cancel) mapi->out_cancel();
+ if (txt)
+ {
+ if (mapi->out_read) mapi->out_read(txt);
+ if (mapi->out_read) mapi->out_read(".\n");
+ }
+ if (mapi->out_read_done) mapi->out_read_done();
+ }
+}
+
EAPI Elm_Access_Info *
_elm_access_object_get(Evas_Object *obj)
{
wd->timer = NULL;
}
wd->repeating = EINA_FALSE;
+ _elm_access_say(E_("Clicked"));
evas_object_smart_callback_call(obj, SIG_CLICKED, NULL);
}
static char *
_access_info_cb(const void *data __UNUSED__, Evas_Object *obj, Elm_Widget_Item *item __UNUSED__)
{
- char *txt = (char *)_elm_button_label_get(obj, NULL);
+ char *txt = (char *)elm_widget_access_info_get(obj);
+ if (!txt) txt = (char *)_elm_button_label_get(obj, NULL);
if (txt) return strdup(txt);
return txt;
}
{
return elm_widget_item_text_part_get(it, part);
}
+
+EAPI void
+elm_object_access_info_set(Evas_Object *obj, const char *txt)
+{
+ elm_widget_access_info_set(obj, txt);
+}
double scale;
Elm_Theme *theme;
const char *style;
+ const char *access_info;
unsigned int focus_order;
Eina_Bool focus_order_on_calc;
return sd->on_content_unset_func(obj, part);
}
+EAPI void
+elm_widget_access_info_set(Evas_Object *obj, const char *txt)
+{
+ API_ENTRY return;
+ if (sd->access_info) eina_stringshare_del(sd->access_info);
+ if (!txt) sd->access_info = NULL;
+ else sd->access_info = eina_stringshare_add(txt);
+}
+
+EAPI const char *
+elm_widget_access_info_get(Evas_Object *obj)
+{
+ API_ENTRY return NULL;
+ return sd->access_info;
+}
+
+
EAPI Elm_Theme *
elm_widget_theme_get(const Evas_Object *obj)
{
if (sd->type) eina_stringshare_del(sd->type);
if (sd->theme) elm_theme_free(sd->theme);
_if_focused_revert(obj, EINA_TRUE);
+ if (sd->access_info) eina_stringshare_del(sd->access_info);
free(sd);
}
EAPI void _elm_access_callback_set(Elm_Access_Info *ac, int type, Elm_Access_Content_Cb func, const void *data);
EAPI char *_elm_access_text_get(Elm_Access_Info *ac, int type, Evas_Object *obj, Elm_Widget_Item *item);
EAPI void _elm_access_read(Elm_Access_Info *ac, int type, Evas_Object *obj, Elm_Widget_Item *item);
+EAPI void _elm_access_say(const char *txt);
EAPI Elm_Access_Info *_elm_access_object_get(Evas_Object *obj);
EAPI void _elm_access_object_register(Evas_Object *obj, Evas_Object *hoverobj);
EAPI void elm_widget_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
EAPI Evas_Object *elm_widget_content_part_get(const Evas_Object *obj, const char *part);
EAPI Evas_Object *elm_widget_content_part_unset(Evas_Object *obj, const char *part);
+EAPI void elm_widget_access_info_set(Evas_Object *obj, const char *txt);
+EAPI const char *elm_widget_access_info_get(Evas_Object *obj);
EAPI Elm_Widget_Item *_elm_widget_item_new(Evas_Object *parent, size_t alloc_size);
EAPI void _elm_widget_item_del(Elm_Widget_Item *item);
EAPI void _elm_widget_item_pre_notify_del(Elm_Widget_Item *item);