Skip to main content

ferroui_x11/
lib.rs

1//! ferroui-x11
2//!
3//! The windowing platform of FerroUI for the X Window System: windows,
4//! input, screens, cursors, the clipboard and a software render surface
5//! over a connection to an X server. `docs/porting/x11-platform.md` has
6//! the design and the stages.
7//!
8//! The platform talks to the server through Xlib and its extension
9//! libraries, which are opened at run time, so the crate builds without
10//! them. It builds on every Unix system (the libraries exist wherever an X
11//! server does) and is empty elsewhere; the desktop entry point selects it
12//! on Linux.
13//!
14//! Two modules have no dependency on the server at all, and exist on every
15//! system: the key symbols and the key tables.
16
17pub mod keysyms;
18pub mod x11_key_transform;
19
20#[cfg(unix)]
21pub mod activity_tracking_helper;
22#[cfg(unix)]
23pub mod dispatching;
24#[cfg(unix)]
25pub use ferroui_freedesktop::event;
26#[cfg(unix)]
27pub mod glx;
28#[cfg(unix)]
29pub mod ice_lib;
30#[cfg(unix)]
31pub mod interop;
32#[cfg(unix)]
33pub mod lib_c;
34#[cfg(unix)]
35pub mod native_dialogs;
36#[cfg(unix)]
37pub(crate) mod pixel_buffer;
38#[cfg(unix)]
39pub mod raw_event_grouping;
40#[cfg(unix)]
41pub mod screens;
42#[cfg(unix)]
43pub mod selections;
44#[cfg(unix)]
45pub mod sm_lib;
46#[cfg(unix)]
47pub mod transparency_helper;
48#[cfg(unix)]
49mod vulkan;
50#[cfg(unix)]
51pub mod x11_active_window_tracker;
52#[cfg(unix)]
53pub(crate) mod x11_at_spi_accessibility;
54#[cfg(unix)]
55pub mod x11_atoms;
56#[cfg(unix)]
57pub mod x11_cursor_factory;
58#[cfg(unix)]
59pub mod x11_deferred_display_dispatcher;
60#[cfg(unix)]
61pub mod x11_egl_helper;
62#[cfg(unix)]
63pub mod x11_enum_extensions;
64#[cfg(unix)]
65pub mod x11_enums;
66#[cfg(unix)]
67pub mod x11_exception;
68#[cfg(unix)]
69pub mod x11_focus_proxy;
70#[cfg(unix)]
71pub mod x11_framebuffer_surface;
72#[cfg(unix)]
73pub mod x11_globals;
74#[cfg(unix)]
75pub mod x11_icon_loader;
76#[cfg(unix)]
77pub mod x11_info;
78#[cfg(unix)]
79pub mod x11_native_control_host;
80#[cfg(unix)]
81pub mod x11_platform;
82#[cfg(unix)]
83pub mod x11_platform_lifetime_events;
84#[cfg(unix)]
85pub mod x11_structs;
86#[cfg(unix)]
87pub mod x11_window;
88#[cfg(unix)]
89pub(crate) mod x11_window_ime;
90#[cfg(unix)]
91pub(crate) mod x11_window_xim;
92#[cfg(unix)]
93pub mod x11_window_info;
94#[cfg(unix)]
95pub mod x11_window_modes;
96#[cfg(unix)]
97pub mod x_embed_plug;
98#[cfg(unix)]
99pub mod x_embed_tray_icon_impl;
100#[cfg(unix)]
101pub mod x_error;
102#[cfg(unix)]
103pub mod x_resources;
104#[cfg(unix)]
105pub mod x_shm;
106#[cfg(unix)]
107pub mod xi2_manager;
108#[cfg(unix)]
109pub mod xi_structs;
110#[cfg(unix)]
111pub mod xlib;
112
113#[cfg(unix)]
114pub use x_embed_plug::XEmbedPlug;
115#[cfg(unix)]
116pub use x11_platform::{
117    initialize_x11_platform, FerroX11Platform, FerroX11PlatformExtensions, X11PlatformOptions, X11RenderingMode,
118};