Struct TabView

Source
pub struct TabView { /* private fields */ }
Expand description

Main struct which manages views

Implementations§

Source§

impl TabView

Source

pub fn new() -> Self

Returns a new TabView

§Example
let mut tabs = TabView::new();
Source

pub fn active_tab(&self) -> Option<&str>

Returns the currently active tab Id.

Source

pub fn active_view(&self) -> Option<&dyn View>

Returns a reference to the underlying view.

Source

pub fn active_view_mut(&mut self) -> Option<&mut dyn View>

Returns a mutable reference to the underlying view.

Source

pub fn views(&self) -> Vec<&dyn View>

Source

pub fn views_mut(&mut self) -> Vec<&mut dyn View>

Source

pub fn set_active_tab(&mut self, id: &str) -> Result<(), IdNotFound>

Set the currently active (visible) tab. If the tab id is not known, an error is returned and no action is performed.

Source

pub fn with_active_tab(self, id: &str) -> Result<Self, Self>

Set the currently active (visible) tab. If the tab id is not known, an error is returned and no action is performed.

This is the consumable variant.

Source

pub fn add_tab<T: View>(&mut self, view: NamedView<T>)

Add a new tab to the tab view. The new tab will be set active and will be the visible tab for this tab view.

Source

pub fn with_tab<T: View>(self, view: NamedView<T>) -> Self

Add a new tab to the tab view. The new tab will be set active and will be the visible tab for this tab view.

This is the consumable variant.

Source

pub fn add_tab_at<T: View>(&mut self, view: NamedView<T>, pos: usize)

Add a new tab at a given position. The new tab will be set active and will be the visible tab for this tab view.

This is designed to not fail, if the given position is greater than the number of current tabs, it simply will be appended.

Source

pub fn with_tab_at<T: View>(self, view: NamedView<T>, pos: usize) -> Self

Add a new tab at a given position. The new tab will be set active and will be the visible tab for this tab view.

It is designed to be fail-safe, if the given position is greater than the number of current tabs, it simply will be appended.

This is the consumable variant.

Source

pub fn swap_tabs(&mut self, fst: &str, snd: &str)

Swap the tabs position. If one of the given key cannot be found, then no operation is performed.

Source

pub fn remove_tab(&mut self, id: &str) -> Result<(), IdNotFound>

Removes a tab with the given id from the TabView. If the removed tab is active at the moment, the TabView will unfocus it and the focus needs to be set manually afterwards, or a new view has to be inserted.

Source

pub fn tab_order(&self) -> Vec<String>

Returns the current order of keys in a vector. When you’re implementing your own tab bar, be aware that this is the current tab bar and is only a copy of the original order, modification will not be transferred and future updates in the original not displayed.

Source

pub fn next(&mut self)

Set the active tab to the next tab in order.

Source

pub fn prev(&mut self)

Set the active tab to the previous tab in order.

Source

pub fn set_bar_rx(&mut self, rx: Receiver<String>)

Set the receiver for keys to be changed to

Source

pub fn set_active_key_tx(&mut self, tx: Sender<String>)

Set the sender for the key switched to

Trait Implementations§

Source§

impl Default for TabView

Source§

fn default() -> Self

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

impl View for TabView

Source§

fn draw(&self, printer: &Printer<'_, '_>)

Draws the view with the given printer (includes bounds) and focus. Read more
Source§

fn layout(&mut self, size: Vec2)

Called once the size for this view has been decided. Read more
Source§

fn required_size(&mut self, req: Vec2) -> Vec2

Returns the minimum size the view requires with the given restrictions. Read more
Source§

fn on_event(&mut self, evt: Event) -> EventResult

Called when an event is received (key press, mouse event, …). Read more
Source§

fn take_focus(&mut self, src: Direction) -> Result<EventResult, CannotFocus>

Attempt to give this view the focus. Read more
Source§

fn call_on_any<'a>(&mut self, slt: &Selector<'_>, cb: AnyCb<'a>)

Runs a closure on the view identified by the given selector. Read more
Source§

fn focus_view( &mut self, slt: &Selector<'_>, ) -> Result<EventResult, ViewNotFound>

Moves the focus to the view identified by the given selector. Read more
Source§

fn needs_relayout(&self) -> bool

Should return true if the view content changed since the last call to layout(). Read more
Source§

fn important_area(&self, size: Vec2) -> Rect

What part of the view is important and should be visible? Read more
Source§

fn type_name(&self) -> &'static str

Returns the type of this view. 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> AnyView for T
where T: View,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Downcast self to a Any.

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Downcast self to a mutable Any.

Source§

fn as_boxed_any(self: Box<T>) -> Box<dyn Any>

Returns a boxed any from a boxed 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> Finder for T
where T: View,

Source§

fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
where V: View, F: FnMut(&mut V),

Runs a callback on all views identified by sel. Read more
Source§

fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
where V: View, F: FnOnce(&mut V) -> R,

Runs a callback on the view identified by sel. Read more
Source§

fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
where V: View, F: FnOnce(&mut V) -> R,

Convenient method to use call_on with a view::Selector::Name.
Source§

fn find_name<V>(&mut self, name: &str) -> Option<ViewRef<V>>
where V: View,

Convenient method to find a view wrapped in an NamedView.
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> IntoBoxedView for T
where T: View,

Source§

fn into_boxed_view(self) -> Box<dyn View>

Returns a Box<View>.
Source§

impl<T> Nameable for T
where T: View,

Source§

fn with_name<S>(self, name: S) -> NamedView<Self>
where S: Into<String>,

Wraps this view into an NamedView with the given id. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Resizable for T
where T: View,

Source§

fn resized( self, width: SizeConstraint, height: SizeConstraint, ) -> ResizedView<Self>

Wraps self in a ResizedView with the given size constraints.
Source§

fn fixed_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a fixed-size ResizedView.
Source§

fn fixed_width(self, width: usize) -> ResizedView<Self>

Wraps self into a fixed-width ResizedView.
Source§

fn fixed_height(self, height: usize) -> ResizedView<Self>

Wraps self into a fixed-width ResizedView.
Source§

fn full_screen(self) -> ResizedView<Self>

Wraps self into a full-screen ResizedView.
Source§

fn full_width(self) -> ResizedView<Self>

Wraps self into a full-width ResizedView.
Source§

fn full_height(self) -> ResizedView<Self>

Wraps self into a full-height ResizedView.
Source§

fn max_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a limited-size ResizedView.
Source§

fn max_width(self, max_width: usize) -> ResizedView<Self>

Wraps self into a limited-width ResizedView.
Source§

fn max_height(self, max_height: usize) -> ResizedView<Self>

Wraps self into a limited-height ResizedView.
Source§

fn min_size<S>(self, size: S) -> ResizedView<Self>
where S: Into<XY<usize>>,

Wraps self into a ResizedView at least sized size.
Source§

fn min_width(self, min_width: usize) -> ResizedView<Self>

Wraps self in a ResizedView at least min_width wide.
Source§

fn min_height(self, min_height: usize) -> ResizedView<Self>

Wraps self in a ResizedView at least min_height tall.
Source§

impl<T> Scrollable for T
where T: View,

Source§

fn scrollable(self) -> ScrollView<Self>

Wraps self in a ScrollView.
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.
Source§

impl<T> With for T

Source§

fn wrap_with<U, F>(self, f: F) -> U
where F: FnOnce(Self) -> U,

Calls the given closure and return the result. Read more
Source§

fn with<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure on self.
Source§

fn try_with<E, F>(self, f: F) -> Result<Self, E>
where F: FnOnce(&mut Self) -> Result<(), E>,

Calls the given closure on self.
Source§

fn with_if<F>(self, condition: bool, f: F) -> Self
where F: FnOnce(&mut Self),

Calls the given closure if condition == true.