Trait WinitWindowAccessor
pub trait WinitWindowAccessor: WinitWindowAccessorSealed {
// Required methods
fn has_winit_window(&self) -> bool;
fn with_winit_window<T>(
&self,
callback: impl FnOnce(&Window) -> T,
) -> Option<T>;
fn on_winit_window_event(
&self,
callback: impl FnMut(&Window, &WindowEvent) -> WinitWindowEventResult + 'static,
);
}
unstable-winit-030
only.Expand description
This helper trait can be used to obtain access to the winit::window::Window
for a given
slint::Window
.
Note that the association of a Slint window with a winit window relies on two factors:
- The winit backend must be in use. You can ensure this programmatically by calling
slint::BackendSelector::backend_name()
with “winit” as argument. - The winit window must’ve been created. Windowing systems, and by extension winit, require that windows can only be properly
created when certain conditions of the event loop are met. For example, on Android the application can’t be suspended. Therefore,
functions like
Self::has_winit_window()
orSelf::with_winit_window()
will only succeed when the event loop is active. This is typically the case when callbacks are invoked from the event loop, such as through timers, user input events, or when window receives events (see alsoSelf::on_winit_window_event()
).
Required Methods§
fn has_winit_window(&self) -> bool
fn has_winit_window(&self) -> bool
Returns true if a winit::window::Window
exists for this window. This is the case if the window is
backed by this winit backend.
fn with_winit_window<T>(&self, callback: impl FnOnce(&Window) -> T) -> Option<T>
fn with_winit_window<T>(&self, callback: impl FnOnce(&Window) -> T) -> Option<T>
Invokes the specified callback with a reference to the winit::window::Window
that exists for this Slint window
and returns Some(T)
; otherwise None
.
fn on_winit_window_event(
&self,
callback: impl FnMut(&Window, &WindowEvent) -> WinitWindowEventResult + 'static,
)
fn on_winit_window_event( &self, callback: impl FnMut(&Window, &WindowEvent) -> WinitWindowEventResult + 'static, )
Registers a window event filter callback for this Slint window.
The callback is invoked in the winit event loop whenever a window event is received with a reference to the
slint::Window
and the winit::event::WindowEvent
. The return value of the
callback specifies whether Slint should handle this event.
If this window is not backed by winit, this function is a no-op.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.