pub fn with_event_loop_proxy<T: From<Event> + Send + 'static>(
        event_loop: &ActiveEventLoop,
        window: &Window,
        proxy: EventLoopProxy<T>,
    ) -> Self {
        let window_id = window.id();
        let activation_handler = WinitActivationHandler {
            window_id,
            proxy: proxy.clone(),
        };
        let action_handler = WinitActionHandler {
            window_id,
            proxy: proxy.clone(),
        };
        let deactivation_handler = WinitDeactivationHandler { window_id, proxy };
        Self::with_direct_handlers(
            event_loop,
            window,
            activation_handler,
            action_handler,
            deactivation_handler,
        )
    }
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.

# Panics

Panics if the window is already visible.
platforms/winit/src/lib.rs