pub trait Runtime<T: UserEvent>: Debug + Sized + 'static {
    type WindowDispatcher: WindowDispatch<T, Runtime = Self>;
    type WebviewDispatcher: WebviewDispatch<T, Runtime = Self>;
    type Handle: RuntimeHandle<T, Runtime = Self>;
    type EventLoopProxy: EventLoopProxy<T>;

    // Required methods
    fn new(args: RuntimeInitArgs) -> Result<Self>;
    fn new_any_thread(args: RuntimeInitArgs) -> Result<Self>;
    fn create_proxy(&self) -> Self::EventLoopProxy;
    fn handle(&self) -> Self::Handle;
    fn create_window<F: Fn(RawWindow<'_>) + Send + 'static>(
        &self,
        pending: PendingWindow<T, Self>,
        after_window_creation: Option<F>
    ) -> Result<DetachedWindow<T, Self>>;
    fn create_webview(
        &self,
        window_id: WindowId,
        pending: PendingWebview<T, Self>
    ) -> Result<DetachedWebview<T, Self>>;
    fn primary_monitor(&self) -> Option<Monitor>;
    fn available_monitors(&self) -> Vec<Monitor>;
    fn set_device_event_filter(&mut self, filter: DeviceEventFilter);
    fn run_iteration<F: FnMut(RunEvent<T>) + 'static>(&mut self, callback: F);
    fn run<F: FnMut(RunEvent<T>) + 'static>(self, callback: F);
}
Expand description

The webview runtime interface.

Required Associated Types§

source

type WindowDispatcher: WindowDispatch<T, Runtime = Self>

The window message dispatcher.

source

type WebviewDispatcher: WebviewDispatch<T, Runtime = Self>

The webview message dispatcher.

source

type Handle: RuntimeHandle<T, Runtime = Self>

The runtime handle type.

source

type EventLoopProxy: EventLoopProxy<T>

The proxy type.

Required Methods§

source

fn new(args: RuntimeInitArgs) -> Result<Self>

Creates a new webview runtime. Must be used on the main thread.

source

fn new_any_thread(args: RuntimeInitArgs) -> Result<Self>

Available on Windows or Linux only.

Creates a new webview runtime on any thread.

source

fn create_proxy(&self) -> Self::EventLoopProxy

Creates an EventLoopProxy that can be used to dispatch user events to the main event loop.

source

fn handle(&self) -> Self::Handle

Gets a runtime handle.

source

fn create_window<F: Fn(RawWindow<'_>) + Send + 'static>( &self, pending: PendingWindow<T, Self>, after_window_creation: Option<F> ) -> Result<DetachedWindow<T, Self>>

Create a new window.

source

fn create_webview( &self, window_id: WindowId, pending: PendingWebview<T, Self> ) -> Result<DetachedWebview<T, Self>>

Create a new webview.

source

fn primary_monitor(&self) -> Option<Monitor>

source

fn available_monitors(&self) -> Vec<Monitor>

source

fn set_device_event_filter(&mut self, filter: DeviceEventFilter)

Change the device event filter mode.

Since the DeviceEvent capture can lead to high CPU usage for unfocused windows, tao will ignore them by default for unfocused windows on Windows. This method allows changing the filter to explicitly capture them again.

§Platform-specific
  • ** Linux / macOS / iOS / Android**: Unsupported.
source

fn run_iteration<F: FnMut(RunEvent<T>) + 'static>(&mut self, callback: F)

Runs an iteration of the runtime event loop and returns control flow to the caller.

source

fn run<F: FnMut(RunEvent<T>) + 'static>(self, callback: F)

Run the webview runtime.

Object Safety§

This trait is not object safe.

Implementors§