接口
GtkBuilderScope
描述 [src]
interface Gtk.BuilderScope : GObject.ObjectGtkBuilderScope 是一项为 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(),否则将 失败。