efl/legacy/elementary/src/lib/elm_access.h

149 lines
4.1 KiB
C
Raw Normal View History

/**
* @defgroup Access Access
* @ingroup Elementary
*
* TODO: description
*
*/
#define ELM_OBJ_ACCESS_CLASS elm_obj_access_class_get()
const Eo_Class *elm_obj_access_class_get(void) EINA_CONST;
2013-04-17 01:22:13 -07:00
enum _Elm_Access_Info_Type
{
ELM_ACCESS_INFO_FIRST = -1,
ELM_ACCESS_INFO, /* next read is info - this is
* normally label */
ELM_ACCESS_TYPE, /* when reading out widget or item
* this is read first */
ELM_ACCESS_STATE, /* if there is a state (eg checkbox)
* then read state out */
ELM_ACCESS_CONTEXT_INFO, /* to give contextual information */
ELM_ACCESS_INFO_LAST
};
/**
* @typedef Elm_Access_Info_Type
*/
typedef enum _Elm_Access_Info_Type Elm_Access_Info_Type;
typedef char *(*Elm_Access_Info_Cb)(void *data, Evas_Object *obj);
typedef void (*Elm_Access_Activate_Cb)(void *data, Evas_Object *part_obj, Elm_Object_Item *item);
/**
* @brief Register evas object as an accessible object.
* @since 1.8
*
* @param obj The evas object to register as an accessible object.
* @param parent The elementary object which is used for creating
* accessible object.
*
* @ingroup Access
*/
EAPI Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent);
/**
* @brief Unregister accessible object.
* @since 1.8
*
* @param obj The Evas object to unregister accessible object.
*
* @ingroup Access
*/
EAPI void elm_access_object_unregister(Evas_Object *obj);
/**
* @brief Get an accessible object of the evas object.
* @since 1.8
*
* @param obj The evas object.
* @return Accessible object of the evas object or NULL for any error
*
* @ingroup Access
*/
EAPI Evas_Object *elm_access_object_get(const Evas_Object *obj);
/**
* @brief Set text to give information for specific type.
* @since 1.8
*
* @param obj Accessible object.
* @param type The type of content that will be read
* @param text The text information that will be read
*
* @see elm_access_info_cb_set
* @ingroup Access
*/
EAPI void elm_access_info_set(Evas_Object *obj, int type, const char *text);
/**
* @brief Set text to give information for specific type.
* @since 1.8
*
* @param obj Accessible object.
* @param type The type of content that will be read
*
* @see elm_access_info_cb_set
* @ingroup Access
*/
EAPI char *elm_access_info_get(const Evas_Object *obj, int type);
/**
* @brief Set content callback to give information for specific type.
* @since 1.8
*
* @param obj Accessible object.
* @param type The type of content that will be read
* @param func The function to be called when the content is read
* @param data The data pointer to be passed to @p func
*
* The type would be one of ELM_ACCESS_TYPE, ELM_ACCESS_INFO,
* ELM_ACCESS_STATE, ELM_ACCESS_CONTEXT_INFO.
*
* In the case of button widget, the content of ELM_ACCESS_TYPE would be
* "button". The label of button such as "ok", "cancel" is for ELM_ACCESS_INFO.
* If the button is disabled, content of ELM_ACCESS_STATE would be "disabled".
* And if there is contextual information, use ELM_ACCESS_CONTEXT_INFO.
*
* @ingroup Access
*/
EAPI void elm_access_info_cb_set(Evas_Object *obj, int type, Elm_Access_Info_Cb func, const void *data);
/**
* @brief Set activate callback to activate highlight object.
* @since 1.8
*
* @param obj Accessible object.
* @param func The function to be called when the activate gesture is detected
* @param data The data pointer to be passed to @p func
*
* @ingroup Access
*/
EAPI void elm_access_activate_cb_set(Evas_Object *obj, Elm_Access_Activate_Cb func, void *data);
/**
* @brief Read out text information directly.
* @since 1.8
*
* @param text The text information that will be read
*
* This function will not free the @p text internally.
*
* @ingroup Access
*/
EAPI void elm_access_say(const char *text);
/**
* @brief Give the highlight to the object directly.
* @since 1.8
*
* @param obj The object that will have the highlight and its information be read.
*
* The object should be an elementary object or an access object.
*
* @see elm_access_object_get
* @ingroup Access
*/
EAPI void elm_access_highlight_set(Evas_Object* obj);