Skip to main content

Crate ferroui_x11

Crate ferroui_x11 

Source
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 Action of 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 Glx directory).
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.6 is 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 Selections directory).
sm_lib
The functions of the session management library the platform calls (the port of SMLib.cs). libSM.so.6 is 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 of X11Platform.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 with XPutImage.
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_ICON property.
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 through libSM over libICE, 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 in x11_window_ime.rs, the modes in x11_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): the RESOURCE_MANAGER property of the root window, which xrdb writes.
x_shm
Software rendering through the shared memory extension of the server (the port of the XShm directory).
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.cs and XLib.Helpers.cs).