Trait iced::widget::Component

source ·
pub trait Component<Message, Theme = Theme, Renderer = Renderer<Renderer, Renderer>> {
    type State: Default;
    type Event;

    // Required methods
    fn update(
        &mut self,
        state: &mut Self::State,
        event: Self::Event
    ) -> Option<Message>;
    fn view(
        &self,
        state: &Self::State
    ) -> Element<'_, Self::Event, Theme, Renderer>;

    // Provided methods
    fn operate(
        &self,
        _state: &mut Self::State,
        _operation: &mut dyn Operation<Message>
    ) { ... }
    fn size_hint(&self) -> Size<Length> { ... }
}
Expand description

A reusable, custom widget that uses The Elm Architecture.

A Component allows you to implement custom widgets as if they were iced applications with encapsulated state.

In other words, a Component allows you to turn iced applications into custom widgets and embed them without cumbersome wiring.

A Component produces widgets that may fire an Event and update the internal state of the Component.

Additionally, a Component is capable of producing a Message to notify the parent application of any relevant interactions.

Required Associated Types§

source

type State: Default

The internal state of this Component.

source

type Event

The type of event this Component handles internally.

Required Methods§

source

fn update( &mut self, state: &mut Self::State, event: Self::Event ) -> Option<Message>

Processes an Event and updates the Component state accordingly.

It can produce a Message for the parent application.

source

fn view(&self, state: &Self::State) -> Element<'_, Self::Event, Theme, Renderer>

Produces the widgets of the Component, which may trigger an Event on user interaction.

Provided Methods§

source

fn operate( &self, _state: &mut Self::State, _operation: &mut dyn Operation<Message> )

Update the Component state based on the provided Operation

By default, it does nothing.

source

fn size_hint(&self) -> Size<Length>

Returns a Size hint for laying out the Component.

This hint may be used by some widget containers to adjust their sizing strategy during construction.

Implementors§