Trait gdk_pixbuf::subclass::prelude::ObjectInterface

source ·
pub trait ObjectInterface: Sized + ObjectInterfaceType + 'static {
    type Prerequisites: PrerequisiteList;
    type Interface: InterfaceStruct<Type = Self>;

    const NAME: &'static str;

    // Provided methods
    fn type_init(_type_: &mut InitializingType<Self>) { ... }
    fn interface_init(_klass: &mut Self::Interface) { ... }
    fn properties() -> &'static [ParamSpec] { ... }
    fn signals() -> &'static [Signal] { ... }
Expand description

The central trait for defining a GObject interface.

Links together the type name, the empty instance and class structs for type registration and allows hooking into various steps of the type registration and initialization.

See register_interface for registering an implementation of this trait with the type system.

Required Associated Types§


type Prerequisites: PrerequisiteList

Prerequisites for this interface.

Any implementer of the interface must be a subclass of the prerequisites or implement them in case of interfaces.


type Interface: InterfaceStruct<Type = Self>

The C class struct.

Required Associated Constants§


const NAME: &'static str

GObject type name.

This must be unique in the whole process.

Provided Methods§


fn type_init(_type_: &mut InitializingType<Self>)

Additional type initialization.

This is called right after the type was registered and allows interfaces to do additional type-specific initialization.



fn interface_init(_klass: &mut Self::Interface)

Interface initialization.

This is called after type_init and before the first implementor of the interface is created. Interfaces can use this to do interface- specific initialization, e.g. for installing signals on the interface, and for setting default implementations of interface functions.



fn properties() -> &'static [ParamSpec]

Properties installed for this interface.

All implementors of the interface must provide these properties.


fn signals() -> &'static [Signal]

Signals installed for this interface.

Object Safety§

This trait is not object safe.