[−][src]Struct cursive_tree_view::TreeView
A low level tree view.
Each view provides a number of low level methods for manipulating its contained items and their structure.
All interactions are performed via relative (i.e. visual) row
indices which
makes reasoning about behaviour much easier in the context of interactive
user manipulation of the tree.
Examples
let mut tree = TreeView::new(); tree.insert_item("root".to_string(), Placement::LastChild, 0); tree.insert_item("1".to_string(), Placement::LastChild, 0); tree.insert_item("2".to_string(), Placement::LastChild, 1); tree.insert_item("3".to_string(), Placement::LastChild, 2);
Methods
impl<T: Display + Debug> TreeView<T>
[src]
pub fn new() -> Self
[src]
Creates a new, empty TreeView
.
pub fn disable(&mut self)
[src]
Disables this view.
A disabled view cannot be selected.
pub fn enable(&mut self)
[src]
Re-enables this view.
pub fn set_enabled(&mut self, enabled: bool)
[src]
Enable or disable this view.
pub fn is_enabled(&self) -> bool
[src]
Returns true
if this view is enabled.
pub fn set_on_submit<F>(&mut self, cb: F) where
F: Fn(&mut Cursive, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize) + 'static,
Sets a callback to be used when <Enter>
is pressed while an item
is selected.
Example
tree.set_on_submit(|siv: &mut Cursive, row: usize| { });
pub fn on_submit<F>(self, cb: F) -> Self where
F: Fn(&mut Cursive, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize) + 'static,
Sets a callback to be used when <Enter>
is pressed while an item
is selected.
Chainable variant.
Example
tree.on_submit(|siv: &mut Cursive, row: usize| { });
pub fn set_on_select<F>(&mut self, cb: F) where
F: Fn(&mut Cursive, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize) + 'static,
Sets a callback to be used when an item is selected.
Example
tree.set_on_select(|siv: &mut Cursive, row: usize| { });
pub fn on_select<F>(self, cb: F) -> Self where
F: Fn(&mut Cursive, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize) + 'static,
Sets a callback to be used when an item is selected.
Chainable variant.
Example
tree.on_select(|siv: &mut Cursive, row: usize| { });
pub fn set_on_collapse<F>(&mut self, cb: F) where
F: Fn(&mut Cursive, usize, bool, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize, bool, usize) + 'static,
Sets a callback to be used when an item has its children collapsed or expanded.
Example
tree.set_on_collapse(|siv: &mut Cursive, row: usize, is_collapsed: bool, children: usize| { });
pub fn on_collapse<F>(self, cb: F) -> Self where
F: Fn(&mut Cursive, usize, bool, usize) + 'static,
[src]
F: Fn(&mut Cursive, usize, bool, usize) + 'static,
Sets a callback to be used when an item has its children collapsed or expanded.
Chainable variant.
Example
tree.on_collapse(|siv: &mut Cursive, row: usize, is_collapsed: bool, children: usize| { });
pub fn clear(&mut self)
[src]
Removes all items from this view.
pub fn take_items(&mut self) -> Vec<T>
[src]
Removes all items from this view, returning them.
pub fn len(&self) -> usize
[src]
Returns the number of items in this tree.
pub fn is_empty(&self) -> bool
[src]
Returns true
if this tree has no items.
pub fn row(&self) -> Option<usize>
[src]
Returns the index of the currently selected tree row.
None
is returned in case of the tree being empty.
pub fn set_selected_row(&mut self, row: usize)
[src]
Selects the row at the specified index.
pub fn selected_row(self, row: usize) -> Self
[src]
Selects the row at the specified index.
Chainable variant.
pub fn borrow_item(&self, row: usize) -> Option<&T>
[src]
Returns a immutable reference to the item at the given row.
None
is returned in case the specified row
does not visually exist.
pub fn borrow_item_mut(&mut self, row: usize) -> Option<&mut T>
[src]
Returns a mutable reference to the item at the given row.
None
is returned in case the specified row
does not visually exist.
pub fn insert_item(
&mut self,
item: T,
placement: Placement,
row: usize
) -> Option<usize>
[src]
&mut self,
item: T,
placement: Placement,
row: usize
) -> Option<usize>
Inserts a new item
at the given row
with the specified
Placement
, returning the visual row of the item
occupies after its insertion.
None
will be returned in case the item is not visible after insertion
due to one of its parents being in a collapsed state.
pub fn insert_container_item(
&mut self,
item: T,
placement: Placement,
row: usize
) -> Option<usize>
[src]
&mut self,
item: T,
placement: Placement,
row: usize
) -> Option<usize>
Inserts a new container
at the given row
with the specified
Placement
, returning the visual row of the
container occupies after its insertion.
A container is identical to a normal item except for the fact that it can always be collapsed even if it does not contain any children.
Note: If the container is not visible because one of its parents is collapsed
None
will be returned since there is no visible row for the container to occupy.
pub fn remove_item(&mut self, row: usize) -> Option<Vec<T>>
[src]
Removes the item at the given row
along with all of its children.
The returned vector contains the removed items in top to bottom order.
None
is returned in case the specified row
does not visually exist.
pub fn remove_children(&mut self, row: usize) -> Option<Vec<T>>
[src]
Removes all children of the item at the given row
.
The returned vector contains the removed children in top to bottom order.
None
is returned in case the specified row
does not visually exist.
pub fn extract_item(&mut self, row: usize) -> Option<T>
[src]
Extracts the item at the given row
from the tree.
All of the items children will be moved up one level within the tree.
None
is returned in case the specified row
does not visually exist.
pub fn collapse_item(&mut self, row: usize)
[src]
Collapses the children of the given row
.
pub fn expand_item(&mut self, row: usize)
[src]
Expands the children of the given row
.
pub fn set_collapsed(&mut self, row: usize, collapsed: bool)
[src]
Collapses or expands the children of the given row
.
pub fn collapsed(self, row: usize, collapsed: bool) -> Self
[src]
Collapses or expands the children of the given row
.
Chained variant.
Trait Implementations
impl<T: Display + Debug> Default for TreeView<T>
[src]
impl<T: Display + Debug> Debug for TreeView<T>
[src]
impl<T: Display + Debug + 'static> View for TreeView<T>
[src]
fn draw(&self, printer: &Printer)
[src]
fn required_size(&mut self, req: Vec2) -> Vec2
[src]
fn layout(&mut self, size: Vec2)
[src]
fn take_focus(&mut self, _: Direction) -> bool
[src]
fn on_event(&mut self, event: Event) -> EventResult
[src]
fn needs_relayout(&self) -> bool
[src]
Should return true
if the view content changed since the last call to layout()
. Read more
fn call_on_any(
&mut self,
&Selector,
Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
[src]
&mut self,
&Selector,
Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
Runs a closure on the view identified by the given selector. Read more
fn focus_view(&mut self, &Selector) -> Result<(), ()>
[src]
Moves the focus to the view identified by the given selector. Read more
fn important_area(&self, view_size: XY<usize>) -> Rect
[src]
What part of the view is important and should be visible? Read more
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[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.
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.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> View for T where
T: ViewWrapper,
[src]
T: ViewWrapper,
fn draw(&self, printer: &Printer)
[src]
fn required_size(&mut self, req: XY<usize>) -> XY<usize>
[src]
fn on_event(&mut self, ch: Event) -> EventResult
[src]
fn layout(&mut self, size: XY<usize>)
[src]
fn take_focus(&mut self, source: Direction) -> bool
[src]
fn call_on_any(
&mut self,
selector: &Selector,
callback: Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
[src]
&mut self,
selector: &Selector,
callback: Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
fn needs_relayout(&self) -> bool
[src]
fn focus_view(&mut self, selector: &Selector) -> Result<(), ()>
[src]
fn important_area(&self, size: XY<usize>) -> Rect
[src]
impl<T> With for T
[src]
fn with<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
Calls the given closure on self
.
fn try_with<E, F>(self, f: F) -> Result<Self, E> where
F: FnOnce(&mut Self) -> Result<(), E>,
[src]
F: FnOnce(&mut Self) -> Result<(), E>,
Calls the given closure on self
.
fn with_if<F>(self, condition: bool, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
Calls the given closure if condition == true
.
impl<T> Identifiable for T where
T: View,
[src]
T: View,
fn with_id<S>(self, id: S) -> IdView<Self> where
S: Into<String>,
[src]
S: Into<String>,
Wraps this view into an IdView
with the given id. Read more
impl<T> Finder for T where
T: View,
[src]
T: View,
fn call_on<V, F, R>(&mut self, sel: &Selector, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View + Any,
[src]
F: FnOnce(&mut V) -> R,
V: View + Any,
fn call_on_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View + Any,
[src]
F: FnOnce(&mut V) -> R,
V: View + Any,
Convenient method to use call_on
with a view::Selector::Id
.
fn find_id<V>(
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View + Any,
[src]
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View + Any,
Convenient method to find a view wrapped in an [IdView
]. Read more
impl<T> Scrollable for T where
T: View,
[src]
T: View,
fn scrollable(self) -> ScrollView<Self>
[src]
Wraps self
in a ScrollView
.
impl<T> Boxable for T where
T: View,
[src]
T: View,
fn boxed(self, width: SizeConstraint, height: SizeConstraint) -> BoxView<Self>
[src]
Wraps self
in a BoxView
with the given size constraints.
fn fixed_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a fixed-size BoxView
.
fn fixed_width(self, width: usize) -> BoxView<Self>
[src]
Wraps self
into a fixed-width BoxView
.
fn fixed_height(self, height: usize) -> BoxView<Self>
[src]
Wraps self
into a fixed-width BoxView
.
fn full_screen(self) -> BoxView<Self>
[src]
Wraps self
into a full-screen BoxView
.
fn full_width(self) -> BoxView<Self>
[src]
Wraps self
into a full-width BoxView
.
fn full_height(self) -> BoxView<Self>
[src]
Wraps self
into a full-height BoxView
.
fn max_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a limited-size BoxView
.
fn max_width(self, max_width: usize) -> BoxView<Self>
[src]
Wraps self
into a limited-width BoxView
.
fn max_height(self, max_height: usize) -> BoxView<Self>
[src]
Wraps self
into a limited-height BoxView
.
fn min_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a BoxView
at least sized size
.
fn min_width(self, min_width: usize) -> BoxView<Self>
[src]
Wraps self
in a BoxView
at least min_width
wide.
fn min_height(self, min_height: usize) -> BoxView<Self>
[src]
Wraps self
in a BoxView
at least min_height
tall.
impl<T> AnyView for T where
T: View,
[src]
T: View,
fn as_any(&self) -> &(dyn Any + 'static)
[src]
Downcast self to a Any
.
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
Downcast self to a mutable Any
.
fn as_boxed_any(self: Box<T>) -> Box<dyn Any + 'static>
[src]
impl<T> IntoBoxedView for T where
T: View,
[src]
T: View,