pub trait WindowDispatch<T: UserEvent>:
Debug
+ Clone
+ Send
+ Sync
+ Sized
+ 'static {
type Runtime: Runtime<T>;
type WindowBuilder: WindowBuilder;
Show 68 methods
// Required methods
fn run_on_main_thread<F: FnOnce() + Send + 'static>(
&self,
f: F,
) -> Result<()>;
fn on_window_event<F: Fn(&WindowEvent) + Send + 'static>(
&self,
f: F,
) -> WindowEventId;
fn scale_factor(&self) -> Result<f64>;
fn inner_position(&self) -> Result<PhysicalPosition<i32>>;
fn outer_position(&self) -> Result<PhysicalPosition<i32>>;
fn inner_size(&self) -> Result<PhysicalSize<u32>>;
fn outer_size(&self) -> Result<PhysicalSize<u32>>;
fn is_fullscreen(&self) -> Result<bool>;
fn is_minimized(&self) -> Result<bool>;
fn is_maximized(&self) -> Result<bool>;
fn is_focused(&self) -> Result<bool>;
fn is_decorated(&self) -> Result<bool>;
fn is_resizable(&self) -> Result<bool>;
fn is_maximizable(&self) -> Result<bool>;
fn is_minimizable(&self) -> Result<bool>;
fn is_closable(&self) -> Result<bool>;
fn is_visible(&self) -> Result<bool>;
fn is_enabled(&self) -> Result<bool>;
fn title(&self) -> Result<String>;
fn current_monitor(&self) -> Result<Option<Monitor>>;
fn primary_monitor(&self) -> Result<Option<Monitor>>;
fn monitor_from_point(&self, x: f64, y: f64) -> Result<Option<Monitor>>;
fn available_monitors(&self) -> Result<Vec<Monitor>>;
fn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>;
fn theme(&self) -> Result<Theme>;
fn center(&self) -> Result<()>;
fn request_user_attention(
&self,
request_type: Option<UserAttentionType>,
) -> Result<()>;
fn create_window<F: Fn(RawWindow<'_>) + Send + 'static>(
&mut self,
pending: PendingWindow<T, Self::Runtime>,
after_window_creation: Option<F>,
) -> Result<DetachedWindow<T, Self::Runtime>>;
fn create_webview(
&mut self,
pending: PendingWebview<T, Self::Runtime>,
) -> Result<DetachedWebview<T, Self::Runtime>>;
fn set_resizable(&self, resizable: bool) -> Result<()>;
fn set_enabled(&self, enabled: bool) -> Result<()>;
fn set_maximizable(&self, maximizable: bool) -> Result<()>;
fn set_minimizable(&self, minimizable: bool) -> Result<()>;
fn set_closable(&self, closable: bool) -> Result<()>;
fn set_title<S: Into<String>>(&self, title: S) -> Result<()>;
fn maximize(&self) -> Result<()>;
fn unmaximize(&self) -> Result<()>;
fn minimize(&self) -> Result<()>;
fn unminimize(&self) -> Result<()>;
fn show(&self) -> Result<()>;
fn hide(&self) -> Result<()>;
fn close(&self) -> Result<()>;
fn destroy(&self) -> Result<()>;
fn set_decorations(&self, decorations: bool) -> Result<()>;
fn set_shadow(&self, enable: bool) -> Result<()>;
fn set_always_on_bottom(&self, always_on_bottom: bool) -> Result<()>;
fn set_always_on_top(&self, always_on_top: bool) -> Result<()>;
fn set_visible_on_all_workspaces(
&self,
visible_on_all_workspaces: bool,
) -> Result<()>;
fn set_content_protected(&self, protected: bool) -> Result<()>;
fn set_size(&self, size: Size) -> Result<()>;
fn set_min_size(&self, size: Option<Size>) -> Result<()>;
fn set_max_size(&self, size: Option<Size>) -> Result<()>;
fn set_size_constraints(
&self,
constraints: WindowSizeConstraints,
) -> Result<()>;
fn set_position(&self, position: Position) -> Result<()>;
fn set_fullscreen(&self, fullscreen: bool) -> Result<()>;
fn set_focus(&self) -> Result<()>;
fn set_icon(&self, icon: Icon<'_>) -> Result<()>;
fn set_skip_taskbar(&self, skip: bool) -> Result<()>;
fn set_cursor_grab(&self, grab: bool) -> Result<()>;
fn set_cursor_visible(&self, visible: bool) -> Result<()>;
fn set_cursor_icon(&self, icon: CursorIcon) -> Result<()>;
fn set_cursor_position<Pos: Into<Position>>(
&self,
position: Pos,
) -> Result<()>;
fn set_ignore_cursor_events(&self, ignore: bool) -> Result<()>;
fn start_dragging(&self) -> Result<()>;
fn start_resize_dragging(&self, direction: ResizeDirection) -> Result<()>;
fn set_progress_bar(&self, progress_state: ProgressBarState) -> Result<()>;
fn set_title_bar_style(&self, style: TitleBarStyle) -> Result<()>;
fn set_theme(&self, theme: Option<Theme>) -> Result<()>;
}
Expand description
Window dispatcher. A thread-safe handle to the window APIs.
Required Associated Types§
sourcetype Runtime: Runtime<T>
type Runtime: Runtime<T>
The runtime this WindowDispatch
runs under.
sourcetype WindowBuilder: WindowBuilder
type WindowBuilder: WindowBuilder
The window builder type.
Required Methods§
sourcefn run_on_main_thread<F: FnOnce() + Send + 'static>(&self, f: F) -> Result<()>
fn run_on_main_thread<F: FnOnce() + Send + 'static>(&self, f: F) -> Result<()>
Run a task on the main thread.
sourcefn on_window_event<F: Fn(&WindowEvent) + Send + 'static>(
&self,
f: F,
) -> WindowEventId
fn on_window_event<F: Fn(&WindowEvent) + Send + 'static>( &self, f: F, ) -> WindowEventId
Registers a window event handler.
sourcefn scale_factor(&self) -> Result<f64>
fn scale_factor(&self) -> Result<f64>
Returns the scale factor that can be used to map logical pixels to physical pixels, and vice versa.
sourcefn inner_position(&self) -> Result<PhysicalPosition<i32>>
fn inner_position(&self) -> Result<PhysicalPosition<i32>>
Returns the position of the top-left hand corner of the window’s client area relative to the top-left hand corner of the desktop.
sourcefn outer_position(&self) -> Result<PhysicalPosition<i32>>
fn outer_position(&self) -> Result<PhysicalPosition<i32>>
Returns the position of the top-left hand corner of the window relative to the top-left hand corner of the desktop.
sourcefn inner_size(&self) -> Result<PhysicalSize<u32>>
fn inner_size(&self) -> Result<PhysicalSize<u32>>
Returns the physical size of the window’s client area.
The client area is the content of the window, excluding the title bar and borders.
sourcefn outer_size(&self) -> Result<PhysicalSize<u32>>
fn outer_size(&self) -> Result<PhysicalSize<u32>>
Returns the physical size of the entire window.
These dimensions include the title bar and borders. If you don’t want that (and you usually don’t), use inner_size instead.
sourcefn is_fullscreen(&self) -> Result<bool>
fn is_fullscreen(&self) -> Result<bool>
Gets the window’s current fullscreen state.
sourcefn is_minimized(&self) -> Result<bool>
fn is_minimized(&self) -> Result<bool>
Gets the window’s current minimized state.
sourcefn is_maximized(&self) -> Result<bool>
fn is_maximized(&self) -> Result<bool>
Gets the window’s current maximized state.
sourcefn is_focused(&self) -> Result<bool>
fn is_focused(&self) -> Result<bool>
Gets the window’s current focus state.
sourcefn is_decorated(&self) -> Result<bool>
fn is_decorated(&self) -> Result<bool>
Gets the window’s current decoration state.
sourcefn is_resizable(&self) -> Result<bool>
fn is_resizable(&self) -> Result<bool>
Gets the window’s current resizable state.
sourcefn is_maximizable(&self) -> Result<bool>
fn is_maximizable(&self) -> Result<bool>
Gets the window’s native maximize button state.
§Platform-specific
- Linux / iOS / Android: Unsupported.
sourcefn is_minimizable(&self) -> Result<bool>
fn is_minimizable(&self) -> Result<bool>
Gets the window’s native minimize button state.
§Platform-specific
- Linux / iOS / Android: Unsupported.
sourcefn is_closable(&self) -> Result<bool>
fn is_closable(&self) -> Result<bool>
sourcefn is_visible(&self) -> Result<bool>
fn is_visible(&self) -> Result<bool>
Gets the window’s current visibility state.
sourcefn is_enabled(&self) -> Result<bool>
fn is_enabled(&self) -> Result<bool>
Whether the window is enabled or disable.
sourcefn current_monitor(&self) -> Result<Option<Monitor>>
fn current_monitor(&self) -> Result<Option<Monitor>>
Returns the monitor on which the window currently resides.
Returns None if current monitor can’t be detected.
sourcefn primary_monitor(&self) -> Result<Option<Monitor>>
fn primary_monitor(&self) -> Result<Option<Monitor>>
Returns the primary monitor of the system.
Returns None if it can’t identify any monitor as a primary one.
sourcefn monitor_from_point(&self, x: f64, y: f64) -> Result<Option<Monitor>>
fn monitor_from_point(&self, x: f64, y: f64) -> Result<Option<Monitor>>
Returns the monitor that contains the given point.
sourcefn available_monitors(&self) -> Result<Vec<Monitor>>
fn available_monitors(&self) -> Result<Vec<Monitor>>
Returns the list of all the monitors available on the system.
sourcefn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>
fn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>
Raw window handle.
sourcefn request_user_attention(
&self,
request_type: Option<UserAttentionType>,
) -> Result<()>
fn request_user_attention( &self, request_type: Option<UserAttentionType>, ) -> Result<()>
Requests user attention to the window.
Providing None
will unset the request for user attention.
sourcefn create_window<F: Fn(RawWindow<'_>) + Send + 'static>(
&mut self,
pending: PendingWindow<T, Self::Runtime>,
after_window_creation: Option<F>,
) -> Result<DetachedWindow<T, Self::Runtime>>
fn create_window<F: Fn(RawWindow<'_>) + Send + 'static>( &mut self, pending: PendingWindow<T, Self::Runtime>, after_window_creation: Option<F>, ) -> Result<DetachedWindow<T, Self::Runtime>>
Create a new window.
sourcefn create_webview(
&mut self,
pending: PendingWebview<T, Self::Runtime>,
) -> Result<DetachedWebview<T, Self::Runtime>>
fn create_webview( &mut self, pending: PendingWebview<T, Self::Runtime>, ) -> Result<DetachedWebview<T, Self::Runtime>>
Create a new webview.
sourcefn set_resizable(&self, resizable: bool) -> Result<()>
fn set_resizable(&self, resizable: bool) -> Result<()>
Updates the window resizable flag.
sourcefn set_enabled(&self, enabled: bool) -> Result<()>
fn set_enabled(&self, enabled: bool) -> Result<()>
sourcefn set_maximizable(&self, maximizable: bool) -> Result<()>
fn set_maximizable(&self, maximizable: bool) -> Result<()>
Updates the window’s native maximize button state.
§Platform-specific
- macOS: Disables the “zoom” button in the window titlebar, which is also used to enter fullscreen mode.
- Linux / iOS / Android: Unsupported.
sourcefn set_minimizable(&self, minimizable: bool) -> Result<()>
fn set_minimizable(&self, minimizable: bool) -> Result<()>
Updates the window’s native minimize button state.
§Platform-specific
- Linux / iOS / Android: Unsupported.
sourcefn set_closable(&self, closable: bool) -> Result<()>
fn set_closable(&self, closable: bool) -> Result<()>
Updates the window’s native close button state.
§Platform-specific
- Linux: “GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible”
- iOS / Android: Unsupported.
sourcefn unmaximize(&self) -> Result<()>
fn unmaximize(&self) -> Result<()>
Unmaximizes the window.
sourcefn unminimize(&self) -> Result<()>
fn unminimize(&self) -> Result<()>
Unminimizes the window.
sourcefn set_decorations(&self, decorations: bool) -> Result<()>
fn set_decorations(&self, decorations: bool) -> Result<()>
Updates the decorations flag.
sourcefn set_shadow(&self, enable: bool) -> Result<()>
fn set_shadow(&self, enable: bool) -> Result<()>
Updates the shadow flag.
sourcefn set_always_on_bottom(&self, always_on_bottom: bool) -> Result<()>
fn set_always_on_bottom(&self, always_on_bottom: bool) -> Result<()>
Updates the window alwaysOnBottom flag.
sourcefn set_always_on_top(&self, always_on_top: bool) -> Result<()>
fn set_always_on_top(&self, always_on_top: bool) -> Result<()>
Updates the window alwaysOnTop flag.
sourcefn set_visible_on_all_workspaces(
&self,
visible_on_all_workspaces: bool,
) -> Result<()>
fn set_visible_on_all_workspaces( &self, visible_on_all_workspaces: bool, ) -> Result<()>
Updates the window visibleOnAllWorkspaces flag.
sourcefn set_content_protected(&self, protected: bool) -> Result<()>
fn set_content_protected(&self, protected: bool) -> Result<()>
Prevents the window contents from being captured by other apps.
sourcefn set_size_constraints(&self, constraints: WindowSizeConstraints) -> Result<()>
fn set_size_constraints(&self, constraints: WindowSizeConstraints) -> Result<()>
Sets this window’s minimum inner width.
sourcefn set_position(&self, position: Position) -> Result<()>
fn set_position(&self, position: Position) -> Result<()>
Updates the window position.
sourcefn set_fullscreen(&self, fullscreen: bool) -> Result<()>
fn set_fullscreen(&self, fullscreen: bool) -> Result<()>
Updates the window fullscreen state.
sourcefn set_skip_taskbar(&self, skip: bool) -> Result<()>
fn set_skip_taskbar(&self, skip: bool) -> Result<()>
Whether to hide the window icon from the taskbar or not.
sourcefn set_cursor_grab(&self, grab: bool) -> Result<()>
fn set_cursor_grab(&self, grab: bool) -> Result<()>
Grabs the cursor, preventing it from leaving the window.
There’s no guarantee that the cursor will be hidden. You should hide it by yourself if you want so.
sourcefn set_cursor_visible(&self, visible: bool) -> Result<()>
fn set_cursor_visible(&self, visible: bool) -> Result<()>
Modifies the cursor’s visibility.
If false
, this will hide the cursor. If true
, this will show the cursor.
fn set_cursor_icon(&self, icon: CursorIcon) -> Result<()>
sourcefn set_cursor_position<Pos: Into<Position>>(&self, position: Pos) -> Result<()>
fn set_cursor_position<Pos: Into<Position>>(&self, position: Pos) -> Result<()>
Changes the position of the cursor in window coordinates.
sourcefn set_ignore_cursor_events(&self, ignore: bool) -> Result<()>
fn set_ignore_cursor_events(&self, ignore: bool) -> Result<()>
Ignores the window cursor events.
sourcefn start_dragging(&self) -> Result<()>
fn start_dragging(&self) -> Result<()>
Starts dragging the window.
sourcefn start_resize_dragging(&self, direction: ResizeDirection) -> Result<()>
fn start_resize_dragging(&self, direction: ResizeDirection) -> Result<()>
Starts resize-dragging the window.
sourcefn set_progress_bar(&self, progress_state: ProgressBarState) -> Result<()>
fn set_progress_bar(&self, progress_state: ProgressBarState) -> Result<()>
Sets the taskbar progress state.
§Platform-specific
- Linux / macOS: Progress bar is app-wide and not specific to this window. Only supported desktop environments with
libunity
(e.g. GNOME). - iOS / Android: Unsupported.
sourcefn set_title_bar_style(&self, style: TitleBarStyle) -> Result<()>
fn set_title_bar_style(&self, style: TitleBarStyle) -> Result<()>
Sets the title bar style. Available on macOS only.
§Platform-specific
- Linux / Windows / iOS / Android: Unsupported.
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.