ui: Ensure Label
with single_line
set does not wrap (#21444)
Release Notes: - N/A --- Split from #21438, this change for make sure the `single_line` mode Label will not be wrap. --------- Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This commit is contained in:
parent
41a973b13f
commit
afb253b406
3 changed files with 22 additions and 14 deletions
|
@ -65,6 +65,11 @@ impl LabelCommon for HighlightedLabel {
|
||||||
self.base = self.base.underline(underline);
|
self.base = self.base.underline(underline);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn single_line(mut self) -> Self {
|
||||||
|
self.base = self.base.single_line();
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn highlight_ranges(
|
pub fn highlight_ranges(
|
||||||
|
|
|
@ -56,20 +56,6 @@ impl Label {
|
||||||
single_line: false,
|
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.
|
// Style methods.
|
||||||
|
@ -177,6 +163,12 @@ impl LabelCommon for Label {
|
||||||
self.base = self.base.underline(underline);
|
self.base = self.base.underline(underline);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn single_line(mut self) -> Self {
|
||||||
|
self.single_line = true;
|
||||||
|
self.base = self.base.single_line();
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RenderOnce for Label {
|
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.
|
/// Sets the alpha property of the label, overwriting the alpha value of the color.
|
||||||
fn alpha(self, alpha: f32) -> Self;
|
fn alpha(self, alpha: f32) -> Self;
|
||||||
|
|
||||||
|
/// Sets the label to render as a single line.
|
||||||
|
fn single_line(self) -> Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(IntoElement)]
|
#[derive(IntoElement)]
|
||||||
|
@ -63,6 +66,7 @@ pub struct LabelLike {
|
||||||
children: SmallVec<[AnyElement; 2]>,
|
children: SmallVec<[AnyElement; 2]>,
|
||||||
alpha: Option<f32>,
|
alpha: Option<f32>,
|
||||||
underline: bool,
|
underline: bool,
|
||||||
|
single_line: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for LabelLike {
|
impl Default for LabelLike {
|
||||||
|
@ -84,6 +88,7 @@ impl LabelLike {
|
||||||
children: SmallVec::new(),
|
children: SmallVec::new(),
|
||||||
alpha: None,
|
alpha: None,
|
||||||
underline: false,
|
underline: false,
|
||||||
|
single_line: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,6 +144,11 @@ impl LabelCommon for LabelLike {
|
||||||
self.alpha = Some(alpha);
|
self.alpha = Some(alpha);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn single_line(mut self) -> Self {
|
||||||
|
self.single_line = true;
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ParentElement for LabelLike {
|
impl ParentElement for LabelLike {
|
||||||
|
@ -178,6 +188,7 @@ impl RenderOnce for LabelLike {
|
||||||
this
|
this
|
||||||
})
|
})
|
||||||
.when(self.strikethrough, |this| this.line_through())
|
.when(self.strikethrough, |this| this.line_through())
|
||||||
|
.when(self.single_line, |this| this.whitespace_nowrap())
|
||||||
.text_color(color)
|
.text_color(color)
|
||||||
.font_weight(self.weight.unwrap_or(settings.ui_font.weight))
|
.font_weight(self.weight.unwrap_or(settings.ui_font.weight))
|
||||||
.children(self.children)
|
.children(self.children)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue