[resize] unify to one minimum size

This commit is contained in:
Emil Ernerfeldt 2020-07-19 00:17:02 +02:00
parent f659f2903d
commit 900a758903
2 changed files with 10 additions and 21 deletions

View File

@ -25,9 +25,7 @@ pub struct Resize {
/// If false, we are no enabled /// If false, we are no enabled
resizable: bool, resizable: bool,
// TODO: do we really need both? min_size: Vec2,
min_content_size: Vec2,
min_desired_size: Vec2,
default_size: Vec2, default_size: Vec2,
@ -40,8 +38,7 @@ impl Default for Resize {
Self { Self {
id: None, id: None,
resizable: true, resizable: true,
min_content_size: Vec2::splat(16.0), min_size: Vec2::splat(16.0),
min_desired_size: vec2(64.0, 64.0), // TODO: min size of a a resizable area (e.g. a window or a text edit)
default_size: vec2(128.0, 128.0), // TODO: perferred size for a resizable area (e.g. a window or a text edit) default_size: vec2(128.0, 128.0), // TODO: perferred size for a resizable area (e.g. a window or a text edit)
outline: true, outline: true,
handle_offset: Default::default(), handle_offset: Default::default(),
@ -85,14 +82,8 @@ impl Resize {
} }
/// Won't shrink to smaller than this /// Won't shrink to smaller than this
pub fn min_content_size(mut self, min_content_size: impl Into<Vec2>) -> Self { pub fn min_size(mut self, min_size: impl Into<Vec2>) -> Self {
self.min_content_size = min_content_size.into(); self.min_size = min_size.into();
self
}
/// Won't shrink to smaller than this
pub fn min_desired_size(mut self, min_desired_size: impl Into<Vec2>) -> Self {
self.min_desired_size = min_desired_size.into();
self self
} }
@ -109,7 +100,7 @@ impl Resize {
/// Not manually resizable, just takes the size of its contents. /// Not manually resizable, just takes the size of its contents.
pub fn auto_sized(self) -> Self { pub fn auto_sized(self) -> Self {
self.min_desired_size(Vec2::zero()) self.min_size(Vec2::zero())
.default_size(Vec2::splat(f32::INFINITY)) .default_size(Vec2::splat(f32::INFINITY))
.resizable(false) .resizable(false)
} }
@ -117,8 +108,7 @@ impl Resize {
pub fn fixed_size(mut self, size: impl Into<Vec2>) -> Self { pub fn fixed_size(mut self, size: impl Into<Vec2>) -> Self {
let size = size.into(); let size = size.into();
self.default_size = size; self.default_size = size;
self.min_content_size = size; self.min_size = size;
self.min_desired_size = size;
self.resizable = false; self.resizable = false;
self self
} }
@ -147,7 +137,7 @@ impl Resize {
let id = self.id.unwrap_or_else(|| ui.make_child_id("resize")); let id = self.id.unwrap_or_else(|| ui.make_child_id("resize"));
let mut state = ui.memory().resize.get(&id).cloned().unwrap_or_else(|| { let mut state = ui.memory().resize.get(&id).cloned().unwrap_or_else(|| {
let default_size = self.default_size.max(self.min_content_size); let default_size = self.default_size.max(self.min_size);
State { State {
desired_size: default_size, desired_size: default_size,
@ -156,7 +146,7 @@ impl Resize {
} }
}); });
state.desired_size = state.desired_size.max(self.min_desired_size); state.desired_size = state.desired_size.max(self.min_size);
let position = ui.available().min; let position = ui.available().min;
@ -183,7 +173,7 @@ impl Resize {
if let Some(requested_size) = state.requested_size.take() { if let Some(requested_size) = state.requested_size.take() {
state.desired_size = requested_size; state.desired_size = requested_size;
} }
state.desired_size = state.desired_size.max(self.min_desired_size); state.desired_size = state.desired_size.max(self.min_size);
// ------------------------------ // ------------------------------

View File

@ -29,8 +29,7 @@ impl<'open> Window<'open> {
frame: None, frame: None,
resize: Resize::default() resize: Resize::default()
.outline(false) .outline(false)
.min_content_size([96.0, 32.0]) .min_size([96.0, 32.0])
.min_desired_size([96.0, 32.0])
.default_size([280.0, 400.0]), .default_size([280.0, 400.0]),
scroll: Some( scroll: Some(
ScrollArea::default() ScrollArea::default()