Skip to content

Commit 7ca7e6a

Browse files
committed
Implement new drag-and-drop API for winit-x11
This adds an implementation of the `DataTransfer`-style drag-and-drop/clipboard API for Linux + X11.
1 parent f49ff21 commit 7ca7e6a

7 files changed

Lines changed: 637 additions & 208 deletions

File tree

winit-x11/src/atoms.rs

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ macro_rules! atom_manager {
1313

1414
/// Indices into the `Atoms` struct.
1515
#[derive(Copy, Clone, Debug)]
16-
#[allow(non_camel_case_types)]
16+
#[allow(non_camel_case_types, clippy::upper_case_acronyms)]
1717
pub enum AtomName {
1818
$($name,)*
1919
}
@@ -34,7 +34,10 @@ macro_rules! atom_manager {
3434
atom_manager! {
3535
// General Use Atoms
3636
CARD32,
37+
STRING,
3738
UTF8_STRING,
39+
TARGETS,
40+
SAVE_TARGETS,
3841
WM_CHANGE_STATE,
3942
WM_CLIENT_MACHINE,
4043
WM_DELETE_WINDOW,
@@ -87,11 +90,39 @@ atom_manager! {
8790
XdndDrop,
8891
XdndPosition,
8992
XdndStatus,
90-
XdndActionPrivate,
93+
XdndActionCopy,
9194
XdndSelection,
9295
XdndFinished,
9396
XdndTypeList,
97+
98+
// MIME types for reading selections
9499
TextUriList: b"text/uri-list",
100+
TextPlain: b"text/plain",
101+
TextPlainCharsetUtf8: b"text/plain;charset=utf-8",
102+
TextHtml: b"text/html",
103+
TextHtmlCharsetUtf8: b"text/html;charset=utf-8",
104+
ApplicationRtf: b"application/rtf",
105+
AudioAac: b"audio/aac",
106+
AudioAiff: b"audio/aiff",
107+
AudioFlac: b"audio/flac",
108+
AudioWav: b"audio/wav",
109+
AudioWave: b"audio/wave",
110+
AudioXWav: b"audio/x-wav",
111+
AudioVndWav: b"audio/vnd.wav",
112+
AudioVndWave: b"audio/vnd.wave",
113+
AudioMpeg: b"audio/mpeg",
114+
AudioOgg: b"audio/ogg",
115+
ImageBmp: b"image/bmp",
116+
ImageGif: b"image/gif",
117+
ImageJpeg: b"image/jpeg",
118+
ImagePjpeg: b"image/pjpeg",
119+
ImagePng: b"image/png",
120+
ImageSvg: b"image/svg+xml",
121+
ImageTiff: b"image/tiff",
122+
ImageWebp: b"image/webp",
123+
ImageXIcon: b"image/x-icon",
124+
ImageRaw: b"image/x-panasonic-raw",
125+
95126
None: b"None",
96127

97128
// Miscellaneous Atoms

0 commit comments

Comments
 (0)