Struct ExtWorkspaceHandleV1
pub struct ExtWorkspaceHandleV1 { /* private fields */ }wayland and Linux only.Expand description
a workspace handing a group of surfaces
A ext_workspace_handle_v1 object represents a workspace that handles a group of surfaces.
Each workspace has:
- a name, conveyed to the client with the name event
- potentially an id conveyed with the id event
- a list of states, conveyed to the client with the state event
- and optionally a set of coordinates, conveyed to the client with the coordinates event
The client may request that the compositor activate or deactivate the workspace.
Each workspace can belong to only a single workspace group. Depending on the compositor policy, there might be workspaces with the same name in different workspace groups, but these workspaces are still separate (e.g. one of them might be active while the other is not).
See also the Request enum for this interface.
Implementations§
§impl ExtWorkspaceHandleV1
impl ExtWorkspaceHandleV1
pub fn id(&self, id: String)
pub fn id(&self, id: String)
workspace id
If this event is emitted, it will be send immediately after the ext_workspace_handle_v1 is created or when an id is assigned to a workspace (at most once during it’s lifetime).
An id will never change during the lifetime of the ext_workspace_handle_v1
and is guaranteed to be unique during it’s lifetime.
Ids are not human-readable and shouldn’t be displayed, use name for that purpose.
Compositors are expected to only send ids for workspaces likely stable across multiple sessions and can be used by clients to store preferences for workspaces. Workspaces without ids should be considered temporary and any data associated with them should be deleted once the respective object is lost.
pub fn name(&self, name: String)
pub fn name(&self, name: String)
workspace name changed
This event is emitted immediately after the ext_workspace_handle_v1 is created and whenever the name of the workspace changes.
A name is meant to be human-readable and can be displayed to a user. Unlike the id it is neither stable nor unique.
pub fn coordinates(&self, coordinates: Vec<u8>)
pub fn coordinates(&self, coordinates: Vec<u8>)
workspace coordinates changed
This event is used to organize workspaces into an N-dimensional grid within a workspace group, and if supported, is emitted immediately after the ext_workspace_handle_v1 is created and whenever the coordinates of the workspace change. Compositors may not send this event if they do not conceptually arrange workspaces in this way. If compositors simply number workspaces, without any geometric interpretation, they may send 1D coordinates, which clients should not interpret as implying any geometry. Sending an empty array means that the compositor no longer orders the workspace geometrically.
Coordinates have an arbitrary number of dimensions N with an uint32 position along each dimension. By convention if N > 1, the first dimension is X, the second Y, the third Z, and so on. The compositor may chose to utilize these events for a more novel workspace layout convention, however. No guarantee is made about the grid being filled or bounded; there may be a workspace at coordinate 1 and another at coordinate 1000 and none in between. Within a workspace group, however, workspaces must have unique coordinates of equal dimensionality.
pub fn state(&self, state: State)
pub fn state(&self, state: State)
the state of the workspace changed
This event is emitted immediately after the ext_workspace_handle_v1 is created and each time the workspace state changes, either because of a compositor action or because of a request in this protocol.
Missing states convey the opposite meaning, e.g. an unset active bit means the workspace is currently inactive.
pub fn capabilities(&self, capabilities: WorkspaceCapabilities)
pub fn capabilities(&self, capabilities: WorkspaceCapabilities)
compositor capabilities
This event advertises the capabilities supported by the compositor. If a capability isn’t supported, clients should hide or disable the UI elements that expose this functionality. For instance, if the compositor doesn’t advertise support for removing workspaces, a button triggering the remove request should not be displayed.
The compositor will ignore requests it doesn’t support. For instance, a compositor which doesn’t advertise support for remove will ignore remove requests.
Compositors must send this event once after creation of an ext_workspace_handle_v1 . When the capabilities change, compositors must send this event again.
pub fn removed(&self)
pub fn removed(&self)
this workspace has been removed
This event is send when the workspace associated with the ext_workspace_handle_v1 has been removed. After sending this request, the compositor will immediately consider the object inert. Any requests will be ignored except the destroy request.
It is guaranteed there won’t be any more events referencing this ext_workspace_handle_v1.
The compositor must only remove a workspaces not currently belonging to any workspace_group.
Trait Implementations§
§impl Borrow<ObjectId> for ExtWorkspaceHandleV1
impl Borrow<ObjectId> for ExtWorkspaceHandleV1
§impl Clone for ExtWorkspaceHandleV1
impl Clone for ExtWorkspaceHandleV1
§fn clone(&self) -> ExtWorkspaceHandleV1
fn clone(&self) -> ExtWorkspaceHandleV1
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ExtWorkspaceHandleV1
impl Debug for ExtWorkspaceHandleV1
§impl Hash for ExtWorkspaceHandleV1
impl Hash for ExtWorkspaceHandleV1
§impl PartialEq<Weak<ExtWorkspaceHandleV1>> for ExtWorkspaceHandleV1
impl PartialEq<Weak<ExtWorkspaceHandleV1>> for ExtWorkspaceHandleV1
§impl PartialEq for ExtWorkspaceHandleV1
impl PartialEq for ExtWorkspaceHandleV1
§impl Resource for ExtWorkspaceHandleV1
impl Resource for ExtWorkspaceHandleV1
§fn object_data(&self) -> Option<&Arc<dyn Any + Sync + Send>>
fn object_data(&self) -> Option<&Arc<dyn Any + Sync + Send>>
§fn from_id(
conn: &DisplayHandle,
id: ObjectId,
) -> Result<ExtWorkspaceHandleV1, InvalidId>
fn from_id( conn: &DisplayHandle, id: ObjectId, ) -> Result<ExtWorkspaceHandleV1, InvalidId>
§fn send_event(
&self,
evt: <ExtWorkspaceHandleV1 as Resource>::Event<'_>,
) -> Result<(), InvalidId>
fn send_event( &self, evt: <ExtWorkspaceHandleV1 as Resource>::Event<'_>, ) -> Result<(), InvalidId>
§fn parse_request(
conn: &DisplayHandle,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(ExtWorkspaceHandleV1, <ExtWorkspaceHandleV1 as Resource>::Request), DispatchError>
fn parse_request( conn: &DisplayHandle, msg: Message<ObjectId, OwnedFd>, ) -> Result<(ExtWorkspaceHandleV1, <ExtWorkspaceHandleV1 as Resource>::Request), DispatchError>
§fn write_event<'a>(
&self,
conn: &DisplayHandle,
msg: <ExtWorkspaceHandleV1 as Resource>::Event<'a>,
) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
fn write_event<'a>( &self, conn: &DisplayHandle, msg: <ExtWorkspaceHandleV1 as Resource>::Event<'a>, ) -> Result<Message<ObjectId, BorrowedFd<'a>>, InvalidId>
impl Eq for ExtWorkspaceHandleV1
Auto Trait Implementations§
impl Freeze for ExtWorkspaceHandleV1
impl !RefUnwindSafe for ExtWorkspaceHandleV1
impl Send for ExtWorkspaceHandleV1
impl Sync for ExtWorkspaceHandleV1
impl Unpin for ExtWorkspaceHandleV1
impl !UnwindSafe for ExtWorkspaceHandleV1
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
impl<T, Res> Apply<Res> for Twhere
T: ?Sized,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§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> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.§impl<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Application.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more