pub struct Mux { /* private fields */ }
Expand description
View holding information and managing multiplexer.
Implementations§
Source§impl Mux
impl Mux
Sourcepub fn remove_id(&mut self, id: Id) -> Result<Id, RemoveViewError>
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);
Sourcepub fn add_below<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>where
T: View,
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();
Sourcepub fn add_above<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>where
T: View,
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();
Sourcepub fn add_left_of<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>where
T: View,
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();
Sourcepub fn add_right_of<T>(&mut self, v: T, id: Id) -> Result<Id, AddViewError>where
T: View,
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();
Sourcepub fn set_container_split_ratio<T: Into<f32>>(
&mut self,
id: Id,
input: T,
) -> Result<(), AddViewError>
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();
Sourcepub fn switch_views(&mut self, fst: Id, snd: Id) -> Result<(), SwitchError>
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
impl Mux
pub fn active_view(&self) -> Option<&dyn View>
pub fn active_view_mut(&mut self) -> Option<&mut dyn View>
Sourcepub fn with_default_split_ratio<T: Into<f32>>(self, split: T) -> Self
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.
Sourcepub fn set_default_split_ratio<T: Into<f32>>(&mut self, split: T)
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.
Sourcepub fn with_move_focus_up(self, evt: Event) -> Self
pub fn with_move_focus_up(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_move_focus_down(self, evt: Event) -> Self
pub fn with_move_focus_down(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_move_focus_left(self, evt: Event) -> Self
pub fn with_move_focus_left(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_move_focus_right(self, evt: Event) -> Self
pub fn with_move_focus_right(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_resize_up(self, evt: Event) -> Self
pub fn with_resize_up(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_resize_down(self, evt: Event) -> Self
pub fn with_resize_down(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_resize_left(self, evt: Event) -> Self
pub fn with_resize_left(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn with_resize_right(self, evt: Event) -> Self
pub fn with_resize_right(self, evt: Event) -> Self
Chainable setter for action
Sourcepub fn set_move_focus_up(&mut self, evt: Event)
pub fn set_move_focus_up(&mut self, evt: Event)
Setter for action
Sourcepub fn set_move_focus_down(&mut self, evt: Event)
pub fn set_move_focus_down(&mut self, evt: Event)
Setter for action
Sourcepub fn set_move_focus_left(&mut self, evt: Event)
pub fn set_move_focus_left(&mut self, evt: Event)
Setter for action
Sourcepub fn set_move_focus_right(&mut self, evt: Event)
pub fn set_move_focus_right(&mut self, evt: Event)
Setter for action
Sourcepub fn set_resize_up(&mut self, evt: Event)
pub fn set_resize_up(&mut self, evt: Event)
Setter for action
Sourcepub fn set_resize_down(&mut self, evt: Event)
pub fn set_resize_down(&mut self, evt: Event)
Setter for action
Sourcepub fn set_resize_left(&mut self, evt: Event)
pub fn set_resize_left(&mut self, evt: Event)
Setter for action
Sourcepub fn set_resize_right(&mut self, evt: Event)
pub fn set_resize_right(&mut self, evt: Event)
Setter for action
Sourcepub fn with_focus(self, id: Id) -> Self
pub fn with_focus(self, id: Id) -> Self
Chainable setter for the focus the mux should have
Sourcepub fn focus(&self) -> Id
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 View for Mux
impl View for Mux
Source§fn draw(&self, printer: &Printer<'_, '_>)
fn draw(&self, printer: &Printer<'_, '_>)
Source§fn needs_relayout(&self) -> bool
fn needs_relayout(&self) -> bool
Source§fn required_size(&mut self, constraint: Vec2) -> Vec2
fn required_size(&mut self, constraint: Vec2) -> Vec2
Source§fn layout(&mut self, constraint: Vec2)
fn layout(&mut self, constraint: Vec2)
Source§fn take_focus(&mut self, _source: Direction) -> Result<EventResult, CannotFocus>
fn take_focus(&mut self, _source: Direction) -> Result<EventResult, CannotFocus>
Source§fn focus_view(&mut self, _: &Selector<'_>) -> Result<EventResult, ViewNotFound>
fn focus_view(&mut self, _: &Selector<'_>) -> Result<EventResult, ViewNotFound>
Source§fn call_on_any<'a>(&mut self, slct: &Selector<'_>, cb: AnyCb<'a>)
fn call_on_any<'a>(&mut self, slct: &Selector<'_>, cb: AnyCb<'a>)
Source§fn on_event(&mut self, evt: Event) -> EventResult
fn on_event(&mut self, evt: Event) -> EventResult
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Finder for Twhere
T: View,
impl<T> Finder for Twhere
T: View,
Source§fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
sel
. Read moreSource§fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
sel
. Read moreSource§fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
call_on
with a view::Selector::Name
.Source§impl<T> IntoBoxedView for Twhere
T: View,
impl<T> IntoBoxedView for Twhere
T: View,
Source§fn into_boxed_view(self) -> Box<dyn View>
fn into_boxed_view(self) -> Box<dyn View>
Box<View>
.Source§impl<T> Resizable for Twhere
T: View,
impl<T> Resizable for Twhere
T: View,
Source§fn resized(
self,
width: SizeConstraint,
height: SizeConstraint,
) -> ResizedView<Self>
fn resized( self, width: SizeConstraint, height: SizeConstraint, ) -> ResizedView<Self>
self
in a ResizedView
with the given size constraints.Source§fn fixed_size<S>(self, size: S) -> ResizedView<Self>
fn fixed_size<S>(self, size: S) -> ResizedView<Self>
self
into a fixed-size ResizedView
.Source§fn fixed_width(self, width: usize) -> ResizedView<Self>
fn fixed_width(self, width: usize) -> ResizedView<Self>
self
into a fixed-width ResizedView
.Source§fn fixed_height(self, height: usize) -> ResizedView<Self>
fn fixed_height(self, height: usize) -> ResizedView<Self>
self
into a fixed-width ResizedView
.Source§fn full_screen(self) -> ResizedView<Self>
fn full_screen(self) -> ResizedView<Self>
self
into a full-screen ResizedView
.Source§fn full_width(self) -> ResizedView<Self>
fn full_width(self) -> ResizedView<Self>
self
into a full-width ResizedView
.Source§fn full_height(self) -> ResizedView<Self>
fn full_height(self) -> ResizedView<Self>
self
into a full-height ResizedView
.Source§fn max_size<S>(self, size: S) -> ResizedView<Self>
fn max_size<S>(self, size: S) -> ResizedView<Self>
self
into a limited-size ResizedView
.Source§fn max_width(self, max_width: usize) -> ResizedView<Self>
fn max_width(self, max_width: usize) -> ResizedView<Self>
self
into a limited-width ResizedView
.Source§fn max_height(self, max_height: usize) -> ResizedView<Self>
fn max_height(self, max_height: usize) -> ResizedView<Self>
self
into a limited-height ResizedView
.Source§fn min_size<S>(self, size: S) -> ResizedView<Self>
fn min_size<S>(self, size: S) -> ResizedView<Self>
self
into a ResizedView
at least sized size
.Source§fn min_width(self, min_width: usize) -> ResizedView<Self>
fn min_width(self, min_width: usize) -> ResizedView<Self>
self
in a ResizedView
at least min_width
wide.Source§fn min_height(self, min_height: usize) -> ResizedView<Self>
fn min_height(self, min_height: usize) -> ResizedView<Self>
self
in a ResizedView
at least min_height
tall.Source§impl<T> Scrollable for Twhere
T: View,
impl<T> Scrollable for Twhere
T: View,
Source§fn scrollable(self) -> ScrollView<Self>
fn scrollable(self) -> ScrollView<Self>
self
in a ScrollView
.