pub struct ChoiceMenu<'a> { /* private fields */ }Expand description
ChoiceMenu component - generates choice content and sensitive zones for BoxRenderer
This component handles choice logic (selection, waiting states, content generation) and outputs content strings and sensitive zones that BoxRenderer treats like any other content.
Implementations§
Source§impl<'a> ChoiceMenu<'a>
impl<'a> ChoiceMenu<'a>
Sourcepub fn with_selection(self, selected_index: Option<usize>) -> Self
pub fn with_selection(self, selected_index: Option<usize>) -> Self
Set the selected choice index
Sourcepub fn with_focus(self, focused_index: Option<usize>) -> Self
pub fn with_focus(self, focused_index: Option<usize>) -> Self
Set the focused choice index for keyboard navigation
Sourcepub fn get_raw_content(&self) -> String
pub fn get_raw_content(&self) -> String
Get content as raw string for BoxRenderer to handle like text content
Sourcepub fn get_box_relative_sensitive_zones_with_width(
&self,
available_width: usize,
) -> Vec<SensitiveZone>
pub fn get_box_relative_sensitive_zones_with_width( &self, available_width: usize, ) -> Vec<SensitiveZone>
Generate sensitive zones accounting for text wrapping at specified width
Sourcepub fn generate_choice_lines(&self) -> Vec<String>
pub fn generate_choice_lines(&self) -> Vec<String>
Generate the formatted choice lines as they will actually be rendered
Trait Implementations§
Source§impl<'a> RenderableContent for ChoiceMenu<'a>
impl<'a> RenderableContent for ChoiceMenu<'a>
Source§fn get_raw_content(&self) -> String
fn get_raw_content(&self) -> String
Get the raw content as a string
Source§fn get_box_relative_sensitive_zones(&self) -> Vec<SensitiveZone>
fn get_box_relative_sensitive_zones(&self) -> Vec<SensitiveZone>
Get sensitive zones in box-relative coordinates (0,0 = top-left of content area)
Source§fn handle_event(&mut self, event: &ContentEvent) -> EventResult
fn handle_event(&mut self, event: &ContentEvent) -> EventResult
Handle content events on choice menu Note: This doesn’t mutate the choices directly - that’s handled at the MuxBox level
Source§fn get_dimensions(&self) -> (usize, usize)
fn get_dimensions(&self) -> (usize, usize)
Get the raw content dimensions before any transformations
Auto Trait Implementations§
impl<'a> Freeze for ChoiceMenu<'a>
impl<'a> RefUnwindSafe for ChoiceMenu<'a>
impl<'a> Send for ChoiceMenu<'a>
impl<'a> Sync for ChoiceMenu<'a>
impl<'a> Unpin for ChoiceMenu<'a>
impl<'a> UnsafeUnpin for ChoiceMenu<'a>
impl<'a> UnwindSafe for ChoiceMenu<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.