/usr/include/elementary-1/elm_access.h is in libelementary-dev 1.8.5-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | /**
* @defgroup Access Access
* @ingroup Elementary
*
* WARNING! this API is not finalized. It is unstable. - do not use it if
* you want no breaks in future.
*
* TODO: description
*
*/
#define ELM_OBJ_ACCESS_CLASS elm_obj_access_class_get()
const Eo_Class *elm_obj_access_class_get(void) EINA_CONST;
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
};
/**
* @since 1.9
* @typedef Elm_Access_Info_Type
*/
typedef enum _Elm_Access_Info_Type Elm_Access_Info_Type;
/**
* @enum _Elm_Access_Action_Type
* Enum of supported access action types.
*/
enum _Elm_Access_Action_Type
{
ELM_ACCESS_ACTION_FIRST = -1,
ELM_ACCESS_ACTION_HIGHLIGHT, /* highlight an object */
ELM_ACCESS_ACTION_UNHIGHLIGHT, /* unhighlight an object */
ELM_ACCESS_ACTION_HIGHLIGHT_NEXT, /* set highlight to next object */
ELM_ACCESS_ACTION_HIGHLIGHT_PREV, /* set highlight to previous object */
ELM_ACCESS_ACTION_ACTIVATE, /* activate a highlight object */
ELM_ACCESS_ACTION_SCROLL, /* scroll if one of highlight object parents
* is scrollable */
ELM_ACCESS_ACTION_UP, /* change value up of highlight object */
ELM_ACCESS_ACTION_DOWN, /* change value down of highlight object */
ELM_ACCESS_ACTION_BACK, /* go back to a previous view
ex: pop naviframe item */
ELM_ACCESS_ACTION_READ, /* highlight an object */
ELM_ACCESS_ACTION_LAST
};
/**
* @since 1.9
* @typedef Elm_Access_Action_Type
*/
typedef enum _Elm_Access_Action_Type Elm_Access_Action_Type;
struct _Elm_Access_Action_Info
{
Evas_Coord x;
Evas_Coord y;
unsigned int mouse_type; /* 0: mouse down
1: mouse move
2: mouse up */
Elm_Access_Action_Type action_type;
Elm_Access_Action_Type action_by;
Eina_Bool highlight_cycle : 1;
};
/**
* @since 1.9
* @typedef Elm_Access_Action_Info
*/
typedef struct _Elm_Access_Action_Info Elm_Access_Action_Info;
enum _Elm_Highlight_Direction
{
ELM_HIGHLIGHT_DIR_FIRST = -1,
ELM_HIGHLIGHT_DIR_NEXT,
ELM_HIGHLIGHT_DIR_PREVIOUS
};
/**
* @since 1.9
* @typedef Elm_Highlight_Direction
*/
typedef enum _Elm_Highlight_Direction Elm_Highlight_Direction;
/**
* @since 1.9
* @typedef Elm_Access_Action_Cb
*
* User callback to make access object do specific action
*
* @param data user data
* @param action_info information to classify the action
* Returns EINA_TRUE on success, EINA FALSE otherwise
*
*/
typedef Eina_Bool (*Elm_Access_Action_Cb)(void *data, Evas_Object *obj, Elm_Access_Action_Info *action_info);
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.9
*
* @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
*/
Evas_Object *elm_access_object_register(Evas_Object *obj, Evas_Object *parent);
/**
* @brief Unregister accessible object.
* @since 1.9
*
* @param obj The Evas object to unregister accessible object.
*
* @ingroup Access
*/
void elm_access_object_unregister(Evas_Object *obj);
/**
* @brief Get an accessible object of the evas object.
* @since 1.9
*
* @param obj The evas object.
* @return Accessible object of the evas object or NULL for any error
*
* @ingroup Access
*/
Evas_Object *elm_access_object_get(const Evas_Object *obj);
/**
* @brief Set text to give information for specific type.
* @since 1.9
*
* @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
*/
void elm_access_info_set(Evas_Object *obj, int type, const char *text);
/**
* @brief Set text to give information for specific type.
* @since 1.9
*
* @param obj Accessible object.
* @param type The type of content that will be read
*
* @see elm_access_info_cb_set
* @ingroup Access
*/
char *elm_access_info_get(const Evas_Object *obj, int type);
/**
* @brief Set content callback to give information for specific type.
* @since 1.9
*
* @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
*/
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.9
*
* @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
*/
void elm_access_activate_cb_set(Evas_Object *obj, Elm_Access_Activate_Cb func, void *data);
/**
* @brief Read out text information directly.
* @since 1.9
*
* @param text The text information that will be read
*
* This function will not free the @p text internally.
*
* @ingroup Access
*/
void elm_access_say(const char *text);
/**
* @brief Give the highlight to the object directly.
* @since 1.9
*
* @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
*/
void elm_access_highlight_set(Evas_Object* obj);
/**
* @brief Do the accessibility action base on given object.
* @since 1.9
*
* @param obj The object that could be an any object. it would be useful to use a container widget.
* @param type The type of accessibility action.
* @param action_info The action information of action @p type to give more specific information.
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
*
* The return value would be useful, when the @type is ELM_ACCESS_ACTION_HIGHLIGHT_NEXT
* or ELM_ACCESS_ACTION_HIGHLIGHT_PREV. If there is no way to give a highlight,
* @c EINA_FALSE will be returned.
*
* @ingroup Access
*/
Eina_Bool elm_access_action(Evas_Object *obj, const Elm_Access_Action_Type type, Elm_Access_Action_Info *action_info);
/**
* @brief Set a callback function to a given accessibility action type
* @since 1.9
*
* @param obj The object to attach a callback to
* @param type The type of accessibility action.
* @param cb The callback function to be called when the accessibility action is triggered.
* @param data The data pointer to be passed to @p cb
*
* @ingroup Access
*/
void elm_access_action_cb_set(Evas_Object *obj, const Elm_Access_Action_Type type, const Elm_Access_Action_Cb cb, const void *data);
/**
* @brief Set the next access object for highlight.
* @since 1.9
*
* @param obj The object is previous access object of next for hilight.
* @param dir Access direction same as Focus direction
* @param next The object is next access object of obj for hilight.
*
* Currently focus chain is used for access highlight chain. Use this API to
* customize highlight chain. If highlight chain is already established, you can
* change one object's highlight chain and do not break the other object's
* highlight chain.
*
* @ingroup Access
*/
void
elm_access_highlight_next_set(Evas_Object *obj, Elm_Highlight_Direction dir, Evas_Object *next);
|