Popup

Struct Popup 

Source
pub struct Popup<W: Widget> {
    pub inner: W,
    /* 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.

Fields§

§inner: W

The inner widget

Implementations§

Source§

impl<W: Widget> Popup<W>

Source

pub fn new(inner: W, direction: Direction) -> Self

Construct a popup over a W: Widget

Popup placement is determined by direction and alignment (see Self::align).

Source

pub fn direction(&self) -> Direction

Get direction

Source

pub fn set_direction(&mut self, direction: Direction)

Set direction

The popup is placed next to a reference Rect in this direction, if possible; otherwise it is placed in the opposite direction. See also Self::align.

Source

pub fn alignment(&self) -> Align

Get alignment

Source

pub fn align(self, align: Align) -> Self

Set alignment (inline)

After the popup is placed to one side of a reference Rect (see Self::set_direction), it is aligned according to align:

Source

pub fn is_open(&self) -> bool

Query whether the popup is open

Source

pub fn open( &mut self, cx: &mut EventCx<'_>, data: &W::Data, parent: Id, set_focus: bool, ) -> bool

Open or reposition the popup

The popup is positioned next to the parent’s rect (see Self::set_direction, Self::align).

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.

Source

pub fn close(&mut self, cx: &mut EventCx<'_>)

Close the popup

Navigation focus will return to whichever widget had focus before the popup was open.

Trait Implementations§

Source§

impl<W: Widget> Events for Popup<W>

Source§

fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Configure children Read more
Source§

fn update_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Update children Read more
Source§

fn handle_event( &mut self, _: &mut EventCx<'_>, _: &W::Data, event: Event<'_>, ) -> IsUsed

Handle an Event Read more
Source§

fn handle_scroll(&mut self, cx: &mut EventCx<'_>, _: &Self::Data, _: Scroll)

Handler for scrolling Read more
Source§

const REDRAW_ON_MOUSE_OVER: bool = false

Does this widget have a different appearance on mouse over? Read more
Source§

fn mouse_over_icon(&self) -> Option<CursorIcon>

The mouse cursor icon to use on mouse over Read more
Source§

fn make_child_id(&mut self, index: usize) -> Id

Make an identifier for a child Read more
Source§

fn configure(&mut self, cx: &mut ConfigCx<'_>)

Configure self Read more
Source§

fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)

Update self using input data Read more
Source§

fn handle_mouse_over(&mut self, cx: &mut EventCx<'_>, state: bool)

Mouse focus handler Read more
Source§

fn handle_messages(&mut self, cx: &mut EventCx<'_>, data: &Self::Data)

Handler for messages from children/descendants Read more
Source§

impl<W: Widget> Layout for Popup<W>

Source§

fn rect(&self) -> Rect

Get the widget’s region Read more
Source§

fn size_rules(&mut self, sizer: SizeCx<'_>, axis: AxisInfo) -> SizeRules

Get size rules for the given axis Read more
Source§

fn set_rect(&mut self, cx: &mut ConfigCx<'_>, rect: Rect, hints: AlignHints)

Set size and position Read more
Source§

fn try_probe(&self, coord: Coord) -> Option<Id>

Probe a coordinate for a widget’s Id Read more
Source§

fn draw(&self, draw: DrawCx<'_>)

Draw a widget and its children Read more
Source§

impl<W: Widget> MacroDefinedLayout for Popup<W>

Source§

fn rect(&self) -> Rect

Get the widget’s region
Source§

fn size_rules(&mut self, sizer: SizeCx<'_>, axis: AxisInfo) -> SizeRules

Get size rules for the given axis
Source§

fn set_rect(&mut self, cx: &mut ConfigCx<'_>, rect: Rect, hints: AlignHints)

Set size and position
Source§

fn try_probe(&self, coord: Coord) -> Option<Id>

Probe a coordinate for a widget’s Id
Source§

fn draw(&self, draw: DrawCx<'_>)

Draw a widget and its children
Source§

impl<W: Widget> Tile for Popup<W>

Source§

fn child_indices(&self) -> ChildIndices

Get child indices available to recursion Read more
Source§

fn find_child_index(&self, id: &Id) -> Option<usize>

Find the child which is an ancestor of this id, if any Read more
Source§

fn as_tile(&self) -> &dyn Tile

Get as a dyn Tile Read more
Source§

fn id_ref(&self) -> &Id

Get a reference to the widget’s identifier Read more
Source§

fn identify(&self) -> IdentifyWidget<'_>

Return a Display-able widget identifier Read more
Source§

fn get_child(&self, index: usize) -> Option<&dyn Tile>

Access a child as a dyn Tile, if available Read more
Source§

fn role(&self, _: &mut dyn RoleCx) -> Role<'_>

Describe the widget’s role Read more
Source§

fn nav_next(&self, reverse: bool, from: Option<usize>) -> Option<usize>

Navigation in spatial order Read more
Source§

fn probe(&self, coord: Coord) -> Id

Probe a coordinate for a widget’s Id Read more
Source§

fn id(&self) -> Id

Get the widget’s identifier Read more
Source§

fn navigable(&self) -> bool

Whether this widget supports navigation focus Read more
Source§

fn tooltip(&self) -> Option<&str>

Tooltip Read more
Source§

fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)

Specify additional role properties for child index Read more
Source§

fn translation(&self, index: usize) -> Offset

Get translation of child index relative to this widget Read more
Source§

impl<W: Widget> Widget for Popup<W>

Source§

type Data = <W as Widget>::Data

Input data type Read more
Source§

fn as_node<'__a>(&'__a mut self, data: &'__a Self::Data) -> Node<'__a>

Erase type Read more
Source§

fn child_node<'__n>( &'__n mut self, data: &'__n Self::Data, index: usize, ) -> Option<Node<'__n>>

Access a child as a Node, if available Read more

Auto Trait Implementations§

§

impl<W> Freeze for Popup<W>
where W: Freeze,

§

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<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<S, T> Cast<T> for S
where T: Conv<S>,

Source§

fn cast(self) -> T

Cast from Self to T Read more
Source§

fn try_cast(self) -> Result<T, Error>

Try converting from Self to T Read more
Source§

impl<S, T> CastApprox<T> for S
where T: ConvApprox<S>,

Source§

fn try_cast_approx(self) -> Result<T, Error>

Try approximate conversion from Self to T Read more
Source§

fn cast_approx(self) -> T

Cast approximately from Self to T Read more
Source§

impl<S, T> CastFloat<T> for S
where T: ConvFloat<S>,

Source§

fn cast_trunc(self) -> T

Cast to integer, truncating Read more
Source§

fn cast_nearest(self) -> T

Cast to the nearest integer Read more
Source§

fn cast_floor(self) -> T

Cast the floor to an integer Read more
Source§

fn cast_ceil(self) -> T

Cast the ceiling to an integer Read more
Source§

fn try_cast_trunc(self) -> Result<T, Error>

Try converting to integer with truncation Read more
Source§

fn try_cast_nearest(self) -> Result<T, Error>

Try converting to the nearest integer Read more
Source§

fn try_cast_floor(self) -> Result<T, Error>

Try converting the floor to an integer Read more
Source§

fn try_cast_ceil(self) -> Result<T, Error>

Try convert the ceiling to an integer Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<W> TileExt for W
where W: Tile + ?Sized,

Source§

fn eq_id<T>(&self, rhs: T) -> bool
where Id: PartialEq<T>,

Test widget identifier for equality Read more
Source§

fn is_ancestor_of(&self, id: &Id) -> bool

Check whether id is self or a descendant Read more
Source§

fn is_strict_ancestor_of(&self, id: &Id) -> bool

Check whether id is not self and is a descendant Read more
Source§

fn children(&self) -> impl Iterator<Item = &dyn Tile>

Return an iterator over visible children Read more
Source§

fn find_tile(&self, id: &Id) -> Option<&dyn Tile>

Find the descendant with this id, if any Read more
Source§

fn find_tile_rect(&self, id: &Id) -> Option<(Rect, Offset)>

Find the Rect of the descendant with this id, if any Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more