Module cosmic::widget::segmented_button
source · Expand description
A widget providing a conjoined set of linear items that function in conjunction as a single button.
§Example
Add the model and a message variant in your application for handling selections.
ⓘ
use iced_core::Length;
use cosmic::theme;
use cosmic::widget::segmented_button;
enum AppMessage {
Selected(segmented_button::Key)
}
struct App {
model: segmented_button::SingleSelectModel,
}
Then add choices to the model, while activating the first.
ⓘ
application.model = segmented_button::Model::builder()
.insert(|b| b.text("Choice A").data(0u16))
.insert(|b| b.text("Choice B").data(1u16))
.insert(|b| b.text("Choice C").data(2u16))
.build();
Or incrementally insert items with
ⓘ
let id = application.model.insert()
.text("Choice C")
.icon("custom-icon")
.data(3u16)
.data("custom-meta")
.id();
Then use it in the view method to create segmented button widgets.
ⓘ
let widget = segmented_button::horizontal(&application.model)
.style(theme::SegmentedButton::ViewSeitcher)
.button_height(32)
.button_padding([16, 10, 16, 10])
.button_spacing(8)
.icon_size(16)
.spacing(8)
.on_activate(AppMessage::Selected);
And respond to events like so:
ⓘ
match message {
AppMessage::Selected(id) => {
application.model.activate(id);
if let Some(number) = application.model.data::<u16>(id) {
println!("activated item with number {number}");
}
if let Some(text) = application.text(id) {
println!("activated button with text {text}");
}
}
}
Structs§
- Appearance of the segmented button.
- Constructs a new item for the
ModelBuilder
. - A unique ID for an item in the
Model
. - A newly-inserted item which may have additional actions applied to it.
- The iced identifier of a segmented button.
- Appearance of an item in the segmented button.
- Appearance of an item based on its status.
- The model held by the application, containing the unique IDs and data of each inserted item.
- A builder for a
Model
. Model<MultiSelect>
permits multiple keys to be active at a time.- A conjoined group of items that function together as a button.
Model<SingleSelect>
Ensures that only one key may be selected.
Traits§
- Isolates variant-specific behaviors from
SegmentedButton
. - Describes a type that has selectable items.
- Defines the
Appearance
of a segmented button.
Functions§
- A command that focuses a segmented item stored in a widget.
- Horizontal implementation of the
SegmentedButton
. - Vertical implementation of the
SegmentedButton
.
Type Aliases§
- Horizontal
SegmentedButton
. - Multi-select variant of an
EntityMut
. - A model for multi-select button selection.
- Associates extra data with an external secondary map.
- Single-select variant of an
EntityMut
. - A model for single-select button selection.
- Associates extra data with an external sparse secondary map.
- Vertical
SegmentedButton
.