pub struct Popup<W>where
W: Widget,{ /* private fields */ }
Expand description
A popup (e.g. menu or tooltip)
A pop-up is a box used for things like tool-tips and menus which escapes the parent’s rect. This widget is the root of any popup UI.
This widget must be excluded from the parent’s layout.
Depending on the platform, the pop-up may be a special window or emulate this with a layer drawn in an existing window. Both approaches should exhibit similar behaviour except that the former approach allows the popup to escape the bounds of the parent window. NOTE: currently only the emulated approach is implemented.
A popup receives input data from its parent like any other widget.
Implementations§
source§impl<W> Popup<W>where
W: Widget,
impl<W> Popup<W>where
W: Widget,
sourcepub fn set_direction(&mut self, direction: Direction)
pub fn set_direction(&mut self, direction: Direction)
Set direction
sourcepub fn open(
&mut self,
cx: &mut EventCx<'_>,
data: &<W as Widget>::Data,
parent: Id
) -> bool
pub fn open( &mut self, cx: &mut EventCx<'_>, data: &<W as Widget>::Data, parent: Id ) -> bool
Open the popup
The popup is positioned next to the parent
’s rect in the specified
direction (if this is not possible, the direction may be reversed).
The parent
is marked as depressed (pushed down) while the popup is
open.
Returns true
when the popup is newly opened. In this case, the
caller may wish to call EventState::next_nav_focus
next.
Trait Implementations§
source§impl<W> AutoLayout for Popup<W>where
W: Widget,
impl<W> AutoLayout for Popup<W>where
W: Widget,
source§impl<W> Events for Popup<W>where
W: Widget,
impl<W> Events for Popup<W>where
W: Widget,
source§fn configure_recurse(
&mut self,
cx: &mut ConfigCx<'_>,
data: &<Popup<W> as Widget>::Data
)
fn configure_recurse( &mut self, cx: &mut ConfigCx<'_>, data: &<Popup<W> as Widget>::Data )
source§fn update_recurse(
&mut self,
cx: &mut ConfigCx<'_>,
data: &<Popup<W> as Widget>::Data
)
fn update_recurse( &mut self, cx: &mut ConfigCx<'_>, data: &<Popup<W> as Widget>::Data )
source§fn handle_event(
&mut self,
cx: &mut EventCx<'_>,
_: &<W as Widget>::Data,
event: Event
) -> IsUsed
fn handle_event( &mut self, cx: &mut EventCx<'_>, _: &<W as Widget>::Data, event: Event ) -> IsUsed
source§fn handle_scroll(
&mut self,
cx: &mut EventCx<'_>,
_: &<Popup<W> as Widget>::Data,
_: Scroll
)
fn handle_scroll( &mut self, cx: &mut EventCx<'_>, _: &<Popup<W> as Widget>::Data, _: Scroll )
source§fn steal_event(
&mut self,
_: &mut EventCx<'_>,
_: &<Popup<W> as Widget>::Data,
_: &Id,
_: &Event
) -> IsUsed
fn steal_event( &mut self, _: &mut EventCx<'_>, _: &<Popup<W> as Widget>::Data, _: &Id, _: &Event ) -> IsUsed
source§fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
source§impl<W> Layout for Popup<W>where
W: Widget,
impl<W> Layout for Popup<W>where
W: Widget,
source§fn widget_name(&self) -> &'static str
fn widget_name(&self) -> &'static str
source§fn num_children(&self) -> usize
fn num_children(&self) -> usize
source§fn get_child(&self, index: usize) -> Option<&dyn Layout>
fn get_child(&self, index: usize) -> Option<&dyn Layout>
dyn Layout
Read moresource§fn size_rules(&mut self, sizer: SizeCx<'_>, axis: AxisInfo) -> SizeRules
fn size_rules(&mut self, sizer: SizeCx<'_>, axis: AxisInfo) -> SizeRules
source§fn find_child_index(&self, id: &Id) -> Option<usize>
fn find_child_index(&self, id: &Id) -> Option<usize>
id
, if any Read moresource§fn translation(&self) -> Offset
fn translation(&self) -> Offset
Auto Trait Implementations§
impl<W> RefUnwindSafe for Popup<W>where
W: RefUnwindSafe,
impl<W> !Send for Popup<W>
impl<W> !Sync for Popup<W>
impl<W> Unpin for Popup<W>where
W: Unpin,
impl<W> UnwindSafe for Popup<W>where
W: UnwindSafe,
Blanket Implementations§
source§impl<W> AdaptWidget for Wwhere
W: Widget,
impl<W> AdaptWidget for Wwhere
W: Widget,
source§fn on_configure<F>(self, f: F) -> AdaptEvents<Self>
fn on_configure<F>(self, f: F) -> AdaptEvents<Self>
Events::configure
Read moresource§fn on_update<F>(self, f: F) -> AdaptEvents<Self>
fn on_update<F>(self, f: F) -> AdaptEvents<Self>
Events::update
Read moresource§fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
M
Read moresource§fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
source§fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
source§fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
source§fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
source§impl<W> AdaptWidgetAny for W
impl<W> AdaptWidgetAny for W
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
§fn cast_approx(self) -> T
fn cast_approx(self) -> T
§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
§fn cast_floor(self) -> T
fn cast_floor(self) -> T
§fn try_cast_trunc(self) -> Result<T, Error>
fn try_cast_trunc(self) -> Result<T, Error>
§fn try_cast_nearest(self) -> Result<T, Error>
fn try_cast_nearest(self) -> Result<T, Error>
§fn try_cast_floor(self) -> Result<T, Error>
fn try_cast_floor(self) -> Result<T, Error>
§fn try_cast_ceil(self) -> Result<T, Error>
fn try_cast_ceil(self) -> Result<T, Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<W> LayoutExt for W
impl<W> LayoutExt for W
source§fn identify(&self) -> IdentifyWidget<'_>
fn identify(&self) -> IdentifyWidget<'_>
source§fn is_strict_ancestor_of(&self, id: &Id) -> bool
fn is_strict_ancestor_of(&self, id: &Id) -> bool
id
is not self and is a descendant Read more