objc2_event_kit_ui/generated/
EKCalendarChooser.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::*;
6#[cfg(feature = "objc2-event-kit")]
7use objc2_event_kit::*;
8use objc2_foundation::*;
9#[cfg(feature = "objc2-ui-kit")]
10use objc2_ui_kit::*;
11
12use crate::*;
13
14/// [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekcalendarchooserselectionstyle?language=objc)
15// NS_ENUM
16#[repr(transparent)]
17#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
18pub struct EKCalendarChooserSelectionStyle(pub NSInteger);
19impl EKCalendarChooserSelectionStyle {
20    #[doc(alias = "EKCalendarChooserSelectionStyleSingle")]
21    pub const Single: Self = Self(0);
22    #[doc(alias = "EKCalendarChooserSelectionStyleMultiple")]
23    pub const Multiple: Self = Self(1);
24}
25
26unsafe impl Encode for EKCalendarChooserSelectionStyle {
27    const ENCODING: Encoding = NSInteger::ENCODING;
28}
29
30unsafe impl RefEncode for EKCalendarChooserSelectionStyle {
31    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
32}
33
34/// [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekcalendarchooserdisplaystyle?language=objc)
35// NS_ENUM
36#[repr(transparent)]
37#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
38pub struct EKCalendarChooserDisplayStyle(pub NSInteger);
39impl EKCalendarChooserDisplayStyle {
40    #[doc(alias = "EKCalendarChooserDisplayAllCalendars")]
41    pub const AllCalendars: Self = Self(0);
42    #[doc(alias = "EKCalendarChooserDisplayWritableCalendarsOnly")]
43    pub const WritableCalendarsOnly: Self = Self(1);
44}
45
46unsafe impl Encode for EKCalendarChooserDisplayStyle {
47    const ENCODING: Encoding = NSInteger::ENCODING;
48}
49
50unsafe impl RefEncode for EKCalendarChooserDisplayStyle {
51    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
52}
53
54extern_class!(
55    /// [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekcalendarchooser?language=objc)
56    #[unsafe(super(UIViewController, UIResponder, NSObject))]
57    #[derive(Debug, PartialEq, Eq, Hash)]
58    #[cfg(feature = "objc2-ui-kit")]
59    pub struct EKCalendarChooser;
60);
61
62#[cfg(feature = "objc2-ui-kit")]
63extern_conformance!(
64    unsafe impl NSCoding for EKCalendarChooser {}
65);
66
67#[cfg(feature = "objc2-ui-kit")]
68extern_conformance!(
69    unsafe impl NSObjectProtocol for EKCalendarChooser {}
70);
71
72#[cfg(feature = "objc2-ui-kit")]
73extern_conformance!(
74    unsafe impl UIAppearanceContainer for EKCalendarChooser {}
75);
76
77#[cfg(feature = "objc2-ui-kit")]
78extern_conformance!(
79    unsafe impl UIContentContainer for EKCalendarChooser {}
80);
81
82#[cfg(feature = "objc2-ui-kit")]
83extern_conformance!(
84    unsafe impl UIFocusEnvironment for EKCalendarChooser {}
85);
86
87#[cfg(feature = "objc2-ui-kit")]
88extern_conformance!(
89    unsafe impl UIResponderStandardEditActions for EKCalendarChooser {}
90);
91
92#[cfg(feature = "objc2-ui-kit")]
93extern_conformance!(
94    unsafe impl UITraitEnvironment for EKCalendarChooser {}
95);
96
97#[cfg(feature = "objc2-ui-kit")]
98impl EKCalendarChooser {
99    extern_methods!(
100        #[cfg(feature = "objc2-event-kit")]
101        #[unsafe(method(initWithSelectionStyle:displayStyle:eventStore:))]
102        #[unsafe(method_family = init)]
103        pub unsafe fn initWithSelectionStyle_displayStyle_eventStore(
104            this: Allocated<Self>,
105            selection_style: EKCalendarChooserSelectionStyle,
106            display_style: EKCalendarChooserDisplayStyle,
107            event_store: &EKEventStore,
108        ) -> Retained<Self>;
109
110        #[cfg(feature = "objc2-event-kit")]
111        #[unsafe(method(initWithSelectionStyle:displayStyle:entityType:eventStore:))]
112        #[unsafe(method_family = init)]
113        pub unsafe fn initWithSelectionStyle_displayStyle_entityType_eventStore(
114            this: Allocated<Self>,
115            style: EKCalendarChooserSelectionStyle,
116            display_style: EKCalendarChooserDisplayStyle,
117            entity_type: EKEntityType,
118            event_store: &EKEventStore,
119        ) -> Retained<Self>;
120
121        #[unsafe(method(selectionStyle))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn selectionStyle(&self) -> EKCalendarChooserSelectionStyle;
124
125        #[unsafe(method(delegate))]
126        #[unsafe(method_family = none)]
127        pub unsafe fn delegate(
128            &self,
129        ) -> Option<Retained<ProtocolObject<dyn EKCalendarChooserDelegate>>>;
130
131        /// Setter for [`delegate`][Self::delegate].
132        ///
133        /// This is a [weak property][objc2::topics::weak_property].
134        #[unsafe(method(setDelegate:))]
135        #[unsafe(method_family = none)]
136        pub unsafe fn setDelegate(
137            &self,
138            delegate: Option<&ProtocolObject<dyn EKCalendarChooserDelegate>>,
139        );
140
141        #[unsafe(method(showsDoneButton))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn showsDoneButton(&self) -> bool;
144
145        /// Setter for [`showsDoneButton`][Self::showsDoneButton].
146        #[unsafe(method(setShowsDoneButton:))]
147        #[unsafe(method_family = none)]
148        pub unsafe fn setShowsDoneButton(&self, shows_done_button: bool);
149
150        #[unsafe(method(showsCancelButton))]
151        #[unsafe(method_family = none)]
152        pub unsafe fn showsCancelButton(&self) -> bool;
153
154        /// Setter for [`showsCancelButton`][Self::showsCancelButton].
155        #[unsafe(method(setShowsCancelButton:))]
156        #[unsafe(method_family = none)]
157        pub unsafe fn setShowsCancelButton(&self, shows_cancel_button: bool);
158
159        #[cfg(feature = "objc2-event-kit")]
160        #[unsafe(method(selectedCalendars))]
161        #[unsafe(method_family = none)]
162        pub unsafe fn selectedCalendars(&self) -> Retained<NSSet<EKCalendar>>;
163
164        #[cfg(feature = "objc2-event-kit")]
165        /// Setter for [`selectedCalendars`][Self::selectedCalendars].
166        ///
167        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
168        #[unsafe(method(setSelectedCalendars:))]
169        #[unsafe(method_family = none)]
170        pub unsafe fn setSelectedCalendars(&self, selected_calendars: &NSSet<EKCalendar>);
171    );
172}
173
174/// Methods declared on superclass `UIViewController`.
175#[cfg(feature = "objc2-ui-kit")]
176impl EKCalendarChooser {
177    extern_methods!(
178        #[unsafe(method(initWithNibName:bundle:))]
179        #[unsafe(method_family = init)]
180        pub unsafe fn initWithNibName_bundle(
181            this: Allocated<Self>,
182            nib_name_or_nil: Option<&NSString>,
183            nib_bundle_or_nil: Option<&NSBundle>,
184        ) -> Retained<Self>;
185
186        /// # Safety
187        ///
188        /// `coder` possibly has further requirements.
189        #[unsafe(method(initWithCoder:))]
190        #[unsafe(method_family = init)]
191        pub unsafe fn initWithCoder(
192            this: Allocated<Self>,
193            coder: &NSCoder,
194        ) -> Option<Retained<Self>>;
195    );
196}
197
198/// Methods declared on superclass `NSObject`.
199#[cfg(feature = "objc2-ui-kit")]
200impl EKCalendarChooser {
201    extern_methods!(
202        #[unsafe(method(init))]
203        #[unsafe(method_family = init)]
204        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
205
206        #[unsafe(method(new))]
207        #[unsafe(method_family = new)]
208        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
209    );
210}
211
212extern_protocol!(
213    /// [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekcalendarchooserdelegate?language=objc)
214    pub unsafe trait EKCalendarChooserDelegate: NSObjectProtocol {
215        #[cfg(feature = "objc2-ui-kit")]
216        #[optional]
217        #[unsafe(method(calendarChooserSelectionDidChange:))]
218        #[unsafe(method_family = none)]
219        unsafe fn calendarChooserSelectionDidChange(&self, calendar_chooser: &EKCalendarChooser);
220
221        #[cfg(feature = "objc2-ui-kit")]
222        #[optional]
223        #[unsafe(method(calendarChooserDidFinish:))]
224        #[unsafe(method_family = none)]
225        unsafe fn calendarChooserDidFinish(&self, calendar_chooser: &EKCalendarChooser);
226
227        #[cfg(feature = "objc2-ui-kit")]
228        #[optional]
229        #[unsafe(method(calendarChooserDidCancel:))]
230        #[unsafe(method_family = none)]
231        unsafe fn calendarChooserDidCancel(&self, calendar_chooser: &EKCalendarChooser);
232    }
233);