Initialisateurs de classe/instance
- 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
Vous allez devoir configurer un initialisateur de classe pour l'objet GObject dans l'un des deux cas suivants : si votre implémentation d'AtkObject
-
redéfinit un des appels de fonction défini par l'objet parent. C'est en général nécessaire quand un objet doit implémenter une fonction comme atk_object_get_n_accessible_children(). C'est nécessaire si l'objet possède des fils qui ne sont pas représentés par des éléments graphiques.
-
Requires a parent->init, parent->notify_gtk, or parent->finalize function.
-
parent->init
Une fonction parent->init() peut être nécessaire si l'implémentation ATK a besoin d'effectuer l'une des actions suivantes :
- mettre en cache toutes les données obtenues à partir de l'élément graphique GTK auxiliaire,
- écouter tous les signaux émis par l'élément graphique GTK auxiliaire.
-
parent->notify_gtk
Si l'implémentation d'ATK doit écouter toutes les notifications de propriété de l'objet GTK auxiliaire, une fonction parent->notify_gtk() peut être nécessaire. Par exemple :
Exemple I.7 Une fonction personnalisée notify_gtk()void mon_imp_atk_montype_real_notify_gtk (GObject *obj, GParamSpec *pspec) { GtkWidget *widget = GTK_WIDGET (obj); AtkObject* atk_obj = gtk_widget_get_accessible (widget); if (strcmp (pspec->name, "propriété-concernée") == 0) { /* Gestion de la modification de propriété. */ } else { parent_class->notify_gtk (obj, pspec); } }
-
parent->finalize
S'il est nécessaire de libérer toutes les données quand une instance GObject est détruite alors il y a besoin d'une fonction finalize() pour libérer la mémoire. Par exemple :
Exemple I.8 Une fonction personnalisée finalize()void mon_imp_atk_montype_finalize (GObject *object) { MonImpAtkMonType *mon_type = MONIMPATK_MONTYPE (object); g_object_unref (mon_type->cached_value); G_OBJECT_CLASS (parent_class)->finalize (object); }
-