注册
这个例子中,我们假设一个对象叫 GTK_TYPE_MYTYPE,ATK 的实现叫 MYATKIMP_TYPE_MYTYPE,需要的工厂叫 MYATKIMP_TYPE_MYTYPE_FACTORY。
为 GTK 对象注册一个 ATK 实现,需要在模块的 gtk_module_init() 函数中做以下步骤:
-
访问默认注册表:
default_registry = atk_get_default_registry();
-
在该模块的 gtk_module_init()函数中注册 ATK 对象,函数调用如下:
atk_registry_set_factory_type (default_registry, GTK_TYPE_MYTYPE, MYATKIMP_TYPE_MYTYPE_FACTORY);
这样将把 AtkObject 的实现 GTK_TYPE_MYTYPE 注册到 MYATKIMP_TYPE_MYTYPE_FACTORY中。工厂实现后就知道如何构建 MYATKIMP_TYPE_MYTYPE类型的对象了。