SettingValue

Struct SettingValue 

Source
pub struct SettingValue {
    id: Id,
    rect: Rectangle,
    children: Vec<Box<dyn View>>,
    kind: Box<dyn SettingKind>,
    entries: Vec<EntryKind>,
    active_input: Option<ViewId>,
    active_file_chooser: bool,
}
Expand description

Represents a single setting value display in the settings UI.

This struct manages the display and interaction of a setting value and its associated UI widget (an ActionLabel, a sub-menu label, or a Toggle). It acts as a View that handles events via the SettingKind trait, updating the displayed text and sub-menu checked state when the underlying setting changes.

Fields§

§id: Id

Unique identifier for this setting value view

§rect: Rectangle

The rectangular area occupied by this view

§children: Vec<Box<dyn View>>

Child views — a single ActionLabel or Toggle widget, plus any active NamedInput overlay

§kind: Box<dyn SettingKind>

Retained so that SubMenu entries can be rebuilt with updated checked state each time UpdateValue is received, and to provide identity for routing SettingsEvent::UpdateValue without a separate field.

§entries: Vec<EntryKind>§active_input: Option<ViewId>

Tracks the ViewId of an active NamedInput child, if one is open.

§active_file_chooser: bool

Whether a FileChooser overlay is currently open as a child.

Implementations§

Source§

impl SettingValue

Source

pub fn new( kind: impl SettingKind + 'static, rect: Rectangle, settings: &Settings, fonts: &mut Fonts, ) -> SettingValue

Creates a new SettingValue for the given kind.

kind accepts any owned value that implements SettingKind, including references (&T), boxes (Box<T>), and concrete types directly. The value is erased into a Box<dyn SettingKind> internally, so the caller does not need to box it beforehand.

Source

fn build_child_view( &self, value: String, widget: WidgetKind, fonts: &mut Fonts, ) -> Box<dyn View>

Source

pub fn update( &mut self, value: String, settings: &Settings, rq: &mut RenderQueue, )

Source

pub fn value(&self) -> String

Trait Implementations§

Source§

impl Debug for SettingValue

Source§

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

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

impl View for SettingValue

Source§

fn handle_event( &mut self, evt: &Event, hub: &Hub, bus: &mut Bus, rq: &mut RenderQueue, context: &mut Context, ) -> bool

Handles events in three passes.

  1. Delegates to SettingKind::handle for direct mutation events such as submenu selections and toggle taps. When the kind handles the event it returns the updated display string, which is applied immediately.

  2. For InputSettingKind settings, opens a NamedInput overlay on the matching EntryId tap, applies the submitted text on Event::Submit, and closes the overlay on Event::Close or after submission.

  3. Falls back to SettingsEvent::UpdateValue routing so that LibraryEditor and other callers can push targeted display updates without going through the event bus.

Source§

fn render( &self, _fb: &mut dyn Framebuffer, _rect: Rectangle, _fonts: &mut Fonts, )

Source§

fn rect(&self) -> &Rectangle

Source§

fn rect_mut(&mut self) -> &mut Rectangle

Source§

fn children(&self) -> &Vec<Box<dyn View>>

Source§

fn children_mut(&mut self) -> &mut Vec<Box<dyn View>>

Source§

fn id(&self) -> Id

Source§

fn render_rect(&self, _rect: &Rectangle) -> Rectangle

Source§

fn resize( &mut self, rect: Rectangle, _hub: &Hub, _rq: &mut RenderQueue, _context: &mut Context, )

Source§

fn child(&self, index: usize) -> &dyn View

Source§

fn child_mut(&mut self, index: usize) -> &mut dyn View

Source§

fn len(&self) -> usize

Source§

fn might_skip(&self, _evt: &Event) -> bool

Source§

fn might_rotate(&self) -> bool

Source§

fn is_background(&self) -> bool

Source§

fn view_id(&self) -> Option<ViewId>

Auto Trait Implementations§

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
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more