Implementación de AtkObject
- Guía de accesibilidad para los desarrolladores de GNOME
- ¿Qué es la accesibilidad?
- Ejemplos que usan la API de accesibilidad
- Implementar un objeto ATK
Los AtkObject son GObjects, y todos los GObject necesitan especificar la función get_type(). Aquí hay un ejemplo que establece una clase e inicializa una instancia. Esta función get_type() también especifica que el objeto implementa ATK_TEXT y especifica el objeto padre para ser MYATKIMP_MYPARENTTYPE.
Ejemplo 1-7 Ejemplo de implementación de get_type()
GType myatkimp_mytype_get_type (void) { static GType type = 0; if (!type) { static const GTypeInfo tinfo = { sizeof (GailLabelClass), (GBaseInitFunc) NULL, /* inicialización de la base */ (GBaseFinalizeFunc) NULL, /* finalización de la base */ (GClassInitFunc) myatkimp_mytype_class_init, /* inicialización de la clase */ (GClassFinalizeFunc) NULL, /* finalización de la clase */ NULL, /* datos de la clase */ sizeof (GailLabel), /* tamaño de la instancia */ 0, /* número de reservas de memoria («preallocs») */ (GInstanceInitFunc) myatkimp_mytype_instance_init, /* inicialización de la instancia */ NULL /* tabla de valores */ }; /* Configurar la estructura atk_text_info usada a continuación */ static const GInterfaceInfo atk_text_info = { (GInterfaceInitFunc) atk_text_interface_init, (GInterfaceFinalizeFunc) NULL, NULL }; /* Establecer el tipo de nombre y especificar el tipo de padre */ type = g_type_register_static (MYATKIMP_MYPARENTTYPE, "MyatkimpMytype", &tinfo, 0); /* Esta clase implementa la interfaz ATK_TYPE_TEXT */ g_type_add_interface_static (type, ATK_TYPE_TEXT, &atk_text_info); } return type; }