1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
#[cfg(feature = "block2")]
use block2::*;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

// NS_TYPED_EXTENSIBLE_ENUM
pub type NSDraggingImageComponentKey = NSString;

extern "C" {
    pub static NSDraggingImageComponentIconKey: &'static NSDraggingImageComponentKey;
}

extern "C" {
    pub static NSDraggingImageComponentLabelKey: &'static NSDraggingImageComponentKey;
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSDraggingImageComponent;

    unsafe impl ClassType for NSDraggingImageComponent {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl NSObjectProtocol for NSDraggingImageComponent {}

extern_methods!(
    unsafe impl NSDraggingImageComponent {
        #[method_id(@__retain_semantics Other draggingImageComponentWithKey:)]
        pub unsafe fn draggingImageComponentWithKey(
            key: &NSDraggingImageComponentKey,
        ) -> Id<NSDraggingImageComponent>;

        #[method_id(@__retain_semantics Init initWithKey:)]
        pub unsafe fn initWithKey(
            this: Allocated<Self>,
            key: &NSDraggingImageComponentKey,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method_id(@__retain_semantics Other key)]
        pub unsafe fn key(&self) -> Id<NSDraggingImageComponentKey>;

        #[method(setKey:)]
        pub unsafe fn setKey(&self, key: &NSDraggingImageComponentKey);

        #[method_id(@__retain_semantics Other contents)]
        pub unsafe fn contents(&self) -> Option<Id<AnyObject>>;

        #[method(setContents:)]
        pub unsafe fn setContents(&self, contents: Option<&AnyObject>);

        #[method(frame)]
        pub unsafe fn frame(&self) -> NSRect;

        #[method(setFrame:)]
        pub unsafe fn setFrame(&self, frame: NSRect);
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSDraggingImageComponent {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSDraggingItem;

    unsafe impl ClassType for NSDraggingItem {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl NSObjectProtocol for NSDraggingItem {}

extern_methods!(
    unsafe impl NSDraggingItem {
        #[cfg(feature = "NSPasteboard")]
        #[method_id(@__retain_semantics Init initWithPasteboardWriter:)]
        pub unsafe fn initWithPasteboardWriter(
            this: Allocated<Self>,
            pasteboard_writer: &ProtocolObject<dyn NSPasteboardWriting>,
        ) -> Id<Self>;

        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Id<Self>;

        #[method_id(@__retain_semantics Other item)]
        pub unsafe fn item(&self) -> Id<AnyObject>;

        #[method(draggingFrame)]
        pub unsafe fn draggingFrame(&self) -> NSRect;

        #[method(setDraggingFrame:)]
        pub unsafe fn setDraggingFrame(&self, dragging_frame: NSRect);

        #[cfg(feature = "block2")]
        #[method(imageComponentsProvider)]
        pub unsafe fn imageComponentsProvider(
            &self,
        ) -> *mut Block<dyn Fn() -> NonNull<NSArray<NSDraggingImageComponent>>>;

        #[cfg(feature = "block2")]
        #[method(setImageComponentsProvider:)]
        pub unsafe fn setImageComponentsProvider(
            &self,
            image_components_provider: Option<
                &Block<dyn Fn() -> NonNull<NSArray<NSDraggingImageComponent>>>,
            >,
        );

        #[method(setDraggingFrame:contents:)]
        pub unsafe fn setDraggingFrame_contents(&self, frame: NSRect, contents: Option<&AnyObject>);

        #[method_id(@__retain_semantics Other imageComponents)]
        pub unsafe fn imageComponents(&self) -> Option<Id<NSArray<NSDraggingImageComponent>>>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSDraggingItem {
        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Id<Self>;
    }
);