Add large variant for buttons

This commit is contained in:
Marshall Bowers 2023-12-20 18:47:22 -05:00
parent 93c8bee747
commit 11807bb82d
3 changed files with 13 additions and 0 deletions

View File

@ -255,6 +255,7 @@ impl Render for BufferSearchBar {
.child(
ToggleButton::new("search-mode-text", SearchMode::Text.label())
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.selected(self.current_mode == SearchMode::Text)
.on_click(cx.listener(move |_, _event, cx| {
cx.dispatch_action(SearchMode::Text.action())
@ -271,6 +272,7 @@ impl Render for BufferSearchBar {
.child(
ToggleButton::new("search-mode-regex", SearchMode::Regex.label())
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.selected(self.current_mode == SearchMode::Regex)
.on_click(cx.listener(move |_, _event, cx| {
cx.dispatch_action(SearchMode::Regex.action())

View File

@ -233,6 +233,7 @@ impl ButtonStyle {
/// that are consistently sized with buttons.
#[derive(Default, PartialEq, Clone, Copy)]
pub enum ButtonSize {
Large,
#[default]
Default,
Compact,
@ -242,6 +243,7 @@ pub enum ButtonSize {
impl ButtonSize {
fn height(self) -> Rems {
match self {
ButtonSize::Large => rems(32. / 16.),
ButtonSize::Default => rems(22. / 16.),
ButtonSize::Compact => rems(18. / 16.),
ButtonSize::None => rems(16. / 16.),
@ -377,6 +379,7 @@ impl RenderOnce for ButtonLike {
})
.gap_1()
.map(|this| match self.size {
ButtonSize::Large => this.px_2(),
ButtonSize::Default | ButtonSize::Compact => this.px_1(),
ButtonSize::None => this,
})

View File

@ -31,21 +31,25 @@ impl Render for ToggleButtonStory {
.child(
ToggleButton::new(1, "Apple")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.first(),
)
.child(
ToggleButton::new(2, "Banana")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.middle(),
)
.child(
ToggleButton::new(3, "Cherry")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.middle(),
)
.child(
ToggleButton::new(4, "Dragonfruit")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.last(),
),
)
@ -61,22 +65,26 @@ impl Render for ToggleButtonStory {
.child(
ToggleButton::new(1, "Apple")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.first(),
)
.child(
ToggleButton::new(2, "Banana")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.selected(true)
.middle(),
)
.child(
ToggleButton::new(3, "Cherry")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.middle(),
)
.child(
ToggleButton::new(4, "Dragonfruit")
.style(ButtonStyle::Filled)
.size(ButtonSize::Large)
.last(),
),
)