diff --git a/crates/bevy_ui/src/geometry.rs b/crates/bevy_ui/src/geometry.rs index bf0220eb3197d..13c8de3bbc7ce 100644 --- a/crates/bevy_ui/src/geometry.rs +++ b/crates/bevy_ui/src/geometry.rs @@ -184,6 +184,134 @@ impl UiRect { bottom: value, } } + + /// Creates a new [`UiRect`] where `left` and `right` take the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::horizontal(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Px(10.0)); + /// assert_eq!(ui_rect.right, Val::Px(10.0)); + /// assert_eq!(ui_rect.top, Val::Undefined); + /// assert_eq!(ui_rect.bottom, Val::Undefined); + /// ``` + pub fn horizontal(value: Val) -> Self { + UiRect { + left: value, + right: value, + ..Default::default() + } + } + + /// Creates a new [`UiRect`] where `top` and `bottom` take the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::vertical(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Undefined); + /// assert_eq!(ui_rect.right, Val::Undefined); + /// assert_eq!(ui_rect.top, Val::Px(10.0)); + /// assert_eq!(ui_rect.bottom, Val::Px(10.0)); + /// ``` + pub fn vertical(value: Val) -> Self { + UiRect { + top: value, + bottom: value, + ..Default::default() + } + } + + /// Creates a new [`UiRect`] where `left` takes the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::left(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Px(10.0)); + /// assert_eq!(ui_rect.right, Val::Undefined); + /// assert_eq!(ui_rect.top, Val::Undefined); + /// assert_eq!(ui_rect.bottom, Val::Undefined); + /// ``` + pub fn left(value: Val) -> Self { + UiRect { + left: value, + ..Default::default() + } + } + + /// Creates a new [`UiRect`] where `right` takes the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::right(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Undefined); + /// assert_eq!(ui_rect.right, Val::Px(10.0)); + /// assert_eq!(ui_rect.top, Val::Undefined); + /// assert_eq!(ui_rect.bottom, Val::Undefined); + /// ``` + pub fn right(value: Val) -> Self { + UiRect { + right: value, + ..Default::default() + } + } + + /// Creates a new [`UiRect`] where `top` takes the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::top(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Undefined); + /// assert_eq!(ui_rect.right, Val::Undefined); + /// assert_eq!(ui_rect.top, Val::Px(10.0)); + /// assert_eq!(ui_rect.bottom, Val::Undefined); + /// ``` + pub fn top(value: Val) -> Self { + UiRect { + top: value, + ..Default::default() + } + } + + /// Creates a new [`UiRect`] where `bottom` takes the given value. + /// + /// # Example + /// + /// ``` + /// # use bevy_ui::{UiRect, Val}; + /// # + /// let ui_rect = UiRect::bottom(Val::Px(10.0)); + /// + /// assert_eq!(ui_rect.left, Val::Undefined); + /// assert_eq!(ui_rect.right, Val::Undefined); + /// assert_eq!(ui_rect.top, Val::Undefined); + /// assert_eq!(ui_rect.bottom, Val::Px(10.0)); + /// ``` + pub fn bottom(value: Val) -> Self { + UiRect { + bottom: value, + ..Default::default() + } + } } /// A 2-dimensional area defined by a width and height.