Skip to main content

Segmented

Struct Segmented 

Source
pub struct Segmented<Msg> { /* private fields */ }
Expand description

Side-by-side segments of one surface, of which the filled one is chosen: for two to five short, mutually exclusive choices such as a view mode, where the choice should read at a glance.

The control takes focus as one: Left and Right choose the neighbouring segment, Home and End the first and last, and a click chooses the segment under the pointer. The application owns the choice.

Style keys: segment (bg, fg, bold, padding, pillar) with states hover, focus, checked, disabled. The pillar stands in the first cell of the hovered segment, or of the chosen one while the keyboard focuses the control.

Implementations§

Source§

impl<Msg> Segmented<Msg>

Source

pub fn new(options: impl IntoIterator<Item = impl Into<String>>) -> Self

Segments for options with the first chosen.

Source

pub fn selected(self, index: usize) -> Self

The chosen segment.

Source

pub fn disabled(self, disabled: bool) -> Self

Greys the control out; it cannot be focused or changed.

Source

pub fn on_select(self, message: impl Fn(usize) -> Msg + 'static) -> Self

Message for choosing segment index.

Trait Implementations§

Source§

impl<Msg: 'static> Widget<Msg> for Segmented<Msg>

Source§

fn measure(&self, cx: &mut MeasureCx<'_>, available: Size) -> Size

The size the widget wants when it may use up to available.
Source§

fn paint(&self, cx: &mut PaintCx<'_>, area: Rect)

Draws the widget into area.
Source§

fn event(&self, cx: &mut EventCx<'_, Msg>, event: &Event) -> bool

Handles input. Returns true when the event was used; unused key and scroll events bubble to the parent widget.
Source§

fn focusable(&self) -> bool

Whether the widget can take keyboard focus.
Source§

fn paint_overlay(&self, _cx: &mut PaintCx<'_>, _anchor: Rect)

Draws the widget’s overlay after the whole view was painted, when it asked for one with PaintCx::request_overlay. anchor is the area the widget was painted in.
Source§

fn children(&self) -> &[Node<Msg>]

Child nodes, for widgets that contain other widgets.
Source§

fn children_mut(&mut self) -> &mut [Node<Msg>]

Mutable child nodes, used to assign ids.

Auto Trait Implementations§

§

impl<Msg> !RefUnwindSafe for Segmented<Msg>

§

impl<Msg> !Send for Segmented<Msg>

§

impl<Msg> !Sync for Segmented<Msg>

§

impl<Msg> !UnwindSafe for Segmented<Msg>

§

impl<Msg> Freeze for Segmented<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: Freeze,

§

impl<Msg> Unpin for Segmented<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: Unpin,

§

impl<Msg> UnsafeUnpin for Segmented<Msg>
where Option<Box<dyn Fn(usize) -> Msg>>: UnsafeUnpin,

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.