Implementação ATK para um objeto específico
- Guia de accessibilidade para desenvolvedores GNOME
- O que é acessibilidade?
- Exemplos que usam a API de acessibilidade
- Implementando um objeto ATK
Todos GObjects implementam uma função get_type(). Usando o exemplo acima, a convenção de nome para esse nome de função seria myatkimp_mytype_get_type().
Nesta função, você especificaria quais interfaces seu objeto implementa. Se a seguinte lógica estivesse incluída nesta função get_type(), esse objeto implementaria a interface ATK_TEXT:
Example 1-5 Exemplo de função 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);
A função atk_text_interface_init(), que possui o protótipo a seguir, precisaria ser implementado:
void atk_text_interface_init (AtkTextIface *iface);
Essa função conectaria as chamadas de função de interface com a implementação específica a seguir:
Example 1-6 Conectando chamadas personalizadas de interface a uma implementação 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; ... }
Então, as funções myatkimp_mytype_get_text(), myatkimp_mytype_get_character_at_offset() e o resto das funções de interface ATK_TEXT precisariam ser implementadas.