Implémentation d'AtkObject
- Guide d'accessibilité du bureau GNOME pour les développeurs
- Qu'est-ce que I'accessibilité ?
- Exemples d'utilisation de l'API d'accessibilité
- Implémentation d'un objet ATK
Les AtkObject sont des objets GObjects et tous les GObject doivent spécifier la fonction get_type(). Voici un exemple qui définit une classe et un initialisateur d'instance. Cette fonction get_type() spécifie aussi que l'objet implémente ATK_TEXT et spécifie l'objet parent comme un MON_IMP_ATK_MONTYPEPARENT.
Exemple I.7 Exemple d'implémentation de get_type()
GType mon_imp_atk_montype_get_type (void) { static GType type = 0; if (!type) { static const GTypeInfo tinfo = { sizeof (GailLabelClass), (GBaseInitFunc) NULL, /* initialisation base */ (GBaseFinalizeFunc) NULL, /* finalisation base */ (GClassInitFunc) mon_imp_atk_montype_class_init, /* class init */ (GClassFinalizeFunc) NULL, /* class finalize */ NULL, /* données de la classe */ sizeof (GailLabel), /* taille de l'instance */ 0, /* nbre préallocations */ (GInstanceInitFunc) mon_imp_atk_montype_instance_init, /* instance init */ NULL /* tableau de valeur */ }; /* Organisation de la structure atk_text_info utilisée ci-dessous */ static const GInterfaceInfo atk_text_info = { (GInterfaceInitFunc) atk_text_interface_init, (GInterfaceFinalizeFunc) NULL, NULL }; /* Organisation du typename et spécification du type du parent */ type = g_type_register_static (MON_IMP_ATK_MONTYPEPARENT, "monimpatkmontype", &tinfo, 0); /* Cette classe implémente l'interface ATK_TYPE_TEXT */ g_type_add_interface_static (type, ATK_TYPE_TEXT, &atk_text_info); } return type; }