Expand description
ferroui-x11
The windowing platform of FerroUI for the X Window System: windows,
input, screens, cursors, the clipboard and a software render surface
over a connection to an X server. docs/porting/x11-platform.md has
the design and the stages.
The platform talks to the server through Xlib and its extension libraries, which are opened at run time, so the crate builds without them. It builds on every Unix system (the libraries exist wherever an X server does) and is empty elsewhere; the desktop entry point selects it on Linux.
Two modules have no dependency on the server at all, and exist on every system: the key symbols and the key tables.
Re-exports§
pub use x_embed_plug::XEmbedPlug;pub use x11_platform::initialize_x11_platform;pub use x11_platform::FerroX11Platform;pub use x11_platform::FerroX11PlatformExtensions;pub use x11_platform::X11PlatformOptions;pub use x11_platform::X11RenderingMode;
Modules§
- activity_
tracking_ helper - Whether a window is the active one (the port of
ActivityTrackingHelper.cs). - dispatching
- The event loop of the platform over the connection to the server.
- event
- The multicast events of the backend’s own classes (a C#
event Actionof the reference): a list of handlers that are called in the order they were added. - glx
- Rendering with OpenGL through GLX (the port of the
Glxdirectory). - ice_lib
- The functions of the ICE library the platform calls (the port of
ICELib.cs): the transport of the session management protocol.libICE.so.6is opened at run time. - interop
- The libraries of GLib and GTK, opened at run time.
- keysyms
- The key symbols of the X protocol (X11/keysymdef.h).
- lib_c
- The System V shared memory calls of the C library (the port of
LibC.cs), which the shared memory framebuffer uses. - native_
dialogs - The file dialogs of GTK, the fallback of a window when the desktop portal has no file chooser.
- raw_
event_ grouping - The input queue of a backend that handles input asynchronously (the
port of
Shared/RawEventGrouping.cs, a source file the reference compiles into every backend that uses it). - screens
- The screens of the server: the screens implementation, the providers of the raw screen information and the scale factors.
- selections
- The selections of the X server: the clipboard and the drag and drop
transfers (the port of the
Selectionsdirectory). - sm_lib
- The functions of the session management library the platform calls
(the port of
SMLib.cs).libSM.so.6is opened at run time. - transparency_
helper - The transparency level of a window (the port of
TransparencyHelper.cs). - x11_
active_ window_ tracker - The active window as the window manager publishes it (the port of
X11ActiveWindowTracker.cs). - x11_
atoms - The atoms of the connection (the port of
X11Atoms.cs). - x11_
cursor_ factory - The cursors of the platform (the port of
X11CursorFactory.cs). - x11_
deferred_ display_ dispatcher - The events of the connection that renders (the port of
X11DeferredDisplayDispatcher.cs). - x11_
egl_ helper - EGL on a connection to an X server (the port of
X11EglHelper.cs, and of the EGL part ofX11Platform.InitializeGraphics): the configuration that works with a window of the server, its visual, and the platform graphics. - x11_
enum_ extensions - Conversions of protocol values (the port of
X11EnumExtensions.cs). - x11_
enums - The enumerations of the X protocol the backend names (the port of
X11Enums.cs). - x11_
exception - The error of the X11 backend (the port of
X11Exception.cs). - x11_
focus_ proxy - A child window that takes the keyboard focus for its parent (the port
of
X11FocusProxy.cs). - x11_
framebuffer_ surface - The software render surface of a window (the port of
X11FramebufferSurface.cs): frames are drawn into memory and sent to the server withXPutImage. - x11_
globals - The state of the root window and of the window manager (the port of
X11Globals.cs). - x11_
icon_ loader - Window icons (the port of
X11IconLoader.cs): an icon is the data of the_NET_WM_ICONproperty. - x11_
info - What the backend knows about its connections and the server (the port
of
X11Info.cs). - x11_
key_ transform - The key tables of the X11 platform: the physical key of a scan code of the X server and the key of a key symbol.
- x11_
native_ control_ host - Windows of other clients and toolkits inside a window of the platform
(the port of
X11NativeControlHost.cs). A native control is a child of a holder window (a child window of the top-level that does nothing of its own), which is moved, shown and hidden with the control that hosts it. - x11_
platform - The X11 windowing platform (the port of
X11Platform.cs): opens the connections, registers the platform services and creates the windows. - x11_
platform_ lifetime_ events - The shutdown request of a session manager (the port of
X11PlatformLifetimeEvents.cs): the platform is a client of the X Session Management Protocol throughlibSMoverlibICE, and raises the shutdown request of the application lifetime when the session manager asks whether the session may end. - x11_
structs - The enumerations and the hint structures of
X11Structs.cs. - x11_
window - A window of the X server as a top-level, a window or a popup of the
framework (the port of
X11Window.cs). The keyboard part of the class is inx11_window_ime.rs, the modes inx11_window_modes/. - x11_
window_ info - What the event dispatcher knows about a window (the port of
X11WindowInfo.cs). - x11_
window_ modes - The modes of a window: how it is shown, activated and placed, as a top-level of the window manager or embedded in another window.
- x_
embed_ plug - A control tree of the framework as an XEmbed plug: a window another
toolkit embeds in one of its sockets (the port of
XEmbedPlug.cs). - x_
embed_ tray_ icon_ impl - The tray icon without a session bus (the port of
XEmbedTrayIconImpl.cs). The reference has no tray icon over the XEmbed system tray protocol: this class logs that once and does nothing else. - x_error
- The error handler of the connection (the port of
XError.cs). - x_
resources - The resource database of the server (the port of
XResources.cs): theRESOURCE_MANAGERproperty of the root window, whichxrdbwrites. - x_shm
- Software rendering through the shared memory extension of the server
(the port of the
XShmdirectory). - xi2_
manager - Pointer, touch and scroll input through the X Input extension, version
2 (the port of
XI2Manager.cs). - xi_
structs - The enumerations of the X Input extension (the port of the enumerations of
XIStructs.cs). - xlib
- The calls into Xlib and its extension libraries (the port of
XLib.csandXLib.Helpers.cs).