Incular logoIncular
API ReferenceApplication

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.

GroupCommands
Identityid, capabilities, observed_state
Placementset_title, set_visible, request_logical_size, set_outer_position, center_on_display, move_relative_to_display
Stateset_minimized, set_maximized, set_fullscreen, set_resizable, set_decorations
Chromeset_window_level, set_window_icon, set_logical_size_limits
Attentionrequest_user_attention, cancel_user_attention
Inputset_cursor_grab, set_cursor_visible, set_cursor_position, set_content_sensitivity, request_focus
Dragbegin_move_drag, begin_resize_drag (8 directions)
Lifecyclerequest_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.

On this page