Εκτέλεση ΑΤΚ για ένα ειδικό αντικείμενο
- Οδηγός προσιτότητας GNOME για προγραμματιστές
- Τι είναι η προσιτότητα;
- Παραδείγμα για τη χρήση της προσιτότητας API
- Εκτέλεση ενός αντικειμένου ΑΤΚ
Όλα τα GObject εκτελούν μία συνάρτηση get_type(). Χρησιμοποιώντας το παραπάνω παράδειγμα η σύμαση ονομασίας για αυτό το όνομα συνάρτησης θα πρέπει να είναι myatkimp_mytype_get_type().
Στη συνάρτηση αυτή, θα ορίσετε ποιες διεπαφές θα εκτελεί το αντικείμενό σας. Αν τα επόμενα λογικά ορίσματα συμπεριλαμβάνονται στη συνάρτηση get_type(), το αντικείμενο αυτό θα εκτελεί τη διεπαφή ATK_TEXT:
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);
Η συνάρτηση atk_text_interface_init(), η οποία έχει το ακόλουθο πρωτότυπο, θα πρέπει να εκτελείται ως εξής:
void atk_text_interface_init (AtkTextIface *iface);
Η συνάρτηση αυτή θα πρέπει να συνδέει τις κλήσεις συναρτήσεων διεπαφής στη συγκεκριμένη εκτέλεση ως ακολούθως:
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; ... }
Τότε οι συναρτήσεις myatkimp_mytype_get_text(), myatkimp_mytype_get_character_at_offset(), και το υπόλοιπο των συναρτήσεων διεπαφής ATK_TEXT θα πρέπει να είναι απαραίτητα για την εκτέλεση.