Package limn.backend.lwjgl.transfer
@NullMarked
package limn.backend.lwjgl.transfer
The system clipboard beyond GLFW's text: one
NativeClipboard
per windowing system, which speaks in native types and bytes, under one
PlatformClipboard, which turns a
limn.transfer.Transfer into those and back. Internal to the backend.-
ClassDescriptionThe canonical names a
NativeClipboardspeaks, and their spellings on the two Linux windowing systems, where a type is a string any program may write its own way.Calling a C function, and being called by one, by a signature written as a string:pis a pointer or anything as wide (long,Atom,Window),ia 32-bit integer, and after>the result,vfor none.What a C caller is answered by: its arguments widened, and a result that is widened back.The macOS clipboard: the generalNSPasteboard, on the main thread, which is the UI thread.A window's part in the system's drag and drop on macOS: it begins anNSDraggingSessionfrom the window's view, with the pasteboard items a copy would write and the picture the scene cut for it, and it answers as a dragging destination for whatever is dragged over the view, from this program or another.One windowing system's clipboard, in the terms every one of them shares: a list of type names and the bytes behind each.The clipboard an application sees, over one system'sNativeClipboard: a transfer going out becomes type names and, when a program asks, bytes; what another program offers comes back as formats and, when the application asks, values.Files as thetext/uri-listof RFC 2483: onefile:URI a line, CRLF between.The Wayland clipboard: awl_data_deviceof our own on the display GLFW opened.One window's part in the system's drags: it begins them, and stops taking them when it closes.The Windows clipboard, through a message-only window of our own.The system's drag and drop on Windows, which is OLE's: a window is a destination once anIDropTargetis registered for it, and a drag out of it isDoDragDropwith a data object and anIDropSource.The X11 clipboard: theCLIPBOARDselection, owned and converted by a hidden window on a connection of our own.The system's drag and drop on X11, which is the XDND protocol (version 5): client messages between a source and the window under the pointer, and theXdndSelectionto hand the data over.