widget::popover: add show_popup to allow disabling overlay
This commit is contained in:
parent
1bd39b17ae
commit
4674e4b23e
1 changed files with 11 additions and 0 deletions
|
|
@ -28,6 +28,7 @@ pub struct Popover<'a, Message, Renderer> {
|
||||||
// XXX Avoid refcell; improve iced overlay API?
|
// XXX Avoid refcell; improve iced overlay API?
|
||||||
popup: RefCell<Element<'a, Message, Renderer>>,
|
popup: RefCell<Element<'a, Message, Renderer>>,
|
||||||
position: Option<Point>,
|
position: Option<Point>,
|
||||||
|
show_popup: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
||||||
|
|
@ -39,6 +40,7 @@ impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
||||||
content: content.into(),
|
content: content.into(),
|
||||||
popup: RefCell::new(popup.into()),
|
popup: RefCell::new(popup.into()),
|
||||||
position: None,
|
position: None,
|
||||||
|
show_popup: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,6 +49,11 @@ impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn show_popup(mut self, show_popup: bool) -> Self {
|
||||||
|
self.show_popup = show_popup;
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
// TODO More options for positioning similar to GdkPopup, xdg_popup
|
// TODO More options for positioning similar to GdkPopup, xdg_popup
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,6 +167,10 @@ where
|
||||||
layout: Layout<'_>,
|
layout: Layout<'_>,
|
||||||
_renderer: &Renderer,
|
_renderer: &Renderer,
|
||||||
) -> Option<overlay::Element<'b, Message, Renderer>> {
|
) -> Option<overlay::Element<'b, Message, Renderer>> {
|
||||||
|
if !self.show_popup {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
let bounds = layout.bounds();
|
let bounds = layout.bounds();
|
||||||
let (position, centered) = match self.position {
|
let (position, centered) = match self.position {
|
||||||
Some(relative) => (
|
Some(relative) => (
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue