mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-29 04:40:04 -04:00
This commit implements a new API for drag and drop, with a `DataTransfer` type which abstracts over the various clipboard/drag and drop APIs across different platforms. I built this on top of #2429 although admittedly I ended up removing pretty much all of their work while I was reworking the design. This is being built in order to help support [drag-and-drop work](https://github.com/slint-ui/slint/issues/1967) in Slint's winit backend. As part of that work, I did extensive research on how drag-and-drop and clipboard APIs are implemented across different platforms, and wrote a (still WIP) research document that can be found [here](https://gist.github.com/eira-fransham/06750cf8d25ade08d362a0ca8dfafe06). The new API is inspired by the browser's [`DataTransfer`](https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer) API.
121 lines
2.6 KiB
TOML
121 lines
2.6 KiB
TOML
[package]
|
|
description = "Winit's Appkit / macOS backend"
|
|
documentation = "https://docs.rs/winit-appkit"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
name = "winit-appkit"
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
version.workspace = true
|
|
|
|
[features]
|
|
serde = ["dep:serde", "bitflags/serde", "smol_str/serde", "dpi/serde"]
|
|
|
|
[dependencies]
|
|
bitflags.workspace = true
|
|
dpi.workspace = true
|
|
rwh_06.workspace = true
|
|
serde = { workspace = true, optional = true }
|
|
smol_str.workspace = true
|
|
tracing.workspace = true
|
|
winit-core.workspace = true
|
|
|
|
# Platform-specific
|
|
[target.'cfg(target_vendor = "apple")'.dependencies]
|
|
block2.workspace = true
|
|
dispatch2 = { workspace = true, features = ["std", "objc2"] }
|
|
objc2.workspace = true
|
|
objc2-app-kit = { workspace = true, features = [
|
|
"std",
|
|
"objc2-core-foundation",
|
|
"NSAppearance",
|
|
"NSApplication",
|
|
"NSBitmapImageRep",
|
|
"NSButton",
|
|
"NSColor",
|
|
"NSControl",
|
|
"NSCursor",
|
|
"NSDragging",
|
|
"NSDraggingItem",
|
|
"NSDraggingSession",
|
|
"NSEvent",
|
|
"NSGraphics",
|
|
"NSGraphicsContext",
|
|
"NSImage",
|
|
"NSImageRep",
|
|
"NSMenu",
|
|
"NSMenuItem",
|
|
"NSOpenGLView",
|
|
"NSPanel",
|
|
"NSPasteboard",
|
|
"NSPasteboardItem",
|
|
"NSResponder",
|
|
"NSRunningApplication",
|
|
"NSScreen",
|
|
"NSTextInputClient",
|
|
"NSTextInputContext",
|
|
"NSTrackingArea",
|
|
"NSToolbar",
|
|
"NSView",
|
|
"NSWindow",
|
|
"NSWindowScripting",
|
|
"NSWindowTabGroup",
|
|
] }
|
|
objc2-core-foundation = { workspace = true, features = [
|
|
"std",
|
|
"block2",
|
|
"CFBase",
|
|
"CFCGTypes",
|
|
"CFData",
|
|
"CFRunLoop",
|
|
"CFString",
|
|
"CFUUID",
|
|
] }
|
|
objc2-core-graphics = { workspace = true, features = [
|
|
"std",
|
|
"libc",
|
|
"CGDirectDisplay",
|
|
"CGDisplayConfiguration",
|
|
"CGDisplayFade",
|
|
"CGError",
|
|
"CGRemoteOperation",
|
|
"CGWindowLevel",
|
|
] }
|
|
objc2-core-video = { workspace = true, features = [
|
|
"std",
|
|
"objc2-core-graphics",
|
|
"CVBase",
|
|
"CVReturn",
|
|
"CVDisplayLink",
|
|
] }
|
|
objc2-foundation = { workspace = true, features = [
|
|
"std",
|
|
"block2",
|
|
"objc2-core-foundation",
|
|
"NSArray",
|
|
"NSAttributedString",
|
|
"NSData",
|
|
"NSDictionary",
|
|
"NSDistributedNotificationCenter",
|
|
"NSEnumerator",
|
|
"NSGeometry",
|
|
"NSKeyValueObserving",
|
|
"NSNotification",
|
|
"NSObjCRuntime",
|
|
"NSOperation",
|
|
"NSPathUtilities",
|
|
"NSProcessInfo",
|
|
"NSRunLoop",
|
|
"NSString",
|
|
"NSThread",
|
|
"NSValue",
|
|
] }
|
|
winit-common = { workspace = true, features = ["core-foundation", "event-handler", "foundation"] }
|
|
|
|
[dev-dependencies]
|
|
winit.workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
targets = ["aarch64-apple-darwin", "x86_64-apple-darwin"]
|