BuilderScope

class BuilderScope(*args, **kwargs)

Implementations: BuilderCScope

GtkBuilderScope is an interface to provide 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 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

class BuilderScope
do_create_closure(builder: Builder, function_name: str, flags: BuilderClosureFlags, object: Object) Callable[[...], Any]

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

Parameters:
  • builder

  • function_name

  • flags

  • object

do_get_type_from_function(builder: Builder, function_name: str) 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 Invalid.

Parameters:
  • builder

  • function_name

do_get_type_from_name(builder: Builder, type_name: str) type

Try to lookup a GType via the its name. See get_type_from_name() for more details. The C implementation will use 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 type_from_name() and otherwise fails.

Parameters:
  • builder

  • type_name