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: IdUnique identifier for this setting value view
rect: RectangleThe 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: boolWhether a FileChooser overlay is currently open as a child.
Implementations§
Source§impl SettingValue
impl SettingValue
Sourcepub fn new(
kind: impl SettingKind + 'static,
rect: Rectangle,
settings: &Settings,
fonts: &mut Fonts,
) -> SettingValue
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.
fn build_child_view( &self, value: String, widget: WidgetKind, fonts: &mut Fonts, ) -> Box<dyn View>
pub fn update( &mut self, value: String, settings: &Settings, rq: &mut RenderQueue, )
pub fn value(&self) -> String
Trait Implementations§
Source§impl Debug for SettingValue
impl Debug for SettingValue
Source§impl View for SettingValue
impl View for SettingValue
Source§fn handle_event(
&mut self,
evt: &Event,
hub: &Hub,
bus: &mut Bus,
rq: &mut RenderQueue,
context: &mut Context,
) -> bool
fn handle_event( &mut self, evt: &Event, hub: &Hub, bus: &mut Bus, rq: &mut RenderQueue, context: &mut Context, ) -> bool
Handles events in three passes.
-
Delegates to
SettingKind::handlefor 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. -
For
InputSettingKindsettings, opens aNamedInputoverlay on the matchingEntryIdtap, applies the submitted text onEvent::Submit, and closes the overlay onEvent::Closeor after submission. -
Falls back to
SettingsEvent::UpdateValuerouting so thatLibraryEditorand other callers can push targeted display updates without going through the event bus.
fn render( &self, _fb: &mut dyn Framebuffer, _rect: Rectangle, _fonts: &mut Fonts, )
fn rect(&self) -> &Rectangle
fn rect_mut(&mut self) -> &mut Rectangle
fn children(&self) -> &Vec<Box<dyn View>>
fn children_mut(&mut self) -> &mut Vec<Box<dyn View>>
fn id(&self) -> Id
fn render_rect(&self, _rect: &Rectangle) -> Rectangle
fn resize( &mut self, rect: Rectangle, _hub: &Hub, _rq: &mut RenderQueue, _context: &mut Context, )
fn child(&self, index: usize) -> &dyn View
fn child_mut(&mut self, index: usize) -> &mut dyn View
fn len(&self) -> usize
fn might_skip(&self, _evt: &Event) -> bool
fn might_rotate(&self) -> bool
fn is_background(&self) -> bool
fn view_id(&self) -> Option<ViewId>
Auto Trait Implementations§
impl Freeze for SettingValue
impl !RefUnwindSafe for SettingValue
impl !Send for SettingValue
impl !Sync for SettingValue
impl Unpin for SettingValue
impl !UnwindSafe for SettingValue
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§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>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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