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

source

pub fn new<D: Dispatch<WlOutput, OutputData> + Dispatch<ZxdgOutputV1, OutputData> + Dispatch<ZxdgOutputManagerV1, GlobalData> + 'static>( global_list: &GlobalList, qh: &QueueHandle<D>, ) -> OutputState

source

pub fn outputs(&self) -> impl Iterator<Item = WlOutput>

Returns an iterator over all outputs.

source

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.

source

pub fn add_scale_watcher<F, D>(data: &mut D, f: F) -> ScaleWatcherHandle
where D: OutputHandler + 'static, F: Fn(&mut D, &Connection, &QueueHandle<D>, &WlOutput) + Send + Sync + 'static,

source

fn setup<D>(&mut self, wl_output: WlOutput, qh: &QueueHandle<D>)
where D: Dispatch<ZxdgOutputV1, OutputData> + 'static,

Trait Implementations§

source§

impl Debug for OutputState

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<D> Dispatch<WlOutput, OutputData, D> for OutputState
where D: Dispatch<WlOutput, OutputData> + OutputHandler + 'static,

source§

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>

Method used to initialize the user-data of objects created by events Read more
source§

impl<D> Dispatch<ZxdgOutputManagerV1, GlobalData, D> for OutputState

source§

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>

Method used to initialize the user-data of objects created by events Read more
source§

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>, )

Called when an event from the server is processed Read more
source§

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 OutputState

source§

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, )

Called when a global has been destroyed by the compositor. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for T
where T: Any,

source§

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>

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)

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)

Convert &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> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more