objc2_app_kit/generated/
NSDragging.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdragoperation?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct NSDragOperation(pub NSUInteger);
15bitflags::bitflags! {
16    impl NSDragOperation: NSUInteger {
17        #[doc(alias = "NSDragOperationNone")]
18        const None = 0;
19        #[doc(alias = "NSDragOperationCopy")]
20        const Copy = 1;
21        #[doc(alias = "NSDragOperationLink")]
22        const Link = 2;
23        #[doc(alias = "NSDragOperationGeneric")]
24        const Generic = 4;
25        #[doc(alias = "NSDragOperationPrivate")]
26        const Private = 8;
27        #[doc(alias = "NSDragOperationMove")]
28        const Move = 16;
29        #[doc(alias = "NSDragOperationDelete")]
30        const Delete = 32;
31        #[doc(alias = "NSDragOperationEvery")]
32        const Every = NSUIntegerMax as _;
33        #[doc(alias = "NSDragOperationAll_Obsolete")]
34#[deprecated]
35        const All_Obsolete = 15;
36        #[doc(alias = "NSDragOperationAll")]
37#[deprecated]
38        const All = NSDragOperation::All_Obsolete.0;
39    }
40}
41
42unsafe impl Encode for NSDragOperation {
43    const ENCODING: Encoding = NSUInteger::ENCODING;
44}
45
46unsafe impl RefEncode for NSDragOperation {
47    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
48}
49
50/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdraggingformation?language=objc)
51// NS_ENUM
52#[repr(transparent)]
53#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
54pub struct NSDraggingFormation(pub NSInteger);
55impl NSDraggingFormation {
56    #[doc(alias = "NSDraggingFormationDefault")]
57    pub const Default: Self = Self(0);
58    #[doc(alias = "NSDraggingFormationNone")]
59    pub const None: Self = Self(1);
60    #[doc(alias = "NSDraggingFormationPile")]
61    pub const Pile: Self = Self(2);
62    #[doc(alias = "NSDraggingFormationList")]
63    pub const List: Self = Self(3);
64    #[doc(alias = "NSDraggingFormationStack")]
65    pub const Stack: Self = Self(4);
66}
67
68unsafe impl Encode for NSDraggingFormation {
69    const ENCODING: Encoding = NSInteger::ENCODING;
70}
71
72unsafe impl RefEncode for NSDraggingFormation {
73    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
74}
75
76/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdraggingcontext?language=objc)
77// NS_ENUM
78#[repr(transparent)]
79#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
80pub struct NSDraggingContext(pub NSInteger);
81impl NSDraggingContext {
82    #[doc(alias = "NSDraggingContextOutsideApplication")]
83    pub const OutsideApplication: Self = Self(0);
84    #[doc(alias = "NSDraggingContextWithinApplication")]
85    pub const WithinApplication: Self = Self(1);
86}
87
88unsafe impl Encode for NSDraggingContext {
89    const ENCODING: Encoding = NSInteger::ENCODING;
90}
91
92unsafe impl RefEncode for NSDraggingContext {
93    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
94}
95
96/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdraggingitemenumerationoptions?language=objc)
97// NS_OPTIONS
98#[repr(transparent)]
99#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
100pub struct NSDraggingItemEnumerationOptions(pub NSUInteger);
101bitflags::bitflags! {
102    impl NSDraggingItemEnumerationOptions: NSUInteger {
103        #[doc(alias = "NSDraggingItemEnumerationConcurrent")]
104        const Concurrent = NSEnumerationOptions::Concurrent.0;
105        #[doc(alias = "NSDraggingItemEnumerationClearNonenumeratedImages")]
106        const ClearNonenumeratedImages = 1<<16;
107    }
108}
109
110unsafe impl Encode for NSDraggingItemEnumerationOptions {
111    const ENCODING: Encoding = NSUInteger::ENCODING;
112}
113
114unsafe impl RefEncode for NSDraggingItemEnumerationOptions {
115    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
116}
117
118/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspringloadinghighlight?language=objc)
119// NS_ENUM
120#[repr(transparent)]
121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
122pub struct NSSpringLoadingHighlight(pub NSInteger);
123impl NSSpringLoadingHighlight {
124    #[doc(alias = "NSSpringLoadingHighlightNone")]
125    pub const None: Self = Self(0);
126    #[doc(alias = "NSSpringLoadingHighlightStandard")]
127    pub const Standard: Self = Self(1);
128    #[doc(alias = "NSSpringLoadingHighlightEmphasized")]
129    pub const Emphasized: Self = Self(2);
130}
131
132unsafe impl Encode for NSSpringLoadingHighlight {
133    const ENCODING: Encoding = NSInteger::ENCODING;
134}
135
136unsafe impl RefEncode for NSSpringLoadingHighlight {
137    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
138}
139
140extern_protocol!(
141    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdragginginfo?language=objc)
142    pub unsafe trait NSDraggingInfo: NSObjectProtocol + MainThreadOnly {
143        #[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
144        #[unsafe(method(draggingDestinationWindow))]
145        #[unsafe(method_family = none)]
146        unsafe fn draggingDestinationWindow(&self) -> Option<Retained<NSWindow>>;
147
148        #[unsafe(method(draggingSourceOperationMask))]
149        #[unsafe(method_family = none)]
150        unsafe fn draggingSourceOperationMask(&self) -> NSDragOperation;
151
152        #[unsafe(method(draggingLocation))]
153        #[unsafe(method_family = none)]
154        unsafe fn draggingLocation(&self) -> NSPoint;
155
156        #[unsafe(method(draggedImageLocation))]
157        #[unsafe(method_family = none)]
158        unsafe fn draggedImageLocation(&self) -> NSPoint;
159
160        #[cfg(feature = "NSImage")]
161        #[deprecated = "Use NSDraggingItem objects instead"]
162        #[unsafe(method(draggedImage))]
163        #[unsafe(method_family = none)]
164        unsafe fn draggedImage(&self) -> Option<Retained<NSImage>>;
165
166        #[cfg(feature = "NSPasteboard")]
167        #[unsafe(method(draggingPasteboard))]
168        #[unsafe(method_family = none)]
169        unsafe fn draggingPasteboard(&self) -> Retained<NSPasteboard>;
170
171        #[unsafe(method(draggingSource))]
172        #[unsafe(method_family = none)]
173        unsafe fn draggingSource(&self) -> Option<Retained<AnyObject>>;
174
175        #[unsafe(method(draggingSequenceNumber))]
176        #[unsafe(method_family = none)]
177        unsafe fn draggingSequenceNumber(&self) -> NSInteger;
178
179        #[unsafe(method(slideDraggedImageTo:))]
180        #[unsafe(method_family = none)]
181        unsafe fn slideDraggedImageTo(&self, screen_point: NSPoint);
182
183        #[deprecated = "Use NSFilePromiseReceiver objects instead"]
184        #[unsafe(method(namesOfPromisedFilesDroppedAtDestination:))]
185        #[unsafe(method_family = none)]
186        unsafe fn namesOfPromisedFilesDroppedAtDestination(
187            &self,
188            drop_destination: &NSURL,
189        ) -> Option<Retained<NSArray<NSString>>>;
190
191        #[unsafe(method(draggingFormation))]
192        #[unsafe(method_family = none)]
193        unsafe fn draggingFormation(&self) -> NSDraggingFormation;
194
195        /// Setter for [`draggingFormation`][Self::draggingFormation].
196        #[unsafe(method(setDraggingFormation:))]
197        #[unsafe(method_family = none)]
198        unsafe fn setDraggingFormation(&self, dragging_formation: NSDraggingFormation);
199
200        #[unsafe(method(animatesToDestination))]
201        #[unsafe(method_family = none)]
202        unsafe fn animatesToDestination(&self) -> bool;
203
204        /// Setter for [`animatesToDestination`][Self::animatesToDestination].
205        #[unsafe(method(setAnimatesToDestination:))]
206        #[unsafe(method_family = none)]
207        unsafe fn setAnimatesToDestination(&self, animates_to_destination: bool);
208
209        #[unsafe(method(numberOfValidItemsForDrop))]
210        #[unsafe(method_family = none)]
211        unsafe fn numberOfValidItemsForDrop(&self) -> NSInteger;
212
213        /// Setter for [`numberOfValidItemsForDrop`][Self::numberOfValidItemsForDrop].
214        #[unsafe(method(setNumberOfValidItemsForDrop:))]
215        #[unsafe(method_family = none)]
216        unsafe fn setNumberOfValidItemsForDrop(&self, number_of_valid_items_for_drop: NSInteger);
217
218        #[cfg(all(
219            feature = "NSDraggingItem",
220            feature = "NSPasteboard",
221            feature = "NSResponder",
222            feature = "NSView",
223            feature = "block2"
224        ))]
225        #[unsafe(method(enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:))]
226        #[unsafe(method_family = none)]
227        unsafe fn enumerateDraggingItemsWithOptions_forView_classes_searchOptions_usingBlock(
228            &self,
229            enum_opts: NSDraggingItemEnumerationOptions,
230            view: Option<&NSView>,
231            class_array: &NSArray<AnyClass>,
232            search_options: &NSDictionary<NSPasteboardReadingOptionKey, AnyObject>,
233            block: &block2::DynBlock<dyn Fn(NonNull<NSDraggingItem>, NSInteger, NonNull<Bool>)>,
234        );
235
236        #[unsafe(method(springLoadingHighlight))]
237        #[unsafe(method_family = none)]
238        unsafe fn springLoadingHighlight(&self) -> NSSpringLoadingHighlight;
239
240        #[unsafe(method(resetSpringLoading))]
241        #[unsafe(method_family = none)]
242        unsafe fn resetSpringLoading(&self);
243    }
244);
245
246extern_protocol!(
247    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdraggingdestination?language=objc)
248    pub unsafe trait NSDraggingDestination: NSObjectProtocol + MainThreadOnly {
249        #[optional]
250        #[unsafe(method(draggingEntered:))]
251        #[unsafe(method_family = none)]
252        unsafe fn draggingEntered(
253            &self,
254            sender: &ProtocolObject<dyn NSDraggingInfo>,
255        ) -> NSDragOperation;
256
257        #[optional]
258        #[unsafe(method(draggingUpdated:))]
259        #[unsafe(method_family = none)]
260        unsafe fn draggingUpdated(
261            &self,
262            sender: &ProtocolObject<dyn NSDraggingInfo>,
263        ) -> NSDragOperation;
264
265        #[optional]
266        #[unsafe(method(draggingExited:))]
267        #[unsafe(method_family = none)]
268        unsafe fn draggingExited(&self, sender: Option<&ProtocolObject<dyn NSDraggingInfo>>);
269
270        #[optional]
271        #[unsafe(method(prepareForDragOperation:))]
272        #[unsafe(method_family = none)]
273        unsafe fn prepareForDragOperation(
274            &self,
275            sender: &ProtocolObject<dyn NSDraggingInfo>,
276        ) -> bool;
277
278        #[optional]
279        #[unsafe(method(performDragOperation:))]
280        #[unsafe(method_family = none)]
281        unsafe fn performDragOperation(&self, sender: &ProtocolObject<dyn NSDraggingInfo>) -> bool;
282
283        #[optional]
284        #[unsafe(method(concludeDragOperation:))]
285        #[unsafe(method_family = none)]
286        unsafe fn concludeDragOperation(&self, sender: Option<&ProtocolObject<dyn NSDraggingInfo>>);
287
288        #[optional]
289        #[unsafe(method(draggingEnded:))]
290        #[unsafe(method_family = none)]
291        unsafe fn draggingEnded(&self, sender: &ProtocolObject<dyn NSDraggingInfo>);
292
293        #[optional]
294        #[unsafe(method(wantsPeriodicDraggingUpdates))]
295        #[unsafe(method_family = none)]
296        unsafe fn wantsPeriodicDraggingUpdates(&self) -> bool;
297
298        #[optional]
299        #[unsafe(method(updateDraggingItemsForDrag:))]
300        #[unsafe(method_family = none)]
301        unsafe fn updateDraggingItemsForDrag(
302            &self,
303            sender: Option<&ProtocolObject<dyn NSDraggingInfo>>,
304        );
305    }
306);
307
308extern_protocol!(
309    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsdraggingsource?language=objc)
310    pub unsafe trait NSDraggingSource: NSObjectProtocol + MainThreadOnly {
311        #[cfg(feature = "NSDraggingSession")]
312        #[unsafe(method(draggingSession:sourceOperationMaskForDraggingContext:))]
313        #[unsafe(method_family = none)]
314        unsafe fn draggingSession_sourceOperationMaskForDraggingContext(
315            &self,
316            session: &NSDraggingSession,
317            context: NSDraggingContext,
318        ) -> NSDragOperation;
319
320        #[cfg(feature = "NSDraggingSession")]
321        #[optional]
322        #[unsafe(method(draggingSession:willBeginAtPoint:))]
323        #[unsafe(method_family = none)]
324        unsafe fn draggingSession_willBeginAtPoint(
325            &self,
326            session: &NSDraggingSession,
327            screen_point: NSPoint,
328        );
329
330        #[cfg(feature = "NSDraggingSession")]
331        #[optional]
332        #[unsafe(method(draggingSession:movedToPoint:))]
333        #[unsafe(method_family = none)]
334        unsafe fn draggingSession_movedToPoint(
335            &self,
336            session: &NSDraggingSession,
337            screen_point: NSPoint,
338        );
339
340        #[cfg(feature = "NSDraggingSession")]
341        #[optional]
342        #[unsafe(method(draggingSession:endedAtPoint:operation:))]
343        #[unsafe(method_family = none)]
344        unsafe fn draggingSession_endedAtPoint_operation(
345            &self,
346            session: &NSDraggingSession,
347            screen_point: NSPoint,
348            operation: NSDragOperation,
349        );
350
351        #[cfg(feature = "NSDraggingSession")]
352        #[optional]
353        #[unsafe(method(ignoreModifierKeysForDraggingSession:))]
354        #[unsafe(method_family = none)]
355        unsafe fn ignoreModifierKeysForDraggingSession(&self, session: &NSDraggingSession) -> bool;
356    }
357);
358
359/// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspringloadingoptions?language=objc)
360// NS_OPTIONS
361#[repr(transparent)]
362#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
363pub struct NSSpringLoadingOptions(pub NSUInteger);
364bitflags::bitflags! {
365    impl NSSpringLoadingOptions: NSUInteger {
366        #[doc(alias = "NSSpringLoadingDisabled")]
367        const Disabled = 0;
368        #[doc(alias = "NSSpringLoadingEnabled")]
369        const Enabled = 1<<0;
370        #[doc(alias = "NSSpringLoadingContinuousActivation")]
371        const ContinuousActivation = 1<<1;
372        #[doc(alias = "NSSpringLoadingNoHover")]
373        const NoHover = 1<<3;
374    }
375}
376
377unsafe impl Encode for NSSpringLoadingOptions {
378    const ENCODING: Encoding = NSUInteger::ENCODING;
379}
380
381unsafe impl RefEncode for NSSpringLoadingOptions {
382    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
383}
384
385extern_protocol!(
386    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsspringloadingdestination?language=objc)
387    pub unsafe trait NSSpringLoadingDestination: NSObjectProtocol + MainThreadOnly {
388        #[unsafe(method(springLoadingActivated:draggingInfo:))]
389        #[unsafe(method_family = none)]
390        unsafe fn springLoadingActivated_draggingInfo(
391            &self,
392            activated: bool,
393            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
394        );
395
396        #[unsafe(method(springLoadingHighlightChanged:))]
397        #[unsafe(method_family = none)]
398        unsafe fn springLoadingHighlightChanged(
399            &self,
400            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
401        );
402
403        #[optional]
404        #[unsafe(method(springLoadingEntered:))]
405        #[unsafe(method_family = none)]
406        unsafe fn springLoadingEntered(
407            &self,
408            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
409        ) -> NSSpringLoadingOptions;
410
411        #[optional]
412        #[unsafe(method(springLoadingUpdated:))]
413        #[unsafe(method_family = none)]
414        unsafe fn springLoadingUpdated(
415            &self,
416            dragging_info: &ProtocolObject<dyn NSDraggingInfo>,
417        ) -> NSSpringLoadingOptions;
418
419        #[optional]
420        #[unsafe(method(springLoadingExited:))]
421        #[unsafe(method_family = none)]
422        unsafe fn springLoadingExited(&self, dragging_info: &ProtocolObject<dyn NSDraggingInfo>);
423
424        #[optional]
425        #[unsafe(method(draggingEnded:))]
426        #[unsafe(method_family = none)]
427        unsafe fn draggingEnded(&self, dragging_info: &ProtocolObject<dyn NSDraggingInfo>);
428    }
429);