Struct Mux

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

View holding information and managing multiplexer.

Implementations§

Source§

impl Mux

Source

pub fn remove_id(&mut self, id: Id) -> Result<Id, RemoveViewError>

Removes the given id from the multiplexer, returns an error if not a valid id contained in the tree or the lone root of the tree. When successful the Id of the removed Node is returned.

§Example
let new_node = mux.add_below(cursive::views::DummyView, node1).unwrap();
mux.remove_id(new_node);
Source

pub fn add_below<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>
where T: View,

Add the given view, below the given Id. The new view and the indexed one will share the space previously given to the give Id. When successful Ok() will contain the assigned Id

§Example
let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::DummyView, mux.root().build().unwrap()).unwrap();
let new_node = mux.add_below(cursive::views::DummyView, node1).unwrap();
Source

pub fn add_above<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>
where T: View,

Add the given view, above the given Id. The new view and the indexed one will share the space previously given to the give Id. When successful Ok() will contain the assigned Id

§Example
let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::DummyView, mux.root().build().unwrap()).unwrap();
let new_node = mux.add_above(cursive::views::DummyView, node1).unwrap();
Source

pub fn add_left_of<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>
where T: View,

Add the given view, left of the given Id. The new view and the indexed one will share the space previously given to the give Id. When successful Ok() will contain the assigned Id

§Example
let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::DummyView, mux.root().build().unwrap()).unwrap();
let new_node = mux.add_left_of(cursive::views::DummyView, node1).unwrap();
Source

pub fn add_right_of<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>
where T: View,

Add the given view, right of the given Id. The new view and the indexed one will share the space previously given to the give Id. When successful Ok() will contain the assigned Id

§Example
let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::DummyView, mux.root().build().unwrap()).unwrap();
let new_node = mux.add_right_of(cursive::views::DummyView, node1).unwrap();
Source

pub fn set_container_split_ratio<T: Into<f32>>( &mut self, id: Id, input: T, ) -> Result<(), AddViewError>

Sets the dimensions for partitioning two adjacent panes in the same container.

let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::DummyView, mux.root().build().unwrap()).unwrap();
let new_node = mux.add_right_of(cursive::views::DummyView, node1).unwrap();
mux.set_container_split_ratio(new_node, 0.3).unwrap();
Source

pub fn switch_views(&mut self, fst: Id, snd: Id) -> Result<(), SwitchError>

Allows for position switching of two views, returns error if ids not in multiplexer. When successful empty Ok(())

§Example
let daniel = mux.add_below(cursive::views::DummyView, node1).unwrap();
let the_cooler_daniel = mux.add_below(cursive::views::DummyView, node1).unwrap();
// Oops I wanted the cooler daniel in another spot
mux.switch_views(daniel, the_cooler_daniel);
Source§

impl Mux

Source

pub fn root(&self) -> Path<'_>

Getter for the initial path to traverse the tree and find a specific Id. Returns a Path which can be traversed.

Source§

impl Mux

Source

pub fn new() -> Self

§Example
let mut mux = cursive_multiplex::Mux::new();
Source

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

Source

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

Source

pub fn with_default_split_ratio<T: Into<f32>>(self, split: T) -> Self

Chainable setter for the default split ratio. Note: Only values from 0 to 1 are valid, if your value exceeds this range it will be clamped.

Source

pub fn set_default_split_ratio<T: Into<f32>>(&mut self, split: T)

Setter for the default split ratio. Note: Only values from 0 to 1 are valid, if your value exceeds this range it will be clamped.

Source

pub fn with_move_focus_up(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_move_focus_down(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_move_focus_left(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_move_focus_right(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_resize_up(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_resize_down(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_resize_left(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_resize_right(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn with_zoom(self, evt: Event) -> Self

Chainable setter for action

Source

pub fn set_move_focus_up(&mut self, evt: Event)

Setter for action

Source

pub fn set_move_focus_down(&mut self, evt: Event)

Setter for action

Source

pub fn set_move_focus_left(&mut self, evt: Event)

Setter for action

Source

pub fn set_move_focus_right(&mut self, evt: Event)

Setter for action

Source

pub fn set_resize_up(&mut self, evt: Event)

Setter for action

Source

pub fn set_resize_down(&mut self, evt: Event)

Setter for action

Source

pub fn set_resize_left(&mut self, evt: Event)

Setter for action

Source

pub fn set_resize_right(&mut self, evt: Event)

Setter for action

Source

pub fn set_zoom(&mut self, evt: Event)

Setter for action

Source

pub fn with_focus(self, id: Id) -> Self

Chainable setter for the focus the mux should have

Source

pub fn set_focus(&mut self, id: Id)

Setter for the focus the mux should have

Source

pub fn focus(&self) -> Id

Returns the current focused view id. By default the newest node added to the multiplexer gets focused. Focus can also be changed by the user.

§Example
let mut mux = cursive_multiplex::Mux::new();
let node1 = mux.add_right_of(cursive::views::TextArea::new(), mux.root().build().unwrap()).unwrap();
let current_focus = mux.focus();
assert_eq!(current_focus, node1);

Trait Implementations§

Source§

impl Default for Mux

Source§

fn default() -> Self

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

impl View for Mux

Source§

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

Draws the view with the given printer (includes bounds) and focus. 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 required_size(&mut self, constraint: Vec2) -> Vec2

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

fn layout(&mut self, constraint: Vec2)

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

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

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

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

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

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

Runs a closure on the view identified by the given selector. 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 important_area(&self, view_size: XY<usize>) -> 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§

§

impl Freeze for Mux

§

impl !RefUnwindSafe for Mux

§

impl Send for Mux

§

impl Sync for Mux

§

impl Unpin for Mux

§

impl !UnwindSafe for Mux

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