Previous: GObject Properties, Up: Working with GObjects [Contents][Index]
Usually any GObjects you use will be created by procedures such as
window:new
, and those GObject types will have been predefined in
the typelib. But, it is possible to make custom GObject object classes
using the register-type
procedure.
Bear in mind, that while Guile-GI internally uses GOOPS, GObjects implemented in it are not quite as flexible. For instance, you cannot meaningfully redefine a GObject-based type, which you could if you just used GOOPS types. On the other hand, you can make use of the features of the GObject infrastructure, such as signals.
Defining a new GObject class is rather complicated.
This procedure creates and returns a new <GType>
of a GObject
object.
type-name is the string name of the new type. Note, that it will be turned into a symbol internally.
parent-type is the <GType>
of the parent class to this
class. The parent class needs to be <GObject>
or a GObject class
that descends from it.
list-of-properties is a list of parameter specifications. These
parameter specifications can be created using the param-spec-TYPE
methods found in the GObject
typelib.
list-of-signals is a list of signal specifications. See GObject Signals.
To then make instances of your custom GObject type, use make
.