ToggleSwitch

Struct ToggleSwitch 

Source
pub struct ToggleSwitch<'a> { /* private fields */ }
Expand description

A toggle switch widget that provides an animated on/off control with a sliding knob.

The ToggleSwitch widget creates a visual control that allows users to toggle between two states (on/off). It features a sliding knob that moves horizontally across a track to indicate the current state.

The widget supports:

  • Customizable width and height
  • Theme-based colors for active/inactive states
  • Interactive hover and click effects
  • Integration with Kolibri’s smartstate system for efficient rendering

§Examples

let mut state = false;

// Create a basic toggle switch
ui.add(ToggleSwitch::new(&mut state));

// Create a custom-sized toggle switch
ui.add(ToggleSwitch::new(&mut state)
    .width(60)
    .height(30));

Implementations§

Source§

impl<'a> ToggleSwitch<'a>

Source

pub fn new(active: &'a mut bool) -> ToggleSwitch<'a>

Creates a new ToggleSwitch instance with the provided mutable reference to the active state.

The new ToggleSwitch will have a default width of 50 pixels and a height of 25 pixels.

Source

pub fn smartstate(self, smartstate: &'a mut Smartstate) -> Self

Adds a Smartstate to the toggle switch for incremental redrawing.

The smartstate is used to efficiently manage the rendering of the toggle switch. Through this Smartstate, the toggle switch can leverage the smartstate system to avoid unnecessary redraws and improve performance.

Source

pub fn width(self, width: u32) -> Self

Sets the width of the toggle switch.

The width determines the horizontal size of the switch’s track. A minimum width of 30 pixels is enforced to ensure proper rendering and usability.

§Examples
let mut state = false;
ui.add(ToggleSwitch::new(&mut state).width(60));
Source

pub fn height(self, height: u32) -> Self

Sets the height of the toggle switch.

The height determines the vertical size of the switch’s track and knob. A minimum height of 15 pixels is enforced to ensure proper rendering and usability.

§Examples
let mut state = false;

loop {
    // [...]
    ui.add(ToggleSwitch::new(&mut state).height(30).width(60));
}

Trait Implementations§

Source§

impl Widget for ToggleSwitch<'_>

Source§

fn draw<DRAW: DrawTarget<Color = COL>, COL: PixelColor>( &mut self, ui: &mut Ui<'_, DRAW, COL>, ) -> GuiResult<Response>

Auto Trait Implementations§

§

impl<'a> Freeze for ToggleSwitch<'a>

§

impl<'a> RefUnwindSafe for ToggleSwitch<'a>

§

impl<'a> Send for ToggleSwitch<'a>

§

impl<'a> Sync for ToggleSwitch<'a>

§

impl<'a> Unpin for ToggleSwitch<'a>

§

impl<'a> !UnwindSafe for ToggleSwitch<'a>

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.