Skip to content

Gtk.BuilderScope

interface

Provides language binding support to GtkBuilder.

The goal of GtkBuilderScope is to look up programming-language-specific values for strings that are given in a GtkBuilder UI file.

The primary intended audience is bindings that want to provide deeper integration of GtkBuilder into the language.

A GtkBuilderScope instance may be used with multiple GtkBuilder objects, even at once.

By default, GTK will use its own implementation of GtkBuilderScope for the C language which can be created via BuilderCScope.new.

If you implement GtkBuilderScope for a language binding, you may want to (partially) derive from or fall back to a BuilderCScope, as that class implements support for automatic lookups from C symbols.

Virtual methods

do_create_closure

def do_create_closure(self, builder: Builder, function_name: str, flags: BuilderClosureFlags | int, object: GObject.Object) -> GObject.Closure

Create a closure with the given arguments. See Builder.create_closure for more details on those. The C implementation will try to use dlsym() to locate the function name and then g_cclosure_new() to create a closure for the symbol. The default implementation just fails and returns None.

do_get_type_from_function

def do_get_type_from_function(self, builder: Builder, function_name: str) -> type | GObject.Type

Try to lookup a GType via the given function name, specified explicitly in a GtkBuilder file, like via the "type-func" attribute in the <object> tag. This function is very rarely used. The C implementation will use dlsym() and call the resulting function as a GTypeFunc. The default implementation will fail and just return G_TYPE_INVALID.

do_get_type_from_name

def do_get_type_from_name(self, builder: Builder, type_name: str) -> type | GObject.Type

Try to lookup a GType via the its name. See Builder.get_type_from_name for more details. The C implementation will use GObject.type_from_name and if that fails try to guess the correct function name for registering the type and then use dlsym() to load it. The default implementation just tries GObject.type_from_name and otherwise fails.