FactoryView

Trait FactoryView 

Source
pub trait FactoryView: IsA<Widget> {
    type ReturnedWidget: Debug + Hash;
    type Children: Debug + AsRef<Self::Children>;
    type Position;

    // Required methods
    fn factory_remove(&self, widget: &Self::ReturnedWidget);
    fn factory_append(
        &self,
        widget: impl AsRef<Self::Children>,
        position: &Self::Position,
    ) -> Self::ReturnedWidget;
    fn factory_prepend(
        &self,
        widget: impl AsRef<Self::Children>,
        position: &Self::Position,
    ) -> Self::ReturnedWidget;
    fn factory_insert_after(
        &self,
        widget: impl AsRef<Self::Children>,
        position: &Self::Position,
        other: &Self::ReturnedWidget,
    ) -> Self::ReturnedWidget;
    fn returned_widget_to_child(
        root_child: &Self::ReturnedWidget,
    ) -> Self::Children;
    fn factory_move_after(
        &self,
        widget: &Self::ReturnedWidget,
        other: &Self::ReturnedWidget,
    );
    fn factory_move_start(&self, widget: &Self::ReturnedWidget);

    // Provided method
    fn factory_update_position(
        &self,
        _widget: &Self::ReturnedWidget,
        _position: &Self::Position,
    ) { ... }
}
Expand description

A trait implemented for GTK4 widgets that allows a factory to create and remove widgets.

Required Associated Types§

Source

type ReturnedWidget: Debug + Hash

The widget returned when inserting a widget.

This doesn’t matter on containers like gtk::Box. However, widgets such as gtk::Stack return a gtk::StackPage which might be used to set additional parameters.

Therefore, this “returned widget” is explicitly handled here.

Source

type Children: Debug + AsRef<Self::Children>

Widget type that is attached to the container and also the root of the components.

Source

type Position

Position type used by this widget.

For example GridPosition for gtk::Grid or () for gtk::Box

Required Methods§

Source

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Removes a widget.

Source

fn factory_append( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, ) -> Self::ReturnedWidget

Adds a new widget to self at the end.

Source

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, ) -> Self::ReturnedWidget

Add an widget to the front.

Source

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Insert a widget after another widget.

Source

fn returned_widget_to_child(root_child: &Self::ReturnedWidget) -> Self::Children

Converts a returned widget to the children type.

Source

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Move an item after another item.

Source

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Move an item to the start.

Provided Methods§

Source

fn factory_update_position( &self, _widget: &Self::ReturnedWidget, _position: &Self::Position, )

Update the position inside positioned containers like gtk::Grid.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl FactoryView for Box

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

impl FactoryView for FlowBox

Source§

type Children = Widget

Source§

type ReturnedWidget = FlowBoxChild

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

impl FactoryView for Grid

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = GridPosition

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, _widget: &Self::ReturnedWidget, _other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, _widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

fn factory_update_position( &self, widget: &Self::ReturnedWidget, position: &Self::Position, )

Source§

impl FactoryView for ListBox

Source§

type Children = Widget

Source§

type ReturnedWidget = ListBoxRow

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

impl FactoryView for Stack

Source§

type Children = Widget

Source§

type ReturnedWidget = StackPage

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, _widget: &Self::ReturnedWidget, _other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, _widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, position: &(), _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

impl FactoryView for ExpanderRow

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, position: &Self::Position, _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, _widget: &Self::ReturnedWidget, _other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, _widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

fn factory_update_position( &self, widget: &Self::ReturnedWidget, position: &Self::Position, )

Source§

impl FactoryView for Leaflet

Source§

type Children = Widget

Source§

type ReturnedWidget = LeafletPage

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

impl FactoryView for PreferencesGroup

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn returned_widget_to_child( returned_widget: &Self::ReturnedWidget, ) -> Self::Children

Source§

fn factory_move_after( &self, _widget: &Self::ReturnedWidget, _other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, _widget: &Self::ReturnedWidget)

Source§

impl FactoryView for PreferencesPage

Source§

type Children = PreferencesGroup

Source§

type ReturnedWidget = PreferencesGroup

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, position: &(), _other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn returned_widget_to_child(root_child: &Self::ReturnedWidget) -> Self::Children

Source§

fn factory_move_after( &self, _widget: &Self::ReturnedWidget, _other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, _widget: &Self::ReturnedWidget)

Source§

impl FactoryView for TabView

Source§

type Children = Widget

Source§

type ReturnedWidget = TabPage

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Self::ReturnedWidget)

Source§

fn factory_append( &self, widget: impl AsRef<Self::Children>, _position: &Self::Position, ) -> Self::ReturnedWidget

Source§

fn factory_prepend( &self, widget: impl AsRef<Self::Children>, _position: &(), ) -> Self::ReturnedWidget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Self::Children>, _position: &(), other: &Self::ReturnedWidget, ) -> Self::ReturnedWidget

Source§

fn returned_widget_to_child(root_child: &Self::ReturnedWidget) -> Self::Children

Source§

fn factory_move_after( &self, widget: &Self::ReturnedWidget, other: &Self::ReturnedWidget, )

Source§

fn factory_move_start(&self, widget: &Self::ReturnedWidget)

Source§

impl FactoryView for Paned

Source§

type Children = Widget

Source§

type ReturnedWidget = Widget

Source§

type Position = ()

Source§

fn factory_remove(&self, widget: &Widget)

Source§

fn factory_append(&self, widget: impl AsRef<Widget>, _: &()) -> Widget

Source§

fn factory_prepend(&self, widget: impl AsRef<Widget>, _: &()) -> Widget

Source§

fn factory_insert_after( &self, widget: impl AsRef<Widget>, _: &(), other: &Widget, ) -> Widget

Source§

fn returned_widget_to_child(root_child: &Widget) -> Widget

Source§

fn factory_move_after(&self, widget: &Widget, other: &Widget)

Source§

fn factory_move_start(&self, widget: &Widget)

Implementors§