Skip to main content

Container

Struct Container 

Source
pub struct Container {
    pub children: Vec<Box<dyn Component>>,
    /* private fields */
}
Expand description

Container represents an empty container where you can put other components into it.

It will render components based on how you defined the layout. The way it updates properties is usually by assigning the attributes to all the children components, but when defining the component you can override these behaviours by implementing attr() yourself and directly accessing children’s attr(). By default it will forward Commands' to all the children and will return a CmdResult::Batch` with all the results.

Fields§

§children: Vec<Box<dyn Component>>

Container children

Implementations§

Source§

impl Container

Source

pub fn foreground(self, fg: Color) -> Self

Set the main foreground color. This may get overwritten by individual text styles.

Source

pub fn background(self, bg: Color) -> Self

Set the main background color. This may get overwritten by individual text styles.

Source

pub fn modifiers(self, m: TextModifiers) -> Self

Set the main text modifiers. This may get overwritten by individual text styles.

Source

pub fn style(self, style: Style) -> Self

Set the main style. This may get overwritten by individual text styles.

This option will overwrite any previous foreground, background and modifiers!

Source

pub fn inactive(self, s: Style) -> Self

Set a custom style for the border when the component is unfocused.

Source

pub fn borders(self, b: Borders) -> Self

Add a border to the component.

Source

pub fn title<T: Into<Title>>(self, title: T) -> Self

Add a title to the component.

Source

pub fn layout(self, layout: Layout) -> Self

Set a ratatui Layout to use for all the child components.

If this is unset, nothing gets drawn!

Source

pub fn children(self, children: Vec<Box<dyn Component>>) -> Self

Set the children Components this container contains.

Trait Implementations§

Source§

impl Component for Container

Source§

fn view(&mut self, render: &mut Frame<'_>, area: Rect)

Based on the current properties and states, renders the component in the provided area frame. Render can also mutate the component state if this is required
Source§

fn query<'a>(&'a self, attr: Attribute) -> Option<QueryResult<'a>>

Query attribute of component properties. Read more
Source§

fn attr(&mut self, attr: Attribute, value: AttrValue)

Set attribute to properties. query describes the name, while attr the value it’ll take
Source§

fn state(&self) -> State

Get current state from component
Source§

fn perform(&mut self, cmd: Cmd) -> CmdResult

Perform a command on the component. The command will may change the component state. The method returns the result of the command applied (what changed if any)
Source§

impl Default for Container

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.