Struct cursive::views::StackView [−][src]
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]
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) -> StackView 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 + '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]
&mut self,
pos: LayerPosition
) -> Option<&mut (dyn View + 'static)>
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]
find_layer_from_id
is being renamed to find_layer_from_name
Same as find_layer_from_name
.
pub fn fullscreen_layer<T>(self, view: T) -> StackView 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) -> StackView 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: XY<Offset>, 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: XY<Offset>, view: T) where
T: IntoBoxedView,
[src]
T: IntoBoxedView,
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]
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 + 'static, Global>
[src]
&mut self,
position: LayerPosition
) -> Box<dyn View + 'static, Global>
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]
pub fn move_to_back(&mut self, layer: LayerPosition)
[src]
pub fn reposition_layer(&mut self, layer: LayerPosition, position: XY<Offset>)
[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 Default for StackView
[src]
impl View for StackView
[src]
pub fn draw(&self, printer: &Printer<'_, '_>)
[src]
pub fn on_event(&mut self, event: Event) -> EventResult
[src]
pub fn layout(&mut self, size: XY<usize>)
[src]
pub fn required_size(&mut self, size: XY<usize>) -> XY<usize>
[src]
pub fn take_focus(&mut self, source: Direction) -> bool
[src]
pub fn call_on_any(
&mut self,
selector: &Selector<'_>,
callback: &'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
[src]
&mut self,
selector: &Selector<'_>,
callback: &'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
pub fn focus_view(&mut self, selector: &Selector<'_>) -> Result<(), ()>
[src]
pub fn needs_relayout(&self) -> bool
[src]
pub fn important_area(&self, view_size: XY<usize>) -> Rect
[src]
pub fn type_name(&self) -> &'static str
[src]
Auto Trait Implementations
impl !RefUnwindSafe for StackView
[src]
impl !Send for StackView
[src]
impl !Sync for StackView
[src]
impl Unpin for StackView
[src]
impl !UnwindSafe for StackView
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> AnyView for T where
T: View,
[src]
T: View,
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
.
pub fn as_boxed_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Erased for T
impl<T> Finder for T where
T: View,
[src]
T: View,
pub fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn call_on_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn find_name<V>(
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
[src]
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
pub fn find_id<V>(
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
[src]
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoBoxedView for T where
T: View,
[src]
T: View,
pub fn as_boxed_view(self) -> Box<dyn View + 'static, Global>
[src]
impl<T> Nameable for T where
T: View,
[src]
T: View,
pub fn with_name<S>(self, name: S) -> NamedView<Self> where
S: Into<String>,
[src]
S: Into<String>,
pub fn with_id<S>(self, id: S) -> NamedView<Self> where
S: Into<String>,
[src]
S: Into<String>,
impl<T> Resizable for T where
T: View,
[src]
T: View,
pub fn boxed(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
[src]
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn resized(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
[src]
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn fixed_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn fixed_width(self, width: usize) -> ResizedView<Self>
[src]
pub fn fixed_height(self, height: usize) -> ResizedView<Self>
[src]
pub fn full_screen(self) -> ResizedView<Self>
[src]
pub fn full_width(self) -> ResizedView<Self>
[src]
pub fn full_height(self) -> ResizedView<Self>
[src]
pub fn max_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn max_width(self, max_width: usize) -> ResizedView<Self>
[src]
pub fn max_height(self, max_height: usize) -> ResizedView<Self>
[src]
pub fn min_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn min_width(self, min_width: usize) -> ResizedView<Self>
[src]
pub fn min_height(self, min_height: usize) -> ResizedView<Self>
[src]
impl<T> Scrollable for T where
T: View,
[src]
T: View,
pub fn scrollable(self) -> ScrollView<Self>
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> 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.