[]Trait libhandy4::subclass::prelude::ObjectSubclass

pub trait ObjectSubclass: 'static {
    type Type: ObjectType + ObjectSubclassIs + FromGlibPtrNone<*mut <Self::Type as ObjectType>::GlibType> + FromGlibPtrFull<*mut <Self::Type as ObjectType>::GlibType> + FromGlibPtrBorrow<*mut <Self::Type as ObjectType>::GlibType>;
    type ParentType: ObjectType + FromGlibPtrNone<*mut <Self::ParentType as ObjectType>::GlibType> + FromGlibPtrFull<*mut <Self::ParentType as ObjectType>::GlibType> + FromGlibPtrBorrow<*mut <Self::ParentType as ObjectType>::GlibType>;
    type Instance: InstanceStruct;
    type Class: ClassStruct;

    pub const NAME: &'static str;
    pub const ABSTRACT: bool;

    pub fn type_data() -> NonNull<TypeData>;
pub fn get_type() -> Type; pub fn get_instance(&self) -> Self::Type { ... }
pub fn from_instance(obj: &Self::Type) -> &Self { ... }
pub fn type_init(_type_: &mut InitializingType<Self>) { ... }
pub fn class_init(_klass: &mut Self::Class) { ... }
pub fn new() -> Self { ... }
pub fn with_class(_klass: &Self::Class) -> Self { ... }
pub fn instance_init(_obj: &InitializingObject<Self::Type>) { ... } }

The central trait for subclassing a GObject type.

Links together the type name, parent type and the instance and class structs for type registration and allows subclasses to hook into various steps of the type registration and initialization.

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

Associated Types

type Type: ObjectType + ObjectSubclassIs + FromGlibPtrNone<*mut <Self::Type as ObjectType>::GlibType> + FromGlibPtrFull<*mut <Self::Type as ObjectType>::GlibType> + FromGlibPtrBorrow<*mut <Self::Type as ObjectType>::GlibType>

Wrapper around this subclass defined with wrapper!

type ParentType: ObjectType + FromGlibPtrNone<*mut <Self::ParentType as ObjectType>::GlibType> + FromGlibPtrFull<*mut <Self::ParentType as ObjectType>::GlibType> + FromGlibPtrBorrow<*mut <Self::ParentType as ObjectType>::GlibType>

Parent Rust type to inherit from.

type Instance: InstanceStruct

The C instance struct.

See simple::InstanceStruct for an basic instance struct that should be used in most cases.

type Class: ClassStruct

The C class struct.

See simple::ClassStruct for an basic instance struct that should be used in most cases.

Loading content...

Associated Constants

pub const NAME: &'static str

GObject type name.

This must be unique in the whole process.

pub const ABSTRACT: bool

If this subclass is an abstract class or not.

By default all subclasses are non-abstract types but setting this to true will create an abstract class instead.

Abstract classes can't be instantiated and require a non-abstract subclass.

Optional.

Loading content...

Required methods

pub fn type_data() -> NonNull<TypeData>

Storage for the type-specific data used during registration.

This is usually generated by the object_subclass! macro.

pub fn get_type() -> Type

Returns the glib::Type ID of the subclass.

This will register the type with the type system on the first call and is usually generated by the object_subclass! macro.

Loading content...

Provided methods

pub fn get_instance(&self) -> Self::Type

Returns the corresponding object instance.

pub fn from_instance(obj: &Self::Type) -> &Self

Returns the implementation from an instance.

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

Additional type initialization.

This is called right after the type was registered and allows subclasses to do additional type-specific initialization, e.g. for implementing GObject interfaces.

Optional

pub fn class_init(_klass: &mut Self::Class)

Class initialization.

This is called after type_init and before the first instance of the subclass is created. Subclasses can use this to do class- specific initialization, e.g. for installing properties or signals on the class or calling class methods.

Optional

pub fn new() -> Self

Constructor.

This is called during object instantiation before further subclasses are initialized, and should return a new instance of the subclass private struct.

Optional, either implement this or with_class().

pub fn with_class(_klass: &Self::Class) -> Self

Constructor.

This is called during object instantiation before further subclasses are initialized, and should return a new instance of the subclass private struct.

Different to new() above it also gets the class of this type passed to itself for providing additional context.

Optional, either implement this or new().

pub fn instance_init(_obj: &InitializingObject<Self::Type>)

Performs additional instance initialization.

Called just after with_class(). At this point the initialization has not completed yet, so only a limited set of operations is safe (see InitializingObject).

Loading content...

Implementors

Loading content...