Implementace ATK pro zadaný objekt
- Vývojářská příručka ke zpřístupnění GNOME
- Co je to zpřístupnění
- Příklady, které používají API zpřístupnění
- Implementace objektu ATK
Všechny GObject implementují funkci get_type(). Když vezmeme předchozí příklad, podle konvence pojmenování by název funkce byl myatkimp_mytype_get_type().
V této funkci určujete, která rozhraní bude váš objekt implementovat. Když by se použila logika, která byla použita v této funkci get_type(), implementoval by objekt rozhraní ATK_TEXT:
Příklad 1-5 Vzorová funkce 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);
Měla by být implementována funkce atk_text_interface_init(), která má následující prototyp:
void atk_text_interface_init (AtkTextIface *iface);
Tato funkce by napojila volání funkce rozhraní na konkrétní implementaci následovně:
Příklad 1-6 Napojení volání vlastního rozhraní na implementaci 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; ... }
Potom by bylo potřeba implementovat funkce myatkimp_mytype_get_text(), myatkimp_mytype_get_character_at_offset() a zbytek funkcí rozhraní ATK_TEXT.