Struct accesskit_winit::Adapter

source ·
pub struct Adapter { /* private fields */ }

Implementations§

source§

impl Adapter

source

pub fn with_event_loop_proxy<T: From<Event> + Send + 'static>( window: &Window, proxy: EventLoopProxy<T> ) -> Self

Creates a new AccessKit adapter for a winit window. This must be done before the window is shown for the first time. This means that you must use winit::window::WindowAttributes::with_visible to make the window initially invisible, then create the adapter, then show the window.

This constructor uses a winit event loop proxy to deliver AccessKit events to the main event loop. The primary disadvantage of this approach is that it’s not possible to synchronously return an initial tree in response to the WindowEvent::InitialTreeRequested event, so some platform adapters will have to use a temporary placeholder tree until you send the first update. For an optimal implementation, consider using Adapter::with_direct_handlers or Adapter::with_mixed_handlers instead.

source

pub fn with_direct_handlers( window: &Window, activation_handler: impl 'static + ActivationHandler + Send, action_handler: impl 'static + ActionHandler + Send, deactivation_handler: impl 'static + DeactivationHandler + Send ) -> Self

Creates a new AccessKit adapter for a winit window. This must be done before the window is shown for the first time. This means that you must use winit::window::WindowAttributes::with_visible to make the window initially invisible, then create the adapter, then show the window.

Use this if you want to provide your own AccessKit handler callbacks rather than dispatching requests through the winit event loop. This is especially useful for the activation handler, because depending on your application’s architecture, implementing the handler directly may allow you to return an initial tree synchronously, rather than requiring some platform adapters to use a placeholder tree until you send the first update. However, remember that each of these handlers may be called on any thread, depending on the underlying platform adapter.

source

pub fn with_mixed_handlers<T: From<Event> + Send + 'static>( window: &Window, activation_handler: impl 'static + ActivationHandler + Send, proxy: EventLoopProxy<T> ) -> Self

Creates a new AccessKit adapter for a winit window. This must be done before the window is shown for the first time. This means that you must use winit::window::WindowAttributes::with_visible to make the window initially invisible, then create the adapter, then show the window.

This constructor provides a mix of the approaches used by Adapter::with_event_loop_proxy and Adapter::with_direct_handlers. It uses the event loop proxy for the action request and deactivation events, which can be handled asynchronously with no drawback, while using a direct, caller-provided activation handler that can return the initial tree synchronously. Remember that the thread on which the activation handler is called is platform-dependent.

source

pub fn process_event(&mut self, window: &Window, event: &WinitWindowEvent)

Allows reacting to window events.

This must be called whenever a new window event is received and before it is handled by the application.

source

pub fn update_if_active(&mut self, updater: impl FnOnce() -> TreeUpdate)

If and only if the tree has been initialized, call the provided function and apply the resulting update. Note: If the caller’s implementation of ActivationHandler::request_initial_tree initially returned None, or if the caller created the adapter using EventLoopProxy, then the TreeUpdate returned by the provided function must contain a full tree.

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 + Send + Sync>

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> Same for T

§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

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