Struct wayland_protocols::xdg::toplevel_icon::v1::client::xdg_toplevel_icon_v1::XdgToplevelIconV1
source · pub struct XdgToplevelIconV1 {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
a toplevel window icon
This interface defines a toplevel icon. An icon can have a name, and multiple buffers. In order to be applied, the icon must have either a name, or at least one buffer assigned. Applying an empty icon (with no buffer or name) to a toplevel should reset its icon to the default icon.
It is up to compositor policy whether to prefer using a buffer or loading an icon via its name. See ‘set_name’ and ‘add_buffer’ for details.
This interface has no events.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl XdgToplevelIconV1
impl XdgToplevelIconV1
sourcepub fn destroy(&self)
pub fn destroy(&self)
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.
sourcepub fn set_name(&self, icon_name: String)
pub fn set_name(&self, icon_name: String)
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.
sourcepub fn add_buffer(&self, buffer: &WlBuffer, scale: i32)
pub fn add_buffer(&self, buffer: &WlBuffer, scale: i32)
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.
Trait Implementations§
source§impl Borrow<ObjectId> for XdgToplevelIconV1
impl Borrow<ObjectId> for XdgToplevelIconV1
source§impl Clone for XdgToplevelIconV1
impl Clone for XdgToplevelIconV1
source§fn clone(&self) -> XdgToplevelIconV1
fn clone(&self) -> XdgToplevelIconV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for XdgToplevelIconV1
impl Debug for XdgToplevelIconV1
source§impl Hash for XdgToplevelIconV1
impl Hash for XdgToplevelIconV1
source§impl PartialEq<Weak<XdgToplevelIconV1>> for XdgToplevelIconV1
impl PartialEq<Weak<XdgToplevelIconV1>> for XdgToplevelIconV1
source§impl PartialEq for XdgToplevelIconV1
impl PartialEq for XdgToplevelIconV1
source§fn eq(&self, other: &XdgToplevelIconV1) -> bool
fn eq(&self, other: &XdgToplevelIconV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for XdgToplevelIconV1
impl Proxy for XdgToplevelIconV1
source§fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
source§fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
source§fn backend(&self) -> &WeakBackend
fn backend(&self) -> &WeakBackend
source§fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
source§fn send_constructor<I: Proxy>(
&self,
req: Self::Request<'_>,
data: Arc<dyn ObjectData>,
) -> Result<I, InvalidId>
fn send_constructor<I: Proxy>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData>, ) -> Result<I, InvalidId>
source§fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
source§fn inert(backend: WeakBackend) -> Self
fn inert(backend: WeakBackend) -> Self
source§fn parse_event(
conn: &Connection,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Event), DispatchError>
fn parse_event( conn: &Connection, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Event), DispatchError>
source§fn write_request<'a>(
&self,
conn: &Connection,
msg: Self::Request<'a>,
) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
fn write_request<'a>( &self, conn: &Connection, msg: Self::Request<'a>, ) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
impl Eq for XdgToplevelIconV1
Auto Trait Implementations§
impl Freeze for XdgToplevelIconV1
impl !RefUnwindSafe for XdgToplevelIconV1
impl Send for XdgToplevelIconV1
impl Sync for XdgToplevelIconV1
impl Unpin for XdgToplevelIconV1
impl !UnwindSafe for XdgToplevelIconV1
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.