[resize] unify to one minimum size
This commit is contained in:
parent
f659f2903d
commit
900a758903
|
|
@ -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);
|
||||||
|
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue