Import
use maccn::{MacSegment, MacSegmentedControl};Usage
MacSegmentedControl::new("view-toggle")
.child(MacSegment::new("list").selected(true).child("List"))
.child(MacSegment::new("grid").child("Grid"))
.child(MacSegment::new("columns").child("Columns"));Multiple
use maccn::{MacSegment, MacSegmentedControl};
MacSegmentedControl::new("segmented-multiple")
.w(px(220.))
.child(
MacSegment::new("seg-m-0")
.selected(selected.contains(&0))
.child("B")
.on_click({ ... }),
)
.child(
MacSegment::new("seg-m-1")
.selected(selected.contains(&1))
.child("I")
.on_click({ ... }),
)
.child(
MacSegment::new("seg-m-2")
.selected(selected.contains(&2))
.child("U")
.on_click({ ... }),
)Sizes
use gpui::div;
use maccn::{MacControlSize, MacSegment, MacSegmentedControl};
div()
.flex()
.items_center()
.gap_2()
.child(
MacSegmentedControl::new("segmented-xl")
.size(MacControlSize::ExtraLarge)
.w(px(320.))
.child(MacSegment::new("seg-xl-0").selected(true).child("Left"))
.child(MacSegment::new("seg-xl-1").child("Right")),
)
.child(
MacSegmentedControl::new("segmented-m")
.size(MacControlSize::Mini)
.w(px(140.))
.child(MacSegment::new("seg-m-0").selected(true).child("On"))
.child(MacSegment::new("seg-m-1").child("Off")),
)Disabled
use gpui::div;
use maccn::{MacSegment, MacSegmentedControl};
div()
.flex()
.flex_col()
.gap_2()
.child(
MacSegmentedControl::new("segmented-d")
.w(px(220.))
.disabled(true)
.child(MacSegment::new("seg-d-0").selected(true).child("On"))
.child(MacSegment::new("seg-d-1").child("Off")),
)API
MacSegmentedControl Props
| Prop | Type | Default |
|---|---|---|
size | MacControlSize | Regular |
disabled | bool | false |
MacSegment Props
| Prop | Type | Default |
|---|---|---|
selected | bool | false |
size | MacControlSize | Regular |
disabled | bool | false |
Events
| Event | Payload |
|---|---|
on_click | (&ClickEvent, &mut Window, &mut App) |