feat: add overflow option to Pin widget to allow content beyond boundaries
This commit is contained in:
parent
ba4f09b7bf
commit
dc0e80edd8
1 changed files with 14 additions and 2 deletions
|
|
@ -60,6 +60,7 @@ where
|
||||||
width: Length,
|
width: Length,
|
||||||
height: Length,
|
height: Length,
|
||||||
position: Point,
|
position: Point,
|
||||||
|
overflow: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, Message, Theme, Renderer> Pin<'a, Message, Theme, Renderer>
|
impl<'a, Message, Theme, Renderer> Pin<'a, Message, Theme, Renderer>
|
||||||
|
|
@ -75,6 +76,7 @@ where
|
||||||
width: Length::Fill,
|
width: Length::Fill,
|
||||||
height: Length::Fill,
|
height: Length::Fill,
|
||||||
position: Point::ORIGIN,
|
position: Point::ORIGIN,
|
||||||
|
overflow: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -107,6 +109,12 @@ where
|
||||||
self.position.y = y.into().0;
|
self.position.y = y.into().0;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sets whether the [`Pin`] can overflow its boundaries.
|
||||||
|
pub fn overflow(mut self, overflow: bool) -> Self {
|
||||||
|
self.overflow = overflow;
|
||||||
|
self
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer>
|
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer>
|
||||||
|
|
@ -145,8 +153,12 @@ where
|
||||||
) -> layout::Node {
|
) -> layout::Node {
|
||||||
let limits = limits.width(self.width).height(self.height);
|
let limits = limits.width(self.width).height(self.height);
|
||||||
|
|
||||||
let available =
|
let available =
|
||||||
limits.max() - Size::new(self.position.x, self.position.y);
|
if self.overflow {
|
||||||
|
limits.max()
|
||||||
|
} else {
|
||||||
|
limits.max() - Size::new(self.position.x, self.position.y)
|
||||||
|
};
|
||||||
|
|
||||||
let node = self
|
let node = self
|
||||||
.content
|
.content
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue