Struct dioxus_mobile::wry::application::event_loop::EventLoop [−]
pub struct EventLoop<T> where
T: 'static, { /* fields omitted */ }
Expand description
Provides a way to retrieve events from the system and from the windows that were registered to the events loop.
An EventLoop
can be seen more or less as a “context”. Calling EventLoop::new()
initializes everything that will be required to create windows.
To wake up an EventLoop
from a another thread, see the EventLoopProxy
docs.
Note that the EventLoop
cannot be shared across threads (due to platform-dependant logic
forbidding it), as such it is neither Send
nor Sync
. If you need cross-thread access, the
Window
created from this EventLoop
can be sent to an other thread, and the
EventLoopProxy
allows you to wake up an EventLoop
from another thread.
Implementations
Builds a new event loop with a ()
as the user event type.
For cross-platform compatibility, the EventLoop
must be created on the main thread.
Attempting to create the event loop on a different thread will panic. This restriction isn’t
strictly necessary on all platforms, but is imposed to eliminate any nasty surprises when
porting to platforms that require it. EventLoopExt::new_any_thread
functions are exposed
in the relevant platform
module if the target platform supports creating an event loop on
any thread.
Platform-specific
- iOS: Can only be called on the main thread.
impl<T> EventLoop<T>
impl<T> EventLoop<T>
pub fn with_user_event() -> EventLoop<T>
pub fn with_user_event() -> EventLoop<T>
Builds a new event loop.
All caveats documented in EventLoop::new
apply to this function.
Platform-specific
- iOS: Can only be called on the main thread.
pub fn run<F>(self, event_handler: F) -> ! where
F: 'static + FnMut(Event<'_, T>, &EventLoopWindowTarget<T>, &mut ControlFlow),
pub fn run<F>(self, event_handler: F) -> ! where
F: 'static + FnMut(Event<'_, T>, &EventLoopWindowTarget<T>, &mut ControlFlow),
Hijacks the calling thread and initializes the tao event loop with the provided
closure. Since the closure is 'static
, it must be a move
closure if it needs to
access any data from the calling context.
See the ControlFlow
docs for information on how changes to &mut ControlFlow
impact the
event loop’s behavior.
Any values not passed to this function will not be dropped.
pub fn create_proxy(&self) -> EventLoopProxy<T>
pub fn create_proxy(&self) -> EventLoopProxy<T>
Creates an EventLoopProxy
that can be used to dispatch user events to the main event loop.
Methods from Deref<Target = EventLoopWindowTarget<T>>
pub fn available_monitors(&self) -> impl Iterator<Item = MonitorHandle>
pub fn available_monitors(&self) -> impl Iterator<Item = MonitorHandle>
Returns the list of all the monitors available on the system.
pub fn primary_monitor(&self) -> Option<MonitorHandle>
pub fn primary_monitor(&self) -> Option<MonitorHandle>
Returns the primary monitor of the system.
Returns None
if it can’t identify any monitor as a primary one.
Trait Implementations
type Target = EventLoopWindowTarget<T>
type Target = EventLoopWindowTarget<T>
The resulting type after dereferencing.
pub fn deref(&self) -> &EventLoopWindowTarget<T>
pub fn deref(&self) -> &EventLoopWindowTarget<T>
Dereferences the value.