and now add a "clicked" say... when u click.

SVN revision: 62587
This commit is contained in:
Carsten Haitzler 2011-08-19 11:47:30 +00:00
parent 6c1869043c
commit a3592b4da6
6 changed files with 59 additions and 1 deletions

View File

@ -1059,6 +1059,16 @@ extern "C" {
*/
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)
/**

View File

@ -217,6 +217,24 @@ _elm_access_read(Elm_Access_Info *ac, int type, Evas_Object *obj, Elm_Widget_Ite
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)
{

View File

@ -212,6 +212,7 @@ _activate(Evas_Object *obj)
wd->timer = NULL;
}
wd->repeating = EINA_FALSE;
_elm_access_say(E_("Clicked"));
evas_object_smart_callback_call(obj, SIG_CLICKED, NULL);
}
@ -319,7 +320,8 @@ _elm_button_label_get(const Evas_Object *obj, const char *item)
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;
}

View File

@ -2074,3 +2074,9 @@ elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part)
{
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);
}

View File

@ -89,6 +89,7 @@ struct _Smart_Data
double scale;
Elm_Theme *theme;
const char *style;
const char *access_info;
unsigned int focus_order;
Eina_Bool focus_order_on_calc;
@ -2238,6 +2239,23 @@ elm_widget_content_part_unset(Evas_Object *obj, const char *part)
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)
{
@ -3189,6 +3207,7 @@ _smart_del(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);
}

View File

@ -229,6 +229,7 @@ EAPI void _elm_access_text_set(Elm_Access_Info *ac, int type, const
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);
@ -403,6 +404,8 @@ EAPI const char *elm_widget_text_part_get(const Evas_Object *obj, const cha
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);