[][src]Struct cursive::views::SelectView

pub struct SelectView<T = String> { /* fields omitted */ }

View to select an item among a list.

It contains a list of values of type T, with associated labels.

Examples

let mut time_select = SelectView::new().h_align(HAlign::Center);
time_select.add_item("Short", 1);
time_select.add_item("Medium", 5);
time_select.add_item("Long", 10);

time_select.set_on_submit(|s, time| {
    s.pop_layer();
    let text = format!("You will wait for {} minutes...", time);
    s.add_layer(Dialog::around(TextView::new(text))
                    .button("Quit", |s| s.quit()));
});

let mut siv = Cursive::dummy();
siv.add_layer(Dialog::around(time_select)
                     .title("How long is your wait?"));

Methods

impl<T: 'static> SelectView<T>[src]

pub fn new() -> Self[src]

Creates a new empty SelectView.

pub fn set_autojump(&mut self, autojump: bool)[src]

Sets the "auto-jump" property for this view.

If enabled, when a key is pressed, the selection will jump to the next item beginning with the pressed letter.

pub fn autojump(self) -> Self[src]

Sets the "auto-jump" property for this view.

If enabled, when a key is pressed, the selection will jump to the next item beginning with the pressed letter.

Chainable variant.

pub fn popup(self) -> Self[src]

Turns self into a popup select view.

Chainable variant.

pub fn set_popup(&mut self, popup: bool)[src]

Turns self into a popup select view.

pub fn disable(&mut self)[src]

Disables this view.

A disabled view cannot be selected.

pub fn disabled(self) -> Self[src]

Disables this view.

Chainable variant.

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_select<F>(&mut self, cb: F) where
    F: Fn(&mut Cursive, &T) + 'static, 
[src]

Sets a callback to be used when an item is selected.

pub fn on_select<F>(self, cb: F) -> Self where
    F: Fn(&mut Cursive, &T) + 'static, 
[src]

Sets a callback to be used when an item is selected.

Chainable variant.

pub fn set_on_submit<F, R, V: ?Sized>(&mut self, cb: F) where
    F: 'static + Fn(&mut Cursive, &V) -> R,
    T: Borrow<V>, 
[src]

Sets a callback to be used when <Enter> is pressed.

Also happens if the user clicks an item.

The item currently selected will be given to the callback.

Here, V can be T itself, or a type that can be borrowed from T.

pub fn on_submit<F, V: ?Sized>(self, cb: F) -> Self where
    F: Fn(&mut Cursive, &V) + 'static,
    T: Borrow<V>, 
[src]

Sets a callback to be used when <Enter> is pressed.

Also happens if the user clicks an item.

The item currently selected will be given to the callback.

Chainable variant.

pub fn align(self, align: Align) -> Self[src]

Sets the alignment for this view.

pub fn v_align(self, v: VAlign) -> Self[src]

Sets the vertical alignment for this view. (If the view is given too much space vertically.)

pub fn h_align(self, h: HAlign) -> Self[src]

Sets the horizontal alignment for this view.

pub fn selection(&self) -> Option<Rc<T>>[src]

Returns the value of the currently selected item.

Returns None if the list is empty.

pub fn clear(&mut self)[src]

Removes all items from this view.

pub fn add_item<S: Into<StyledString>>(&mut self, label: S, value: T)[src]

Adds a item to the list, with given label and value.

pub fn get_item(&self, i: usize) -> Option<(&str, &T)>[src]

Gets an item at given idx or None.

use cursive::Cursive;
use cursive::views::{SelectView, TextView};
let select = SelectView::new()
    .item("Short", 1);
assert_eq!(select.get_item(0), Some(("Short", &1)));

pub fn get_item_mut(&mut self, i: usize) -> Option<(&mut StyledString, &mut T)>[src]

Gets a mut item at given idx or None.

pub fn iter(&self) -> impl Iterator<Item = (&str, &T)>[src]

Iterate on the items in this view.

Returns an iterator with each item and their labels.

pub fn remove_item(&mut self, id: usize) -> Callback[src]

Removes an item from the list.

Returns a callback in response to the selection change.

You should run this callback with a &mut Cursive.

pub fn insert_item<S>(&mut self, index: usize, label: S, value: T) where
    S: Into<StyledString>, 
[src]

Inserts an item at position index, shifting all elements after it to the right.

pub fn item<S: Into<String>>(self, label: S, value: T) -> Self[src]

Chainable variant of add_item

pub fn add_all<S, I>(&mut self, iter: I) where
    S: Into<StyledString>,
    I: IntoIterator<Item = (S, T)>, 
[src]

Adds all items from from an iterator.

pub fn with_all<S, I>(self, iter: I) -> Self where
    S: Into<String>,
    I: IntoIterator<Item = (S, T)>, 
[src]

Adds all items from from an iterator.

Chainable variant.

pub fn selected_id(&self) -> Option<usize>[src]

Returns the id of the item currently selected.

Returns None if the list is empty.

pub fn len(&self) -> usize[src]

Returns the number of items in this list.

pub fn is_empty(&self) -> bool[src]

Returns true if this list has no item.

pub fn set_selection(&mut self, i: usize) -> Callback[src]

Moves the selection to the given position.

Returns a callback in response to the selection change.

You should run this callback with a &mut Cursive.

pub fn selected(self, i: usize) -> Self[src]

Sets the selection to the given position.

Chainable variant.

Does not apply on_select callbacks.

pub fn select_up(&mut self, n: usize) -> Callback[src]

Moves the selection up by the given number of rows.

Returns a callback in response to the selection change.

You should run this callback with a &mut Cursive:

fn select_up(siv: &mut Cursive, view: &mut SelectView<()>) {
    let cb = view.select_up(1);
    cb(siv);
}

pub fn select_down(&mut self, n: usize) -> Callback[src]

Moves the selection down by the given number of rows.

Returns a callback in response to the selection change.

You should run this callback with a &mut Cursive.

impl SelectView<String>[src]

pub fn add_item_str<S: Into<String>>(&mut self, label: S)[src]

Convenient method to use the label as value.

pub fn item_str<S: Into<String>>(self, label: S) -> Self[src]

Chainable variant of add_item_str

pub fn insert_item_str<S>(&mut self, index: usize, label: S) where
    S: Into<String>, 
[src]

Convenient method to use the label as value.

pub fn add_all_str<S, I>(&mut self, iter: I) where
    S: Into<String>,
    I: IntoIterator<Item = S>, 
[src]

Adds all strings from an iterator.

Examples

let mut select_view = SelectView::new();
select_view.add_all_str(vec!["a", "b", "c"]);

pub fn with_all_str<S, I>(self, iter: I) -> Self where
    S: Into<String>,
    I: IntoIterator<Item = S>, 
[src]

Adds all strings from an iterator.

Chainable variant.

Trait Implementations

impl<T: 'static> View for SelectView<T>[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<'a>(&mut self, _: &Selector, _: AnyCb<'a>)[src]

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

impl<T: 'static> Default for SelectView<T>[src]

Auto Trait Implementations

impl<T = String> !Send for SelectView<T>

impl<T = String> !Sync for SelectView<T>

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

impl<T, U> TryInto 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> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T[src]