Struct smithay_client_toolkit::output::OutputState
source · pub struct OutputState {
xdg: GlobalProxy<ZxdgOutputManagerV1>,
outputs: Vec<OutputInner>,
callbacks: Vec<Weak<dyn Fn(&mut dyn Any, &Connection, &dyn Any, &WlOutput) + Send + Sync>>,
}
Expand description
A handler for delegating wl_output::WlOutput
.
When implementing ProvidesRegistryState
,
registry_handlers!
may be used to delegate all
output events to an instance of this type. It will internally store the internal state of all
outputs and allow querying them via the OutputState::outputs
and OutputState::info
methods.
§Example
use smithay_client_toolkit::output::{OutputHandler,OutputState};
use smithay_client_toolkit::registry::{ProvidesRegistryState,RegistryHandler};
use smithay_client_toolkit::{registry_handlers,delegate_output, delegate_registry};
use wayland_client::{Connection,QueueHandle,protocol::wl_output};
struct ExampleState {
// The state is usually kept as an attribute of the application state.
output_state: OutputState,
}
// When using `OutputState`, an implementation of `OutputHandler` should be supplied:
impl OutputHandler for ExampleState {
// Custom implementation handling output events here ...
}
// Delegating to the registry is required to use `OutputState`.
delegate_registry!(ExampleState);
delegate_output!(ExampleState);
impl ProvidesRegistryState for ExampleState {
// ...
registry_handlers!(OutputState);
}
Fields§
§xdg: GlobalProxy<ZxdgOutputManagerV1>
§outputs: Vec<OutputInner>
§callbacks: Vec<Weak<dyn Fn(&mut dyn Any, &Connection, &dyn Any, &WlOutput) + Send + Sync>>
Implementations§
source§impl OutputState
impl OutputState
pub fn new<D: Dispatch<WlOutput, OutputData> + Dispatch<ZxdgOutputV1, OutputData> + Dispatch<ZxdgOutputManagerV1, GlobalData> + 'static>( global_list: &GlobalList, qh: &QueueHandle<D>, ) -> OutputState
sourcepub fn info(&self, output: &WlOutput) -> Option<OutputInfo>
pub fn info(&self, output: &WlOutput) -> Option<OutputInfo>
Returns information about an output.
This may be none if the output has been destroyed or the compositor has not sent information about the output yet.
pub fn add_scale_watcher<F, D>(data: &mut D, f: F) -> ScaleWatcherHandlewhere
D: OutputHandler + 'static,
F: Fn(&mut D, &Connection, &QueueHandle<D>, &WlOutput) + Send + Sync + 'static,
fn setup<D>(&mut self, wl_output: WlOutput, qh: &QueueHandle<D>)
Trait Implementations§
source§impl Debug for OutputState
impl Debug for OutputState
source§impl<D> Dispatch<WlOutput, OutputData, D> for OutputState
impl<D> Dispatch<WlOutput, OutputData, D> for OutputState
source§fn event(
state: &mut D,
output: &WlOutput,
event: Event,
data: &OutputData,
conn: &Connection,
qh: &QueueHandle<D>,
)
fn event( state: &mut D, output: &WlOutput, event: Event, data: &OutputData, conn: &Connection, qh: &QueueHandle<D>, )
Called when an event from the server is processed Read more
source§fn event_created_child(
opcode: u16,
_qhandle: &QueueHandle<State>,
) -> Arc<dyn ObjectData>
fn event_created_child( opcode: u16, _qhandle: &QueueHandle<State>, ) -> Arc<dyn ObjectData>
Method used to initialize the user-data of objects created by events Read more
source§impl<D> Dispatch<ZxdgOutputManagerV1, GlobalData, D> for OutputState
impl<D> Dispatch<ZxdgOutputManagerV1, GlobalData, D> for OutputState
source§fn event(
_: &mut D,
_: &ZxdgOutputManagerV1,
_: Event,
_: &GlobalData,
_: &Connection,
_: &QueueHandle<D>,
)
fn event( _: &mut D, _: &ZxdgOutputManagerV1, _: Event, _: &GlobalData, _: &Connection, _: &QueueHandle<D>, )
Called when an event from the server is processed Read more
source§fn event_created_child(
opcode: u16,
_qhandle: &QueueHandle<State>,
) -> Arc<dyn ObjectData>
fn event_created_child( opcode: u16, _qhandle: &QueueHandle<State>, ) -> Arc<dyn ObjectData>
Method used to initialize the user-data of objects created by events Read more
source§impl<D> Dispatch<ZxdgOutputV1, OutputData, D> for OutputState
impl<D> Dispatch<ZxdgOutputV1, OutputData, D> for OutputState
source§fn event(
state: &mut D,
output: &ZxdgOutputV1,
event: Event,
data: &OutputData,
conn: &Connection,
qh: &QueueHandle<D>,
)
fn event( state: &mut D, output: &ZxdgOutputV1, event: Event, data: &OutputData, conn: &Connection, qh: &QueueHandle<D>, )
Called when an event from the server is processed Read more
source§fn event_created_child(
opcode: u16,
_qhandle: &QueueHandle<State>,
) -> Arc<dyn ObjectData>
fn event_created_child( opcode: u16, _qhandle: &QueueHandle<State>, ) -> Arc<dyn ObjectData>
Method used to initialize the user-data of objects created by events Read more
source§impl<D> RegistryHandler<D> for OutputStatewhere
D: Dispatch<WlOutput, OutputData> + Dispatch<ZxdgOutputV1, OutputData> + Dispatch<ZxdgOutputManagerV1, GlobalData> + OutputHandler + ProvidesRegistryState + 'static,
impl<D> RegistryHandler<D> for OutputStatewhere
D: Dispatch<WlOutput, OutputData> + Dispatch<ZxdgOutputV1, OutputData> + Dispatch<ZxdgOutputManagerV1, GlobalData> + OutputHandler + ProvidesRegistryState + 'static,
source§fn new_global(
data: &mut D,
_: &Connection,
qh: &QueueHandle<D>,
name: u32,
interface: &str,
_version: u32,
)
fn new_global( data: &mut D, _: &Connection, qh: &QueueHandle<D>, name: u32, interface: &str, _version: u32, )
Called when a new global has been advertised by the compositor. Read more
source§fn remove_global(
data: &mut D,
conn: &Connection,
qh: &QueueHandle<D>,
name: u32,
interface: &str,
)
fn remove_global( data: &mut D, conn: &Connection, qh: &QueueHandle<D>, name: u32, interface: &str, )
Called when a global has been destroyed by the compositor. Read more
Auto Trait Implementations§
impl Freeze for OutputState
impl !RefUnwindSafe for OutputState
impl Send for OutputState
impl Sync for OutputState
impl Unpin for OutputState
impl !UnwindSafe for OutputState
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
Mutably borrows from an owned value. Read more
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>
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>
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)
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)
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.