and now add custom access info for items too and clean up nicely.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 24 Aug 2011 06:39:29 +0000 (06:39 +0000)
committerMike McCormack <mj.mccormack@samsung.com>
Mon, 14 Nov 2011 08:02:23 +0000 (17:02 +0900)
git-svn-id: https://svn.enlightenment.org/svn/e/trunk/elementary@62734 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Elementary.h.in
src/lib/elm_main.c
src/lib/elm_toolbar.c
src/lib/elm_widget.c
src/lib/elm_widget.h

index 3e32d6d..0df7528 100644 (file)
@@ -1173,13 +1173,24 @@ extern "C" {
    /**
     * Set the text to read out when in accessibility mode
     *
-    * @param obj The object which is described
+    * @param obj The object which is to be 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);
 
+   /**
+    * Set the text to read out when in accessibility mode
+    *
+    * @param it The object item which is to be described
+    * @param txt The text that describes the widget to people with poor or no vision
+    *
+    * @ingroup General
+    */
+   EAPI void elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt);
+         
+
 #define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
 
    /**
index 40d05a2..d33fe7c 100644 (file)
@@ -2214,3 +2214,10 @@ elm_object_access_info_set(Evas_Object *obj, const char *txt)
 {
    elm_widget_access_info_set(obj, txt);
 }
+
+EAPI void
+elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt)
+{
+   _elm_widget_item_access_info_set((Elm_Widget_Item *)it, txt);
+}
+
index d2c6bc8..408b835 100644 (file)
@@ -715,7 +715,7 @@ static char *
 _access_info_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, Elm_Widget_Item *item __UNUSED__)
 {
    Elm_Toolbar_Item *it = (Elm_Toolbar_Item *)item;
-   char *txt = NULL; // FIXME set access info on items - prefer that
+   char *txt = item->access_info;
    if (!txt) txt = (char *)it->label;
    if (txt) return strdup(txt);
    return txt;
index 74f4627..d56b469 100644 (file)
@@ -2698,6 +2698,18 @@ _elm_widget_item_del(Elm_Widget_Item *item)
 
    if (item->view)
      evas_object_del(item->view);
+   
+   if (item->access)
+     {
+        _elm_access_clear(item->access);
+        free(item->access);
+        item->access = NULL;
+     }
+   if (item->access_info)
+     {
+        eina_stringshare_del(item->access_info);
+        item->access_info = NULL;
+     }
 
    if (item->access)
      {
@@ -3254,6 +3266,16 @@ _elm_widget_item_signal_emit_hook_set(Elm_Widget_Item *item,
    item->on_signal_emit_func = func;
 }
 
+EAPI void
+_elm_widget_item_access_info_set(Elm_Widget_Item *item, const char *txt)
+{
+   ELM_WIDGET_ITEM_CHECK_OR_RETURN(item);
+   if (item->access_info) eina_stringshare_del(item->access_info);
+   if (!txt) item->access_info = NULL;
+   else item->access_info = eina_stringshare_add(txt);
+}
+
+
 static void
 _smart_add(Evas_Object *obj)
 {
index b813135..3e179e7 100644 (file)
@@ -261,6 +261,7 @@ struct _Elm_Widget_Item
    Elm_Widget_On_Text_Get_Cb on_text_get_func;
    Elm_Widget_On_Signal_Emit_Cb on_signal_emit_func;
    Elm_Access_Info *access;
+   const char *access_info;
    /* widget variations should have data from here and on */
    /* @todo: TODO check if this is enough for 1.0 release, maybe add padding! */
 };
@@ -449,6 +450,8 @@ EAPI void             _elm_widget_item_content_unset_hook_set(Elm_Widget_Item *i
 EAPI void             _elm_widget_item_text_set_hook_set(Elm_Widget_Item *item, Elm_Widget_On_Text_Set_Cb func);
 EAPI void             _elm_widget_item_text_get_hook_set(Elm_Widget_Item *item, Elm_Widget_On_Text_Get_Cb func);
 EAPI void             _elm_widget_item_signal_emit_hook_set(Elm_Widget_Item *it, Elm_Widget_On_Signal_Emit_Cb func);
+EAPI void             _elm_widget_item_access_info_set(Elm_Widget_Item *item, const char *txt);
+
 
 /* debug function. don't use it unless you are tracking parenting issues */
 EAPI void             elm_widget_tree_dump(const Evas_Object *top);