Implementación ATK para un objeto específico
- Guía de accesibilidad para los desarrolladores de GNOME
- ¿Qué es la accesibilidad?
- Ejemplos que usan la API de accesibilidad
- Implementar un objeto ATK
Todos los GObject implementan una función get_type(). Usando el ejemplo anterior, la convención de nombres para el nombre de esta función sería myatkimp_mytype_get_type().
En esta función, especifique qué interfaces implementa su objeto. Si la siguiente lógica se incluyese en esta función get_type(), este objeto podría implementar la interfaz del tipo ATK_TEXT:
Ejemplo 1-5 Ejemplo de función get_type()
static const GInterfaceInfo atk_text_info = { (GInterfaceInitFunc) atk_text_interface_init, (GInterfaceFinalizeFunc) NULL, NULL }; g_type_add_interface_static (type, ATK_TYPE_TEXT, &atk_text_info);
La función atl_text_interface_init(), que tiene el siguiente prototipo, deberá implementarse:
void atk_text_interface_init (AtkTextIface *iface);
Esta función conectará las llamadas de función de interfaz con la implementación específica tal y como sigue:
Ejemplo 1-6 Conectar llamadas de interfaz personalizadas con una implementación de un AtkObject
void atk_text_interface_init (AtkTextIface *iface) { g_return_if_fail (iface != NULL); iface->get_text = myatkimp_mytype_get_text; iface->get_character_at_offset = myatkimp_mytype_get_character_at_offset; ... }
Entonces podría ser necesario implementar las funciones myatkimp_mytype_get_text(), myatkimp_mytype_get_character_at_offset(), y el resto de las funciones ATK_TEXT de la interfaz.