pub struct LockSelection<'a> { /* private fields */ }Expand description
A selection of session lock surfaces matching a selector
Provides methods to interact with all matching lock surfaces at once.
Created via Shell::select_lock().
Implementations§
Source§impl<'a> LockSelection<'a>
impl<'a> LockSelection<'a>
Sourcepub fn on_callback<F, R>(&self, callback_name: &str, handler: F) -> &Self
pub fn on_callback<F, R>(&self, callback_name: &str, handler: F) -> &Self
Registers a callback handler for all matching lock surfaces
Handler receives a CallbackContext with surface identity and shell control.
Callbacks are stored and applied when the lock is activated, and automatically
applied to new surfaces when outputs are hotplugged during an active lock.
Sourcepub fn on_callback_with_args<F, R>(
&self,
callback_name: &str,
handler: F,
) -> &Self
pub fn on_callback_with_args<F, R>( &self, callback_name: &str, handler: F, ) -> &Self
Registers a callback handler that receives arguments for all matching lock surfaces
Sourcepub fn with_component<F>(&self, f: F)where
F: FnMut(&ComponentInstance),
pub fn with_component<F>(&self, f: F)where
F: FnMut(&ComponentInstance),
Executes a function with each matching lock component instance
Returns immediately if no lock surfaces are active. During activation, this iterates over all lock component instances matching the selector.
Sourcepub fn set_property(&self, name: &str, value: &Value) -> Result<(), Error>
pub fn set_property(&self, name: &str, value: &Value) -> Result<(), Error>
Sets a property value on all matching lock surfaces
If the lock is inactive, the property operation is stored and will be applied when the lock is activated. If the lock is active, the property is set immediately on all matching component instances.
Sourcepub fn get_property(&self, name: &str) -> Result<Vec<Value>, Error>
pub fn get_property(&self, name: &str) -> Result<Vec<Value>, Error>
Gets property values from all matching lock surfaces
Returns an empty vector if the lock is inactive.
Sourcepub fn count(&self) -> usize
pub fn count(&self) -> usize
Returns the number of lock surfaces matching the selector
Returns 0 if the lock is inactive.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Checks if no lock surfaces match the selector
Returns true if the lock is inactive or no surfaces match the selector.
Sourcepub fn info(&self) -> Vec<SurfaceInfo>
pub fn info(&self) -> Vec<SurfaceInfo>
Returns information about all matching lock surfaces
Returns an empty vector if the lock is inactive.
Auto Trait Implementations§
impl<'a> Freeze for LockSelection<'a>
impl<'a> !RefUnwindSafe for LockSelection<'a>
impl<'a> !Send for LockSelection<'a>
impl<'a> !Sync for LockSelection<'a>
impl<'a> Unpin for LockSelection<'a>
impl<'a> !UnwindSafe for LockSelection<'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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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