#[non_exhaustive]pub enum Request<'a> {
Destroy,
SetName {
icon_name: String,
},
AddBuffer {
buffer: WlBuffer,
scale: i32,
},
}
staging
and client
only.Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Destroy
destroy the icon object
Destroys the ‘xdg_toplevel_icon_v1’ object. The icon must still remain set on every toplevel it was assigned to, until the toplevel icon is reset explicitly.
This is a destructor, once sent this object cannot be used any longer.
SetName
set an icon name
This request assigns an icon name to this icon. Any previously set name is overridden.
The compositor must resolve ‘icon_name’ according to the lookup rules described in the XDG icon theme specification1 using the environment’s current icon theme.
If the compositor does not support icon names or cannot resolve ‘icon_name’ according to the XDG icon theme specification it must fall back to using pixel buffer data instead.
If this request is made after the icon has been assigned to a toplevel via ‘set_icon’, a ‘immutable’ error must be raised.
AddBuffer
add icon data from a pixel buffer
This request adds pixel data supplied as wl_buffer to the icon.
The client should add pixel data for all icon sizes and scales that it can provide, or which are explicitly requested by the compositor via ‘icon_size’ events on xdg_toplevel_icon_manager_v1.
The wl_buffer supplying pixel data as ‘buffer’ must be backed by wl_shm and must be a square (width and height being equal). If any of these buffer requirements are not fulfilled, a ‘invalid_buffer’ error must be raised.
If this icon instance already has a buffer of the same size and scale from a previous ‘add_buffer’ request, data from the last request overrides the preexisting pixel data.
The wl_buffer must be kept alive for as long as the xdg_toplevel_icon it is associated with is not destroyed, otherwise a ‘no_buffer’ error is raised. The buffer contents must not be modified after it was assigned to the icon. As a result, the region of the wl_shm_pool’s backing storage used for the wl_buffer must not be modified after this request is sent. The wl_buffer.release event is unused.
If this request is made after the icon has been assigned to a toplevel via ‘set_icon’, a ‘immutable’ error must be raised.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Request<'a>
impl<'a> !RefUnwindSafe for Request<'a>
impl<'a> Send for Request<'a>
impl<'a> Sync for Request<'a>
impl<'a> Unpin for Request<'a>
impl<'a> !UnwindSafe for Request<'a>
Blanket Implementations§
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§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
.source§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
.source§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.source§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.