From 47c0aeb7b9cef00d7793b2e84dc6e6a10c83552a Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:38:00 +0900 Subject: [PATCH] Add `Label::halign` (#4975) Function to specify `Align` to `Label` There are cases where you want to display `Label` on the left or right regardless of other `Layout` specifications. Before : Note the part showing the rust source code. ![20240818-1](https://github.com/user-attachments/assets/a08f7594-1ec1-4c6a-b96d-1a5f735d02c1) After : Note the part showing the rust source code. ![20240818-2](https://github.com/user-attachments/assets/807ff9cf-f8cd-4415-9c78-b62869d1696d) --------- Co-authored-by: Emil Ernerfeldt --- crates/egui/src/widgets/label.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/egui/src/widgets/label.rs b/crates/egui/src/widgets/label.rs index d2085d4f..55e20136 100644 --- a/crates/egui/src/widgets/label.rs +++ b/crates/egui/src/widgets/label.rs @@ -26,6 +26,7 @@ pub struct Label { wrap_mode: Option, sense: Option, selectable: Option, + halign: Option, } impl Label { @@ -35,6 +36,7 @@ impl Label { wrap_mode: None, sense: None, selectable: None, + halign: None, } } @@ -76,6 +78,13 @@ impl Label { self } + /// Sets the horizontal alignment of the Label to the given `Align` value. + #[inline] + pub fn halign(mut self, align: Align) -> Self { + self.halign = Some(align); + self + } + /// Can the user select the text with the mouse? /// /// Overrides [`crate::style::Interaction::selectable_labels`]. @@ -211,7 +220,7 @@ impl Label { layout_job.halign = Align::LEFT; layout_job.justify = false; } else { - layout_job.halign = ui.layout().horizontal_placement(); + layout_job.halign = self.halign.unwrap_or(ui.layout().horizontal_placement()); layout_job.justify = ui.layout().horizontal_justify(); };