개별 객체의 ATK 구현 처리

모든 GObject 객체는 get_type() 함수를 구현합니다. 이 함수 이름에 대해 이름 규칙을 적용하면 myatkimp_mytype_get_type()이 됩니다.

이 함수에서, 객체 구현체의 인터페이스를 지정합니다. 다음 로직이 get_type() 함수에 있다면, 이 객체는 ATK_TEXT 인터페이스를 구현합니다:

예제 1-5get_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-6AtkObject 구현체에 개별 인터페이스 호출 연결
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 인터페이스 함수의 나머지 부분을 구현해야합니다.