1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//! Stipple's platform layer.
//!
//! This is the **only** crate with per-OS code. It owns native windowing,
//! input, IME, clipboard, DPI, vsync, and surface acquisition, and exposes
//! them through a small platform-neutral vocabulary: [`Event`], [`Window`],
//! [`WindowAttributes`], and a [`ControlFlow`]-driven loop. Everything above
//! this layer (`stipple::core`, widgets, …) is free of platform `cfg`s.
//!
//! Backends live under [`backend`] and are selected by `cfg`. The
//! [`backend::headless`] backend is always available and implements the full
//! contract without touching any OS API — it powers tests and the
//! golden-image conformance suite. The native **X11** backend is pure-socket
//! and safe; native backends that require OS FFI (e.g. Win32) opt into
//! `unsafe` per-module via `#[allow(unsafe_code)]`.
// Unsafe is denied crate-wide and re-allowed only on the FFI backend modules
// that genuinely need it (the X11 and headless backends stay safe).
/// Hand-written D-Bus / AT-SPI accessibility bridge (Linux).
/// Platform-neutral accessibility tree handed to each backend's OS bridge.
/// The system clipboard (plain text) on Windows, macOS, iOS and Android.
/// Dead keys and compose sequences from the libX11 Compose file (X11 and
/// Wayland, where composing is the client's job).
pub
/// Native file dialogs (open/save/folder) backed by each OS's picker.
/// The display-driven frame clock that paces animations.
/// Key and scroll translation tables shared by the native backends.
/// X11 keysym names and their Unicode characters (generated table).
/// Keyboard shortcuts and the native menu bar description.
/// OS-drawn controls and system appearance for the native theme.
/// seccomp-BPF syscall sandbox for the content process (the hardening layer of
/// the Stipple-as-compositor content path).
/// File-descriptor passing over a Unix socket (`SCM_RIGHTS`) — the transport for
/// DRI3/Present GPU buffers and the browser content-process IPC.
/// Opening URLs and files in the default app, notifications, and the plumbing
/// behind tray icons.
/// `memfd`-backed shared-memory buffers — the CPU side of the content path (a
/// content process's pixels shared with the UI process, the dual of GPU dma-buf).
/// A monotonic clock that also works on the web.
/// Hand-written UI Automation provider (Windows accessibility bridge).
/// Waking the event loop from timers and other threads.
pub use ;
pub use PlatformError;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
/// What a window should do after the application handles an event.