duat_core::widgets

Struct StatusLine

Source
pub struct StatusLine<U: Ui> { /* private fields */ }
Expand description

A widget to show information, usually about a File

This widget is updated whenever any of its parts needs to be updated, and it also automatically adjusts to where it was pushed. For example, if you push it with OnFileOpen, it’s information will point to the File to which it was pushed. However, if you push it with OnWindowOpen, it will always point to the currently active File:

hooks::remove("FileWidgets");
hooks::add::<OnFileOpen<U>>(|builder| {
    builder.push(LineNumbers::cfg());
    builder.push(status!([File] { File::name }));
});

hooks::remove("WindowWidgets");
hooks::add::<OnWindowOpen<U>>(|builder| {
    let (status_area, _) = builder.push(status!(
        [File] { File::name } " " selections_fmt " " main_fmt
    ));
    builder.push_to(CmdLine::cfg().left_ratioed(2, 3), status_area);
});

In the above example, each file would have a status line with the name of the file, and there would be a global status line, showing more information about the currently active file.

You will usually want to create StatusLines via the status! macro, since that is how you can customize it. Although, if you want the regular status line, you can just:

hooks::remove("FileWidgets");
hooks::add::<OnFileOpen<U>>(|builder| {
    builder.push(LineNumbers::cfg());
    builder.push(StatusLine::cfg());
});

Trait Implementations§

Source§

impl<U: Ui> Widget<U> for StatusLine<U>

Source§

type Cfg = StatusLineCfg<U>

The configuration type
Source§

fn cfg() -> Self::Cfg

Returns a WidgetCfg, for use in layout construction Read more
Source§

fn update(&mut self, _area: &U::Area)

Updates the widget, allowing the modification of its Area Read more
Source§

fn text(&self) -> &Text

The text that this widget prints out
Source§

fn text_mut(&mut self) -> &mut Text

Returns the &mut Text that is printed
Source§

fn once()

Actions taken when this widget opens for the first time Read more
Source§

fn print_cfg(&self) -> PrintCfg

The configuration for how to print Text Read more
Source§

fn on_focus(&mut self, area: &U::Area)

Actions to do whenever this Widget is focused.
Source§

fn on_unfocus(&mut self, area: &U::Area)

Actions to do whenever this Widget is unfocused.
Source§

fn print(&mut self, area: &U::Area)

Prints the widget Read more
Source§

impl<U: Ui> Send for StatusLine<U>

Source§

impl<U: Ui> Sync for StatusLine<U>

Auto Trait Implementations§

§

impl<U> !Freeze for StatusLine<U>

§

impl<U> !RefUnwindSafe for StatusLine<U>

§

impl<U> Unpin for StatusLine<U>

§

impl<U> !UnwindSafe for StatusLine<U>

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, 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.