Skip to main content

PopupConfig

Struct PopupConfig 

Source
pub struct PopupConfig {
    pub width: u32,
    pub height: Option<u32>,
    pub anchor_rect: Rect,
    pub anchor: PopupAnchor,
    pub gravity: PopupGravity,
    pub offset: (i32, i32),
    pub grab: bool,
    pub background_color: Color,
}
Expand description

Configuration for an xdg popup anchored to a parent surface.

The compositor positions the popup relative to anchor_rect (parent surface coordinates) and adjusts it to stay on screen (flip/slide).

spawn_popup(
    bar_surface_id,
    PopupConfig::new(250)
        .anchor_rect(button_rect)
        .anchor(PopupAnchor::Bottom)
        .gravity(PopupGravity::Bottom)
        .grab(),
    move || menu_widget(),
);

Fields§

§width: u32

Popup width in logical pixels.

§height: Option<u32>

Popup height in logical pixels. None (the default) sizes the popup to its content: the widget is laid out at the given width before the popup is created, and repositioned when its content height changes (submenus expanding, lists growing). Content using height(fill()) resolves to the screen-height cap — give such popups an explicit height instead.

§anchor_rect: Rect

Rectangle the popup anchors to, in parent surface coordinates.

§anchor: PopupAnchor

Which point of the anchor rect to attach to.

§gravity: PopupGravity

Which direction the popup grows.

§offset: (i32, i32)

Extra offset from the anchor point.

§grab: bool

Take an input grab: clicking outside dismisses the popup (menu semantics). The compositor reports the dismissal reactively — see PopupHandle::dismissed.

§background_color: Color

Background color of the popup surface.

Implementations§

Source§

impl PopupConfig

Source

pub fn new(width: u32) -> Self

Create a popup configuration with the given width; the height sizes to the content (see PopupConfig::height to fix it instead).

Source

pub fn height(self, height: u32) -> Self

Fix the popup height instead of sizing it to the content.

Source

pub fn anchor_rect(self, rect: Rect) -> Self

Set the rectangle the popup anchors to (parent surface coordinates). Typically a widget’s bounds from a crate::widget_ref::WidgetRef.

Source

pub fn anchor(self, anchor: PopupAnchor) -> Self

Set which point of the anchor rect the popup attaches to.

Source

pub fn gravity(self, gravity: PopupGravity) -> Self

Set which direction the popup grows.

Source

pub fn offset(self, x: i32, y: i32) -> Self

Set an extra offset from the anchor point.

Source

pub fn grab(self) -> Self

Take an input grab: clicking outside dismisses the popup.

Source

pub fn background_color(self, color: Color) -> Self

Set the background color of the popup surface.

Trait Implementations§

Source§

impl Clone for PopupConfig

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T, M, S> Animate<T, M> for S
where T: Clone + 'static, S: IntoSignal<T, M>,

Source§

fn transition(self, transition: impl Into<TransitionConfig>) -> Animated<T>

Ease to each new value this holds, instead of jumping to it. Read more
Source§

fn timeline(self, keyframes: Keyframes<T>) -> Animated<T>
where T: Animatable,

Play keyframes when the widget appears — or, if they are played_by a trigger, on every change of it — resting on this value in between. Read more
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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, I> IntoSignal<T> for I
where T: Clone + 'static, I: Into<T>,

Source§

fn into_signal(self) -> Signal<T>

Source§

fn into_prop(self) -> Prop<T>

The same declaration, as a property keeps it. Read more
Source§

impl<T> IntoVal<Option<T>> for T

Source§

fn into_val(self) -> Option<T>

Source§

impl<T> IntoVal<T> for T

Source§

fn into_val(self) -> T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

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