From 9fb10e5cabb303ed8e7583122b2f6d3bff9078a9 Mon Sep 17 00:00:00 2001 From: chompaa Date: Thu, 14 Mar 2024 22:27:21 -0400 Subject: [PATCH] Add `with_left`, `with_right`, `with_top`, `with_bottom` to `UiRect` --- crates/bevy_ui/src/geometry.rs | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/crates/bevy_ui/src/geometry.rs b/crates/bevy_ui/src/geometry.rs index c4cf096bc687d..b217bfa1b44dc 100644 --- a/crates/bevy_ui/src/geometry.rs +++ b/crates/bevy_ui/src/geometry.rs @@ -536,6 +536,82 @@ impl UiRect { ..Default::default() } } + + /// Returns the [`UiRect`] with its `left` field set to the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::all(Val::Px(20.0)).with_left(Val::Px(10.0)); + /// assert_eq!(ui_rect.left, Val::Px(10.0)); + /// assert_eq!(ui_rect.right, Val::Px(20.0)); + /// assert_eq!(ui_rect.top, Val::Px(20.0)); + /// assert_eq!(ui_rect.bottom, Val::Px(20.0)); + /// ``` + #[inline] + pub fn with_left(mut self, left: Val) -> Self { + self.left = left; + self + } + + /// Returns the [`UiRect`] with its `right` field set to the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::all(Val::Px(20.0)).with_right(Val::Px(10.0)); + /// assert_eq!(ui_rect.left, Val::Px(20.0)); + /// assert_eq!(ui_rect.right, Val::Px(10.0)); + /// assert_eq!(ui_rect.top, Val::Px(20.0)); + /// assert_eq!(ui_rect.bottom, Val::Px(20.0)); + /// ``` + #[inline] + pub fn with_right(mut self, right: Val) -> Self { + self.right = right; + self + } + + /// Returns the [`UiRect`] with its `top` field set to the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::all(Val::Px(20.0)).with_top(Val::Px(10.0)); + /// assert_eq!(ui_rect.left, Val::Px(20.0)); + /// assert_eq!(ui_rect.right, Val::Px(20.0)); + /// assert_eq!(ui_rect.top, Val::Px(10.0)); + /// assert_eq!(ui_rect.bottom, Val::Px(20.0)); + /// ``` + #[inline] + pub fn with_top(mut self, top: Val) -> Self { + self.top = top; + self + } + + /// Returns the [`UiRect`] with its `bottom` field set to the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::all(Val::Px(20.0)).with_bottom(Val::Px(10.0)); + /// assert_eq!(ui_rect.left, Val::Px(20.0)); + /// assert_eq!(ui_rect.right, Val::Px(20.0)); + /// assert_eq!(ui_rect.top, Val::Px(20.0)); + /// assert_eq!(ui_rect.bottom, Val::Px(10.0)); + /// ``` + #[inline] + pub fn with_bottom(mut self, bottom: Val) -> Self { + self.bottom = bottom; + self + } } impl Default for UiRect {