Struct cosmic::widget::segmented_button::Model

source ·
pub struct Model<SelectionMode: Default> { /* private fields */ }
Expand description

The model held by the application, containing the unique IDs and data of each inserted item.

Implementations§

source§

impl Model<SingleSelect>

source

pub fn active_data<Data: 'static>(&self) -> Option<&Data>

Get an immutable reference to the data associated with the active item.

source

pub fn active_data_mut<Data: 'static>(&mut self) -> Option<&mut Data>

Get a mutable reference to the data associated with the active item.

source

pub fn deactivate(&mut self)

Deactivates the active item.

source

pub fn active(&self) -> Entity

The ID of the active item.

source§

impl Model<MultiSelect>

source

pub fn deactivate(&mut self, id: Entity)

Deactivates the item in the model.

source

pub fn active(&self) -> impl Iterator<Item = Entity> + '_

The IDs of the active items.

source§

impl<SelectionMode: Default> Model<SelectionMode>
where Self: Selectable,

source

pub fn activate(&mut self, id: Entity)

Activates the item in the model.

model.activate(id);
source

pub fn activate_position(&mut self, position: u16) -> bool

Activates the item at the given position, returning true if it was activated.

source

pub fn builder() -> ModelBuilder<SelectionMode>

Creates a builder for initializing a model.

let model = segmented_button::Model::builder()
    .insert(|b| b.text("Item A").activate())
    .insert(|b| b.text("Item B"))
    .insert(|b| b.text("Item C"))
    .build();
source

pub fn clear(&mut self)

Removes all items from the model.

Any IDs held elsewhere by the application will no longer be usable with the map. The generation is incremented on removal, so the stale IDs will return None for any attempt to get values from the map.

model.clear();
source

pub fn closable_set(&mut self, id: Entity, closable: bool)

Shows or hides the item’s close button.

source

pub fn contains_item(&self, id: Entity) -> bool

Check if an item exists in the map.

if model.contains_item(id) {
    println!("ID is still valid");
}
source

pub fn data<Data: 'static>(&self, id: Entity) -> Option<&Data>

Get an immutable reference to data associated with an item.

if let Some(data) = model.data::<String>(id) {
    println!("found string on {:?}: {}", id, data);
}
source

pub fn data_mut<Data: 'static>(&mut self, id: Entity) -> Option<&mut Data>

Get a mutable reference to data associated with an item.

source

pub fn data_set<Data: 'static>(&mut self, id: Entity, data: Data)

Associates data with the item.

There may only be one data component per Rust type.

model.data_set::<String>(id, String::from("custom string"));
source

pub fn data_remove<Data: 'static>(&mut self, id: Entity)

Removes a specific data type from the item.

model.data.remove::<String>(id);
source

pub fn divider_above(&self, id: Entity) -> Option<bool>

source

pub fn divider_above_set( &mut self, id: Entity, divider_above: bool, ) -> Option<bool>

source

pub fn divider_above_remove(&mut self, id: Entity) -> Option<bool>

source

pub fn enable(&mut self, id: Entity, enable: bool)

Enable or disable an item.

model.enable(id, true);
source

pub fn entity_at(&mut self, position: u16) -> Option<Entity>

Get the item that is located at a given position.

source

pub fn icon(&self, id: Entity) -> Option<&Icon>

Immutable reference to the icon associated with the item.

if let Some(icon) = model.icon(id) {
    println!("has icon: {:?}", icon);
}
source

pub fn icon_set(&mut self, id: Entity, icon: Icon) -> Option<Icon>

Sets a new icon for an item.

if let Some(old_icon) = model.icon_set(IconSource::from("new-icon")) {
    println!("previously had icon: {:?}", old_icon);
}
source

pub fn icon_remove(&mut self, id: Entity) -> Option<Icon>

Removes the icon from an item.

if let Some(old_icon) = model.icon_remove(id) {
    println!("previously had icon: {:?}", old_icon);
}
source

pub fn insert(&mut self) -> EntityMut<'_, SelectionMode>

Inserts a new item in the model.

let id = model.insert().text("Item A").icon("custom-icon").id();
source

pub fn is_active(&self, id: Entity) -> bool

Check if the given ID is the active ID.

source

pub fn is_closable(&self, id: Entity) -> bool

Whether the item should contain a close button.

source

pub fn is_enabled(&self, id: Entity) -> bool

Check if the item is enabled.

if model.is_enabled(id) {
    if let Some(text) = model.text(id) {
        println!("{text} is enabled");
    }
}
source

pub fn iter(&self) -> impl Iterator<Item = Entity> + '_

Iterates across items in the model in the order that they are displayed.

source

pub fn indent(&self, id: Entity) -> Option<u16>

source

pub fn indent_set(&mut self, id: Entity, indent: u16) -> Option<u16>

source

pub fn indent_remove(&mut self, id: Entity) -> Option<u16>

source

pub fn position(&self, id: Entity) -> Option<u16>

The position of the item in the model.

if let Some(position) = model.position(id) {
    println!("found item at {}", position);
}
source

pub fn position_set(&mut self, id: Entity, position: u16) -> Option<usize>

Change the position of an item in the model.

if let Some(new_position) = model.position_set(id, 0) {
    println!("placed item at {}", new_position);
}
source

pub fn position_swap(&mut self, first: Entity, second: Entity) -> bool

Swap the position of two items in the model.

Returns false if the swap cannot be performed.

if model.position_swap(first_id, second_id) {
    println!("positions swapped");
}
source

pub fn remove(&mut self, id: Entity)

Removes an item from the model.

The generation of the slot for the ID will be incremented, so this ID will no longer be usable with the map. Subsequent attempts to get values from the map with this ID will return None and failed to assign values.

source

pub fn text(&self, id: Entity) -> Option<&str>

Immutable reference to the text assigned to the item.

if let Some(text) = model.text(id) {
    println!("{:?} has text {text}", id);
}
source

pub fn text_set( &mut self, id: Entity, text: impl Into<Cow<'static, str>>, ) -> Option<Cow<'_, str>>

Sets new text for an item.

if let Some(old_text) = model.text_set(id, "Item B") {
    println!("{:?} had text {}", id, old_text)
}
source

pub fn text_remove(&mut self, id: Entity) -> Option<Cow<'static, str>>

Removes text from an item.

if let Some(old_text) = model.text_remove(id) {
    println!("{:?} had text {}", id, old_text);
}

Trait Implementations§

source§

impl<SelectionMode: Default + Default> Default for Model<SelectionMode>

source§

fn default() -> Model<SelectionMode>

Returns the “default value” for a type. Read more
source§

impl Selectable for Model<MultiSelect>

source§

fn activate(&mut self, id: Entity)

Activate an item.
source§

fn deactivate(&mut self, id: Entity)

Deactivate an item.
source§

fn is_active(&self, id: Entity) -> bool

Checks if the item is active.
source§

impl Selectable for Model<SingleSelect>

source§

fn activate(&mut self, id: Entity)

Activate an item.
source§

fn deactivate(&mut self, id: Entity)

Deactivate an item.
source§

fn is_active(&self, id: Entity) -> bool

Checks if the item is active.

Auto Trait Implementations§

§

impl<SelectionMode> Freeze for Model<SelectionMode>
where SelectionMode: Freeze,

§

impl<SelectionMode> !RefUnwindSafe for Model<SelectionMode>

§

impl<SelectionMode> !Send for Model<SelectionMode>

§

impl<SelectionMode> !Sync for Model<SelectionMode>

§

impl<SelectionMode> Unpin for Model<SelectionMode>
where SelectionMode: Unpin,

§

impl<SelectionMode> !UnwindSafe for Model<SelectionMode>

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
source§

impl<T> Also for T

source§

fn also<F>(self, block: F) -> Self
where F: FnOnce(&mut Self),

Apply a function to this value and return the (possibly) modified value.
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, Res> Apply<Res> for T
where T: ?Sized,

source§

fn apply<F>(self, f: F) -> Res
where F: FnOnce(Self) -> Res, Self: Sized,

Apply a function which takes the parameter by value.
source§

fn apply_ref<F>(&self, f: F) -> Res
where F: FnOnce(&Self) -> Res,

Apply a function which takes the parameter by reference.
source§

fn apply_mut<F>(&mut self, f: F) -> Res
where F: FnOnce(&mut Self) -> Res,

Apply a function which takes the parameter by mutable reference.
source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
source§

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

source§

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

Convert 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>

Convert 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)

Convert &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)

Convert &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.

source§

impl<T> FromAngle<T> for T

source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
source§

impl<T> Instrument for T

source§

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

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

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, U> IntoAngle<U> for T
where U: FromAngle<T>,

source§

fn into_angle(self) -> U

Performs a conversion into T.
source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
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> IntoStimulus<T> for T

source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
source§

impl<T> NoneValue for T
where T: Default,

source§

type NoneType = T

source§

fn null_value() -> T

The none-equivalent value.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
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, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T