AtkObject-implementation
- GNOME:s utvecklarguide för hjälpmedelsteknik
- Vad är tillgänglighet?
- Exempel som använder tillgänglighets-API:t
- Implementera ett ATK-objekt
Alla AtkObject är GObject, och alla GObject behöver ange get_type()-funktionen. Här är ett exempel som konfigurerar en klass- och instansinitierare. Denna get_type()-funktion anger också att objektet implementerar ATK_TEXT och anger att det överordnade objektet är MYATKIMP_MYPARENTTYPE.
Exempel 1-7 Exempel på en get_type()-implementation
GType myatkimp_mytype_get_type (void) { static GType type = 0; if (!type) { static const GTypeInfo tinfo = { sizeof (GailLabelClass), (GBaseInitFunc) NULL, /* base init */ (GBaseFinalizeFunc) NULL, /* base finalize */ (GClassInitFunc) myatkimp_mytype_class_init, /* class init */ (GClassFinalizeFunc) NULL, /* class finalize */ NULL, /* class data */ sizeof (GailLabel), /* instance size */ 0, /* nb preallocs */ (GInstanceInitFunc) myatkimp_mytype_instance_init, /* instance init */ NULL /* value table */ }; /* Konfigurera atk_text_info-struktur använd nedan */ static const GInterfaceInfo atk_text_info = { (GInterfaceInitFunc) atk_text_interface_init, (GInterfaceFinalizeFunc) NULL, NULL }; /* Konfigurera typnamn och ange överordnad typ */ type = g_type_register_static (MYATKIMP_MYPARENTTYPE, "MyatkimpMytype", &tinfo, 0); /* Denna klass implementerar gränssnittet ATK_TYPE_TEXT */ g_type_add_interface_static (type, ATK_TYPE_TEXT, &atk_text_info); } return type; }