接口
GtkBuilderScope
描述 [src]
interface Gtk.BuilderScope : GObject.Object
GtkBuilderScope
是一项为 GtkBuilder
提供语言绑定支持的接口。
GtkBuilderScope
的目标是查找给定在 GtkBuilder
UI 文件中的字符串的特定于编程语言的值。
主要目标受众是要将 GtkBuilder
更深入地集成到语言中的绑定。
GtkBuilderScope
实例可以用在多个 GtkBuilder
对象中,甚至可以一次使用。
默认情况下,GTK 将使用其自己的 GtkBuilderScope
实现来用于 C 语言,可通过 gtk_builder_cscope_new()
创建该语言。
如果你为语言绑定实现 GtkBuilderScope
,则可能需要(部分)派生或回退到 GtkBuilderCScope
,因为该类实现了对 C 符号的自动查找支持。
前提条件
为了实现 BuilderScope,你的类型必须继承GObject
。
接口结构
struct GtkBuilderScopeInterface {
GType (* get_type_from_name) (
GtkBuilderScope* self,
GtkBuilder* builder,
const char* type_name
);
GType (* get_type_from_function) (
GtkBuilderScope* self,
GtkBuilder* builder,
const char* function_name
);
GClosure* (* create_closure) (
GtkBuilderScope* self,
GtkBuilder* builder,
const char* function_name,
GtkBuilderClosureFlags flags,
GObject* object,
GError** error
);
}
要为 GtkBuilderScope
实现实现的虚拟函数表。每一个函数的默认实现都存在,但它们通常都会失败,因此建议实现对所有函数的 实现。
接口成员
get_type_from_name |
|
尝试通过其名称查找 |
|
get_type_from_function |
|
尝试通过给定的函数名称查找 |
|
create_closure |
|
使用给定参数创建一个闭包。欲知这些参数的详情,请参见 |
虚拟方法
Gtk.BuilderScope.create_closure
使用给定参数创建一个闭包。欲知这些参数的详情,请参见 gtk_builder_create_closure()
。C 实现将尝试使用 dlsym()
找到函数名称,然后使用 g_cclosure_new()
为该符号创建一个闭包。默认实现只会失败并返回 NULL
。
Gtk.BuilderScope.get_type_from_function
尝试通过给定的函数名称查找 GType
,该名称已显式指定在 GtkBuilder 文件中,比如通过 <object>
标记中的“type-func”属性。此函数极少使用。C 实现将使用 dlsym()
并将结果函数作为 GTypeFunc
调用。默认实现将失败,只返回 G_TYPE_INVALID
。
Gtk.BuilderScope.get_type_from_name
尝试通过其名称查找 GType
。欲知详情,请参见 gtk_builder_get_type_from_name()
。C 实现将使用 g_type_from_name()
,如果失败,则尝试猜测用于注册该类型的正确函数名称,然后使用 dlsym()
加载它。默认实现只会尝试 g_type_from_name()
,否则将 失败。