@@ -56,20 +56,6 @@ impl Label {
single_line: false,
}
}
-
- /// Make the label display in a single line mode
- ///
- /// # Examples
- ///
- /// ```
- /// use ui::prelude::*;
- ///
- /// let my_label = Label::new("Hello, World!").single_line();
- /// ```
- pub fn single_line(mut self) -> Self {
- self.single_line = true;
- self
- }
}
// Style methods.
@@ -177,6 +163,12 @@ impl LabelCommon for Label {
self.base = self.base.underline(underline);
self
}
+
+ fn single_line(mut self) -> Self {
+ self.single_line = true;
+ self.base = self.base.single_line();
+ self
+ }
}
impl RenderOnce for Label {
@@ -49,6 +49,9 @@ pub trait LabelCommon {
/// Sets the alpha property of the label, overwriting the alpha value of the color.
fn alpha(self, alpha: f32) -> Self;
+
+ /// Sets the label to render as a single line.
+ fn single_line(self) -> Self;
}
#[derive(IntoElement)]
@@ -63,6 +66,7 @@ pub struct LabelLike {
children: SmallVec<[AnyElement; 2]>,
alpha: Option<f32>,
underline: bool,
+ single_line: bool,
}
impl Default for LabelLike {
@@ -84,6 +88,7 @@ impl LabelLike {
children: SmallVec::new(),
alpha: None,
underline: false,
+ single_line: false,
}
}
}
@@ -139,6 +144,11 @@ impl LabelCommon for LabelLike {
self.alpha = Some(alpha);
self
}
+
+ fn single_line(mut self) -> Self {
+ self.single_line = true;
+ self
+ }
}
impl ParentElement for LabelLike {
@@ -178,6 +188,7 @@ impl RenderOnce for LabelLike {
this
})
.when(self.strikethrough, |this| this.line_through())
+ .when(self.single_line, |this| this.whitespace_nowrap())
.text_color(color)
.font_weight(self.weight.unwrap_or(settings.ui_font.weight))
.children(self.children)