rat_widget::choice

Struct ChoiceState

Source
pub struct ChoiceState<T = usize>
where T: PartialEq,
{ pub area: Rect, pub nav_char: Vec<Vec<char>>, pub keys: Vec<T>, pub item_area: Rect, pub button_area: Rect, pub item_areas: Vec<Rect>, pub selected: usize, pub popup: PopupCoreState, pub focus: FocusFlag, pub mouse: MouseFlags, pub non_exhaustive: NonExhaustive, }
Expand description

State.

Fields§

§area: Rect

Total area. read only. renewed with each render.

§nav_char: Vec<Vec<char>>

First char of each item for navigation. read only. renewed with each render.

§keys: Vec<T>

Key for each item. read only. renewed with each render.

§item_area: Rect

Item area in the main widget. read only. renewed with each render.

§button_area: Rect

Button area in the main widget. read only. renewed with each render.

§item_areas: Vec<Rect>

Visible items in the popup. read only. renewed with each render.

§selected: usize

Select item. read+write

§popup: PopupCoreState

Popup state.

§focus: FocusFlag

Focus flag. read+write

§mouse: MouseFlags

Mouse util.

§non_exhaustive: NonExhaustive

Implementations§

Source§

impl<T> ChoiceState<T>
where T: PartialEq,

Source

pub fn new() -> Self

Source

pub fn named(name: &str) -> Self

Source

pub fn is_popup_active(&self) -> bool

Popup is active?

Source

pub fn flip_popup_active(&mut self)

Flip the popup state.

Source

pub fn set_popup_active(&mut self, active: bool) -> bool

Show the popup.

Source

pub fn set_value(&mut self, key: &T) -> bool
where T: PartialEq,

Select the given value.

Returns false if there is no such value, or no items, or nothing changed.

Doesn’t change the selection if the given key doesn’t exist.

Source

pub fn try_value_ref(&self) -> Option<&T>

Get the selected value or None if there are no items.

Source

pub fn value_ref(&self) -> &T

Get the selected value.

Panic

Panics if there is no selection or no items.

Source

pub fn select(&mut self, select: usize) -> bool

Select the item.

Source

pub fn selected(&self) -> usize

Selected

Source

pub fn is_empty(&self) -> bool

Items?

Source

pub fn len(&self) -> usize

Number of items.

Source

pub fn clear_offset(&mut self)

Scroll offset for the item list.

Source

pub fn set_offset(&mut self, offset: usize) -> bool

Scroll offset for the item list.

Source

pub fn offset(&self) -> usize

Scroll offset for the item list.

Source

pub fn max_offset(&self) -> usize

Scroll offset for the item list.

Source

pub fn page_len(&self) -> usize

Page length for the item list.

Source

pub fn scroll_by(&self) -> usize

Scroll unit for the item list.

Source

pub fn scroll_to_selected(&mut self) -> bool

Scroll the item list to the selected value.

Source§

impl<T> ChoiceState<T>
where T: PartialEq + Clone,

Source

pub fn try_value(&self) -> Option<T>

Get the selected value or None there are no items.

Source

pub fn value(&self) -> T

Get the selected value.

Panic

Panics if there are no items.

Source§

impl<T> ChoiceState<T>
where T: PartialEq + Clone + Default,

Source

pub fn value_or_default(&self) -> T

Get the selected value or T::default() if there are no items.

Source§

impl<T> ChoiceState<T>
where T: PartialEq,

Source

pub fn select_by_char(&mut self, c: char) -> bool

Select by first character.

Source

pub fn move_to(&mut self, n: usize) -> bool

Select at position

Source

pub fn move_down(&mut self, n: usize) -> bool

Select next entry.

Source

pub fn move_up(&mut self, n: usize) -> bool

Select prev entry.

Trait Implementations§

Source§

impl<T> Clone for ChoiceState<T>
where T: Clone + PartialEq,

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T> Debug for ChoiceState<T>
where T: PartialEq + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Default for ChoiceState<T>
where T: PartialEq,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T: PartialEq> HandleEvent<Event, MouseOnly, Outcome> for ChoiceState<T>

Source§

fn handle(&mut self, event: &Event, _qualifier: MouseOnly) -> Outcome

Handle an event. Read more
Source§

impl<T: PartialEq> HandleEvent<Event, Popup, Outcome> for ChoiceState<T>

Source§

fn handle(&mut self, event: &Event, _qualifier: Popup) -> Outcome

Handle an event. Read more
Source§

impl<T: PartialEq> HandleEvent<Event, Regular, Outcome> for ChoiceState<T>

Source§

fn handle(&mut self, event: &Event, _qualifier: Regular) -> Outcome

Handle an event. Read more
Source§

impl<T> HasFocus for ChoiceState<T>
where T: PartialEq,

Source§

fn build(&self, builder: &mut FocusBuilder)

Build the focus-structure for the container.
Source§

fn focus(&self) -> FocusFlag

Access to the flag for the rest.
Source§

fn area(&self) -> Rect

Area for mouse focus. Read more
Source§

fn area_z(&self) -> u16

Z value for the area. Read more
Source§

fn navigable(&self) -> Navigation

Declares how the widget interacts with focus. Read more
Source§

fn is_focused(&self) -> bool

Focused?
Source§

fn lost_focus(&self) -> bool

Just lost focus.
Source§

fn gained_focus(&self) -> bool

Just gained focus.
Source§

impl<T> RelocatableState for ChoiceState<T>
where T: PartialEq,

Source§

fn relocate(&mut self, shift: (i16, i16), clip: Rect)

Relocate the areas in this widgets state.

Auto Trait Implementations§

§

impl<T = usize> !Freeze for ChoiceState<T>

§

impl<T = usize> !RefUnwindSafe for ChoiceState<T>

§

impl<T = usize> !Send for ChoiceState<T>

§

impl<T = usize> !Sync for ChoiceState<T>

§

impl<T> Unpin for ChoiceState<T>
where T: Unpin,

§

impl<T = usize> !UnwindSafe for ChoiceState<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.