Εκτέλεση ΑΤΚ για ένα ειδικό αντικείμενο

Όλα τα GObject εκτελούν μία συνάρτηση get_type(). Χρησιμοποιώντας το παραπάνω παράδειγμα η σύμαση ονομασίας για αυτό το όνομα συνάρτησης θα πρέπει να είναι myatkimp_mytype_get_type().

Στη συνάρτηση αυτή, θα ορίσετε ποιες διεπαφές θα εκτελεί το αντικείμενό σας. Αν τα επόμενα λογικά ορίσματα συμπεριλαμβάνονται στη συνάρτηση get_type(), το αντικείμενο αυτό θα εκτελεί τη διεπαφή ATK_TEXT:

Παράδειγμα 1-5Συνάρτηση υπόδειξης get_type()
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); 

Η συνάρτηση αυτή θα πρέπει να συνδέει τις κλήσεις συναρτήσεων διεπαφής στη συγκεκριμένη εκτέλεση ως ακολούθως:

Παράδειγμα 1-6Σύνδεση κλήσεων προσαρμοσμένων διεπαφών σε μία εκτέλεση AtkObject
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 θα πρέπει να είναι απαραίτητα για την εκτέλεση.