[−][src]Struct cursive::views::StackView
Simple stack of views. Only the top-most view is active and can receive input.
Methods
impl StackView
[src]
pub fn new() -> Self
[src]
Creates a new empty StackView
pub fn len(&self) -> usize
[src]
Returns the number of layers in this StackView
.
pub fn is_empty(&self) -> bool
[src]
Returns true
if there is no layer in this StackView
.
pub fn fits(&self, position: LayerPosition) -> bool
[src]
Returns true
if position
points to a valid layer.
Returns false
if it exceeds the bounds.
pub fn add_fullscreen_layer<T>(&mut self, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a new full-screen layer on top of the stack.
Fullscreen layers have no shadow.
pub fn add_layer<T>(&mut self, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds new view on top of the stack in the center of the screen.
pub fn layer<T>(self, view: T) -> Self where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds new view on top of the stack in the center of the screen.
Chainable variant.
pub fn get(&self, pos: LayerPosition) -> Option<&dyn View>
[src]
Returns a reference to the layer at the given position.
pub fn get_mut(&mut self, pos: LayerPosition) -> Option<&mut dyn View>
[src]
Returns a mutable reference to the layer at the given position.
pub fn find_layer_from_id(&mut self, id: &str) -> Option<LayerPosition>
[src]
Looks for the layer containing a view with the given ID.
Returns Some(pos)
if self.get(pos)
has the given ID,
or is a parent of a view with this ID.
Returns None
if the given ID is not found.
Note that the returned position may be invalidated if some layers are removed from the view.
Examples
let mut stack = StackView::new(); stack.add_layer(TextView::new("Back")); stack.add_layer(Dialog::around(TextView::new("Middle").with_id("text"))); stack.add_layer(TextView::new("Front")); assert_eq!(stack.find_layer_from_id("text"), Some(LayerPosition::FromBack(1)));
pub fn fullscreen_layer<T>(self, view: T) -> Self where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a new full-screen layer on top of the stack.
Chainable variant.
pub fn transparent_layer<T>(self, view: T) -> Self where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a new transparent layer on top of the stack.
Chainable variant.
pub fn add_layer_at<T>(&mut self, position: Position, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a view on top of the stack.
pub fn add_transparent_layer<T>(&mut self, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a transparent view on top of the stack in the center of the screen.
pub fn add_transparent_layer_at<T>(&mut self, position: Position, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a transparent view on top of the stack.
pub fn layer_at<T>(self, position: Position, view: T) -> Self where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
Adds a view on top of the stack at the given position.
Chainable variant.
pub fn remove_layer(&mut self, position: LayerPosition) -> Box<dyn View>
[src]
pub fn pop_layer(&mut self) -> Option<Box<dyn View>>
[src]
Remove the top-most layer.
pub fn offset(&self) -> Vec2
[src]
Computes the offset of the current top view.
pub fn layer_sizes(&self) -> Vec<Vec2>
[src]
Returns the size for each layer in this view.
pub fn move_layer(&mut self, from: LayerPosition, to: LayerPosition)
[src]
Moves a layer to a new position in the stack.
This only affects the elevation of a layer (whether it is drawn over or under other views).
Panics
If either from
or to
is out of bounds.
pub fn move_to_front(&mut self, layer: LayerPosition)
[src]
pub fn move_to_back(&mut self, layer: LayerPosition)
[src]
pub fn reposition_layer(&mut self, layer: LayerPosition, position: Position)
[src]
pub fn draw_bg(&self, printer: &Printer)
[src]
Background drawing
Drawing functions are split into forground and background to ease inserting layers under the stackview but above its background.
you probably just want to call draw()
pub fn draw_fg(&self, printer: &Printer)
[src]
Forground drawing
Drawing functions are split into forground and background to ease inserting layers under the stackview but above its background.
You probably just want to call draw()
Trait Implementations
impl View for StackView
[src]
fn draw(&self, printer: &Printer)
[src]
fn on_event(&mut self, event: Event) -> EventResult
[src]
fn layout(&mut self, size: Vec2)
[src]
fn required_size(&mut self, size: Vec2) -> Vec2
[src]
fn take_focus(&mut self, source: Direction) -> bool
[src]
fn call_on_any<'a>(&mut self, selector: &Selector, callback: AnyCb<'a>)
[src]
fn focus_view(&mut self, selector: &Selector) -> Result<(), ()>
[src]
fn needs_relayout(&self) -> bool
[src]
Should return true
if the view content changed since the last call to layout()
. Read more
fn important_area(&self, view_size: Vec2) -> Rect
[src]
What part of the view is important and should be visible? Read more
impl Default for StackView
[src]
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.