Struct titanium::desktop::gui::libdruid::BoxConstraints
pub struct BoxConstraints { /* private fields */ }
Expand description
Constraints for layout.
The layout strategy for Druid is strongly inspired by Flutter, and this struct is similar to the Flutter BoxConstraints class.
At the moment, it represents simply a minimum and maximum size.
A widget’s layout
method should choose an appropriate size that
meets these constraints.
Further, a container widget should compute appropriate constraints for each of its child widgets, and pass those down when recursing.
The constraints are always rounded away from zero to integers to enable pixel perfect layout.
Implementations§
§impl BoxConstraints
impl BoxConstraints
pub const UNBOUNDED: BoxConstraints = BoxConstraints{
min: Size::ZERO,
max: Size::new(f64::INFINITY, f64::INFINITY),}
pub const UNBOUNDED: BoxConstraints = BoxConstraints{ min: Size::ZERO, max: Size::new(f64::INFINITY, f64::INFINITY),}
An unbounded box constraints object.
Can be satisfied by any nonnegative size.
pub fn new(min: Size, max: Size) -> BoxConstraints
pub fn new(min: Size, max: Size) -> BoxConstraints
Create a new box constraints object.
Create constraints based on minimum and maximum size.
The given sizes are also rounded away from zero, so that the layout is aligned to integers.
pub fn tight(size: Size) -> BoxConstraints
pub fn tight(size: Size) -> BoxConstraints
Create a “tight” box constraints object.
A “tight” constraint can only be satisfied by a single size.
The given size is also rounded away from zero, so that the layout is aligned to integers.
pub fn loosen(&self) -> BoxConstraints
pub fn loosen(&self) -> BoxConstraints
Create a “loose” version of the constraints.
Make a version with zero minimum size, but the same maximum size.
pub fn constrain(&self, size: impl Into<Size>) -> Size
pub fn constrain(&self, size: impl Into<Size>) -> Size
Clamp a given size so that it fits within the constraints.
The given size is also rounded away from zero, so that the layout is aligned to integers.
pub fn is_width_bounded(&self) -> bool
pub fn is_width_bounded(&self) -> bool
Whether there is an upper bound on the width.
pub fn is_height_bounded(&self) -> bool
pub fn is_height_bounded(&self) -> bool
Whether there is an upper bound on the height.
pub fn debug_check(&self, name: &str)
pub fn debug_check(&self, name: &str)
Check to see if these constraints are legit.
Logs a warning if BoxConstraints are invalid.
pub fn shrink(&self, diff: impl Into<Size>) -> BoxConstraints
pub fn shrink(&self, diff: impl Into<Size>) -> BoxConstraints
Shrink min and max constraints by size
The given size is also rounded away from zero, so that the layout is aligned to integers.
pub fn contains(&self, size: impl Into<Size>) -> bool
pub fn contains(&self, size: impl Into<Size>) -> bool
Test whether these constraints contain the given Size
.
pub fn constrain_aspect_ratio(&self, aspect_ratio: f64, width: f64) -> Size
pub fn constrain_aspect_ratio(&self, aspect_ratio: f64, width: f64) -> Size
Find the Size
within these BoxConstraint
s that minimises the difference between the
returned Size
’s aspect ratio and aspect_ratio
, where aspect ratio is defined as
height / width
.
If multiple Size
s give the optimal aspect_ratio
, then the one with the width
nearest
the supplied width will be used. Specifically, if width == 0.0
then the smallest possible
Size
will be chosen, and likewise if width == f64::INFINITY
, then the largest Size
will be chosen.
Use this function when maintaining an aspect ratio is more important than minimizing the distance between input and output size width and height.
pub fn unbound_max(&self, axis: Axis) -> BoxConstraints
pub fn unbound_max(&self, axis: Axis) -> BoxConstraints
Sets the max on a given axis to infinity.
pub fn unbound_max_width(&self) -> BoxConstraints
pub fn unbound_max_width(&self) -> BoxConstraints
Sets max width to infinity.
pub fn unbound_max_height(&self) -> BoxConstraints
pub fn unbound_max_height(&self) -> BoxConstraints
Sets max height to infinity.
pub fn shrink_max_to(&self, axis: Axis, dim: f64) -> BoxConstraints
pub fn shrink_max_to(&self, axis: Axis, dim: f64) -> BoxConstraints
Shrinks the max dimension on the given axis. Does NOT shrink beyond min.
pub fn shrink_max_width_to(&self, dim: f64) -> BoxConstraints
pub fn shrink_max_width_to(&self, dim: f64) -> BoxConstraints
Shrinks the max width to dim. Does NOT shrink beyond min width.
pub fn shrink_max_height_to(&self, dim: f64) -> BoxConstraints
pub fn shrink_max_height_to(&self, dim: f64) -> BoxConstraints
Shrinks the max height to dim. Does NOT shrink beyond min height.
Trait Implementations§
§impl Clone for BoxConstraints
impl Clone for BoxConstraints
§fn clone(&self) -> BoxConstraints
fn clone(&self) -> BoxConstraints
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for BoxConstraints
impl Debug for BoxConstraints
§impl PartialEq<BoxConstraints> for BoxConstraints
impl PartialEq<BoxConstraints> for BoxConstraints
§fn eq(&self, other: &BoxConstraints) -> bool
fn eq(&self, other: &BoxConstraints) -> bool
self
and other
values to be equal, and is used
by ==
.