From 56cfc60875f6105fb3bd2fece6427bdaa1cbde4e Mon Sep 17 00:00:00 2001 From: Agus Zubiaga Date: Sun, 9 Feb 2025 15:23:39 -0300 Subject: [PATCH] ui: Add `buffer_font` method to labels (#24479) Now you don't need to wrap the `Label` in a `div` anymore Release Notes: - N/A Co-authored-by: Danilo --- crates/ui/src/components/label/highlighted_label.rs | 5 +++++ crates/ui/src/components/label/label.rs | 5 +++++ crates/ui/src/components/label/label_like.rs | 10 ++++++++++ crates/ui/src/styles/color.rs | 6 ++++++ 4 files changed, 26 insertions(+) diff --git a/crates/ui/src/components/label/highlighted_label.rs b/crates/ui/src/components/label/highlighted_label.rs index d528f47218..14ea7a5cf1 100644 --- a/crates/ui/src/components/label/highlighted_label.rs +++ b/crates/ui/src/components/label/highlighted_label.rs @@ -75,6 +75,11 @@ impl LabelCommon for HighlightedLabel { self.base = self.base.single_line(); self } + + fn buffer_font(mut self, cx: &App) -> Self { + self.base = self.base.buffer_font(cx); + self + } } pub fn highlight_ranges( diff --git a/crates/ui/src/components/label/label.rs b/crates/ui/src/components/label/label.rs index 5f170b9a15..ff2687d047 100644 --- a/crates/ui/src/components/label/label.rs +++ b/crates/ui/src/components/label/label.rs @@ -172,6 +172,11 @@ impl LabelCommon for Label { self.base = self.base.single_line(); self } + + fn buffer_font(mut self, cx: &App) -> Self { + self.base = self.base.buffer_font(cx); + self + } } impl RenderOnce for Label { diff --git a/crates/ui/src/components/label/label_like.rs b/crates/ui/src/components/label/label_like.rs index c9674f10a0..fad24d8699 100644 --- a/crates/ui/src/components/label/label_like.rs +++ b/crates/ui/src/components/label/label_like.rs @@ -55,6 +55,9 @@ pub trait LabelCommon { /// Sets the label to render as a single line. fn single_line(self) -> Self; + + /// Sets the font to the buffer's + fn buffer_font(self, cx: &App) -> Self; } #[derive(IntoElement)] @@ -159,6 +162,13 @@ impl LabelCommon for LabelLike { self.single_line = true; self } + + fn buffer_font(mut self, cx: &App) -> Self { + self.base = self + .base + .font(theme::ThemeSettings::get_global(cx).buffer_font.clone()); + self + } } impl ParentElement for LabelLike { diff --git a/crates/ui/src/styles/color.rs b/crates/ui/src/styles/color.rs index a8cf1d51e5..0d234ad50d 100644 --- a/crates/ui/src/styles/color.rs +++ b/crates/ui/src/styles/color.rs @@ -86,3 +86,9 @@ impl Color { } } } + +impl From for Color { + fn from(color: Hsla) -> Self { + Color::Custom(color) + } +}