Interface
GtkBuilderScope
Description [src]
interface Gtk.BuilderScope : GObject.Object
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 gtk_builder_cscope_new()
.
If you implement GtkBuilderScope
for a language binding, you
may want to (partially) derive from or fall back to a GtkBuilderCScope
,
as that class implements support for automatic lookups from C symbols.
Prerequisite
In order to implement BuilderScope, your type must inherit fromGObject
.
Interface structure
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
);
}
The virtual function table to implement for GtkBuilderScope
implementations.
Default implementations for each function do exist, but they usually just fail,
so it is suggested that implementations implement all of them.
Interface members
get_type_from_name |
|
Try to lookup a |
|
get_type_from_function |
|
Try to lookup a |
|
create_closure |
|
Create a closure with the given arguments. See |
Virtual methods
Gtk.BuilderScope.create_closure
Create a closure with the given arguments. See gtk_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 NULL
.
Gtk.BuilderScope.get_type_from_function
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
.
Gtk.BuilderScope.get_type_from_name
Try to lookup a GType
via the its name. See
gtk_builder_get_type_from_name()
for more details.
The C implementation will use g_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 g_type_from_name()
and otherwise fails.