[][src]Struct cursive::views::StackView

pub struct StackView { /* fields omitted */ }

Simple stack of views. Only the top-most view is active and can receive input.

Implementations

impl StackView[src]

pub fn new() -> StackView[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]

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]

Adds new view on top of the stack in the center of the screen.

pub fn layer<T>(self, view: T) -> StackView where
    T: IntoBoxedView
[src]

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 + 'static)>[src]

Returns a reference to the layer at the given position.

pub fn get_mut(
    &mut self,
    pos: LayerPosition
) -> Option<&mut (dyn View + 'static)>
[src]

Returns a mutable reference to the layer at the given position.

pub fn find_layer_from_name(&mut self, id: &str) -> Option<LayerPosition>[src]

Looks for the layer containing a view with the given name.

Returns Some(pos) if self.get(pos) has the given name, or is a parent of a view with this name.

Returns None if the given name 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_name("text")));
stack.add_layer(TextView::new("Front"));

assert_eq!(stack.find_layer_from_name("text"), Some(LayerPosition::FromBack(1)));

pub fn find_layer_from_id(&mut self, id: &str) -> Option<LayerPosition>[src]

👎 Deprecated:

find_layer_from_id is being renamed to find_layer_from_name

pub fn fullscreen_layer<T>(self, view: T) -> StackView where
    T: IntoBoxedView
[src]

Adds a new full-screen layer on top of the stack.

Chainable variant.

pub fn transparent_layer<T>(self, view: T) -> StackView where
    T: IntoBoxedView
[src]

Adds a new transparent layer on top of the stack.

Chainable variant.

pub fn add_layer_at<T>(&mut self, position: XY<Offset>, view: T) where
    T: IntoBoxedView
[src]

Adds a view on top of the stack.

pub fn add_transparent_layer<T>(&mut self, view: T) where
    T: IntoBoxedView
[src]

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: XY<Offset>, view: T) where
    T: IntoBoxedView
[src]

Adds a transparent view on top of the stack.

pub fn layer_at<T>(self, position: XY<Offset>, view: T) -> StackView where
    T: IntoBoxedView
[src]

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 + 'static, Global>
[src]

Remove a layer from this StackView.

Panics

If the given position is out of bounds.

pub fn pop_layer(&mut self) -> Option<Box<dyn View + 'static, Global>>[src]

Remove the top-most layer.

pub fn offset(&self) -> XY<usize>[src]

Computes the offset of the current top view.

pub fn layer_sizes(&self) -> Vec<XY<usize>, Global>[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]

Brings the given view to the front of the stack.

Panics

If layer is out of bounds.

pub fn move_to_back(&mut self, layer: LayerPosition)[src]

Pushes the given view to the back of the stack.

Panics

If layer is out of bounds.

pub fn reposition_layer(&mut self, layer: LayerPosition, position: XY<Offset>)[src]

Moves a layer to a new position on the screen.

Panics

If layer is out of bounds.

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 Default for StackView[src]

impl View for StackView[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AnyView for T where
    T: View
[src]

pub fn as_any(&self) -> &(dyn Any + 'static)[src]

Downcast self to a Any.

pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)[src]

Downcast self to a mutable Any.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Erased for T

impl<T> Finder for T where
    T: View
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoBoxedView for T where
    T: View
[src]

impl<T> Nameable for T where
    T: View
[src]

impl<T> Resizable for T where
    T: View
[src]

impl<T> Scrollable for T where
    T: View
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> With for T[src]