WindowHandle & WindowOpener
Every native window command with parameters and error cases.
WindowHandle (thread-safe, enqueues for the UI turn) and WindowOpener
(retainable in callbacks, no native handle). From
Application or BuildContext.
| Group | Commands |
|---|---|
| Identity | id, capabilities, observed_state |
| Placement | set_title, set_visible, request_logical_size, set_outer_position, center_on_display, move_relative_to_display |
| State | set_minimized, set_maximized, set_fullscreen, set_resizable, set_decorations |
| Chrome | set_window_level, set_window_icon, set_logical_size_limits |
| Attention | request_user_attention, cancel_user_attention |
| Input | set_cursor_grab, set_cursor_visible, set_cursor_position, set_content_sensitivity, request_focus |
| Drag | begin_move_drag, begin_resize_drag (8 directions) |
| Lifecycle | request_redraw, close |
Opening
use incular::prelude::*;
fn main() {
let mut app =
Application::new(|_cx| Text::new("Primary").into()).expect("valid application");
let second = app
.open_window(WindowOptions::default(), Text::new("Second").into())
.expect("second window");
let _ = second.set_title("Second");
let _ = second.request_redraw();
println!("windows: {}", app.active_window_ids().len());
incular::run(app).expect("run application");
}open_window_with / open_restorable_window_with take builder closures
instead of roots; cx.window_opener() hands a retainable opener to
callbacks.
Queries
id(), capabilities(), file_dialogs(), observed_state(),
displays(), display(id), primary_display(), current_display() —
exercised in the runnable program above via active_window_ids().
Commands
All return Result<(), WindowCommandEnqueueError> unless noted — placement,
state, chrome, attention, input, drag, and lifecycle verbs from the command
table above, with set_title and request_redraw exercised in the runnable
program.
WindowResizeDirection: all eight compass directions. NativeOperationRequest
is a Future<Output = PlatformOperationResult>; dropping detaches delivery
only. WindowPlacementError: Unsupported / OuterSizeUnavailable /
DisplayGeometryUnavailable / Enqueue.
NativeWindowCommand: Create { window_id, options } / Operate(cmd) —
the portable UI-thread command for adapters. NativeOperationCompletion { window_id, request_id, result } routes one backend completion;
NativeOperationCompletionStatus: Completed / UnknownRequest /
TargetMismatch / StaleTarget. NativeRequestId(u64) is runtime-allocated,
never a native handle. PlatformOperationError { kind, context? } with
PlatformOperationErrorKind: Unsupported / Unavailable /
RejectedByPlatform / InvalidState / StaleResource / NativeFailure.
Related: Application.