objc2_event_kit_ui/generated/
EKEventViewController.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/ekeventviewaction?language=objc)
15// NS_ENUM
16#[repr(transparent)]
17#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
18pub struct EKEventViewAction(pub NSInteger);
19impl EKEventViewAction {
20    #[doc(alias = "EKEventViewActionDone")]
21    pub const Done: Self = Self(0);
22    #[doc(alias = "EKEventViewActionResponded")]
23    pub const Responded: Self = Self(1);
24    #[doc(alias = "EKEventViewActionDeleted")]
25    pub const Deleted: Self = Self(2);
26}
27
28unsafe impl Encode for EKEventViewAction {
29    const ENCODING: Encoding = NSInteger::ENCODING;
30}
31
32unsafe impl RefEncode for EKEventViewAction {
33    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
34}
35
36extern_class!(
37    /// [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekeventviewcontroller?language=objc)
38    #[unsafe(super(UIViewController, UIResponder, NSObject))]
39    #[derive(Debug, PartialEq, Eq, Hash)]
40    #[cfg(feature = "objc2-ui-kit")]
41    pub struct EKEventViewController;
42);
43
44#[cfg(feature = "objc2-ui-kit")]
45extern_conformance!(
46    unsafe impl NSCoding for EKEventViewController {}
47);
48
49#[cfg(feature = "objc2-ui-kit")]
50extern_conformance!(
51    unsafe impl NSObjectProtocol for EKEventViewController {}
52);
53
54#[cfg(feature = "objc2-ui-kit")]
55extern_conformance!(
56    unsafe impl UIAppearanceContainer for EKEventViewController {}
57);
58
59#[cfg(feature = "objc2-ui-kit")]
60extern_conformance!(
61    unsafe impl UIContentContainer for EKEventViewController {}
62);
63
64#[cfg(feature = "objc2-ui-kit")]
65extern_conformance!(
66    unsafe impl UIFocusEnvironment for EKEventViewController {}
67);
68
69#[cfg(feature = "objc2-ui-kit")]
70extern_conformance!(
71    unsafe impl UIResponderStandardEditActions for EKEventViewController {}
72);
73
74#[cfg(feature = "objc2-ui-kit")]
75extern_conformance!(
76    unsafe impl UITraitEnvironment for EKEventViewController {}
77);
78
79#[cfg(feature = "objc2-ui-kit")]
80impl EKEventViewController {
81    extern_methods!(
82        #[unsafe(method(delegate))]
83        #[unsafe(method_family = none)]
84        pub unsafe fn delegate(&self) -> Option<Retained<ProtocolObject<dyn EKEventViewDelegate>>>;
85
86        /// This is a [weak property][objc2::topics::weak_property].
87        /// Setter for [`delegate`][Self::delegate].
88        #[unsafe(method(setDelegate:))]
89        #[unsafe(method_family = none)]
90        pub unsafe fn setDelegate(
91            &self,
92            delegate: Option<&ProtocolObject<dyn EKEventViewDelegate>>,
93        );
94
95        #[cfg(feature = "objc2-event-kit")]
96        /// Specifies the event to view.
97        ///
98        /// You must set this prior to displaying the view controller.
99        #[unsafe(method(event))]
100        #[unsafe(method_family = none)]
101        pub unsafe fn event(&self) -> Option<Retained<EKEvent>>;
102
103        #[cfg(feature = "objc2-event-kit")]
104        /// Setter for [`event`][Self::event].
105        #[unsafe(method(setEvent:))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn setEvent(&self, event: Option<&EKEvent>);
108
109        /// Determines whether Edit button can be shown.
110        ///
111        /// Note that even if this is enabled, the edit button may not appear if this event
112        /// is in a read-only calendar, such as a subscribed calendar. It may also not appear
113        /// if the event was not created by the current user (i.e. it's an event they were
114        /// invited to). And lastly, if the event was never saved, the edit button will not
115        /// appear.
116        #[unsafe(method(allowsEditing))]
117        #[unsafe(method_family = none)]
118        pub unsafe fn allowsEditing(&self) -> bool;
119
120        /// Setter for [`allowsEditing`][Self::allowsEditing].
121        #[unsafe(method(setAllowsEditing:))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn setAllowsEditing(&self, allows_editing: bool);
124
125        /// Determines whether event can be shown in calendar day view preview.
126        ///
127        /// This option only affects calendar invites at present. If the event is an invite,
128        /// and this option is set, a table cell will appear that allows the user to preview
129        /// the event along with their other events for the day.
130        #[unsafe(method(allowsCalendarPreview))]
131        #[unsafe(method_family = none)]
132        pub unsafe fn allowsCalendarPreview(&self) -> bool;
133
134        /// Setter for [`allowsCalendarPreview`][Self::allowsCalendarPreview].
135        #[unsafe(method(setAllowsCalendarPreview:))]
136        #[unsafe(method_family = none)]
137        pub unsafe fn setAllowsCalendarPreview(&self, allows_calendar_preview: bool);
138    );
139}
140
141/// Methods declared on superclass `UIViewController`.
142#[cfg(feature = "objc2-ui-kit")]
143impl EKEventViewController {
144    extern_methods!(
145        #[unsafe(method(initWithNibName:bundle:))]
146        #[unsafe(method_family = init)]
147        pub unsafe fn initWithNibName_bundle(
148            this: Allocated<Self>,
149            nib_name_or_nil: Option<&NSString>,
150            nib_bundle_or_nil: Option<&NSBundle>,
151        ) -> Retained<Self>;
152
153        #[unsafe(method(initWithCoder:))]
154        #[unsafe(method_family = init)]
155        pub unsafe fn initWithCoder(
156            this: Allocated<Self>,
157            coder: &NSCoder,
158        ) -> Option<Retained<Self>>;
159    );
160}
161
162/// Methods declared on superclass `NSObject`.
163#[cfg(feature = "objc2-ui-kit")]
164impl EKEventViewController {
165    extern_methods!(
166        #[unsafe(method(init))]
167        #[unsafe(method_family = init)]
168        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
169
170        #[unsafe(method(new))]
171        #[unsafe(method_family = new)]
172        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
173    );
174}
175
176extern_protocol!(
177    /// View controller to view event detail.
178    ///
179    /// You can use this view controller to display the details of an event. You
180    /// can also optionally choose to allow the user to edit the event by displaying
181    /// an edit button. While you can use this view controller to display events that
182    /// have not been saved, the edit button will not appear in this situation. If
183    /// you have pushed this view controller onto a navigation controller stack, and
184    /// the underlying event gets deleted, this controller will remove itself from
185    /// the stack and clear its event property.
186    ///
187    /// See also [Apple's documentation](https://developer.apple.com/documentation/eventkitui/ekeventviewdelegate?language=objc)
188    pub unsafe trait EKEventViewDelegate: NSObjectProtocol {
189        #[cfg(feature = "objc2-ui-kit")]
190        /// Called to let delegate know that an action has occurred that should cause the
191        /// controller to be dismissed.
192        ///
193        /// If the user taps a button which deletes the event, or responds to an invite, this
194        /// method is called on the delegate so that the delegate can decide to dismiss
195        /// the view controller. When presented in a popover, it also reports when the Done
196        /// button is pressed.
197        ///
198        ///
199        /// Parameter `controller`: the controller in question
200        ///
201        /// Parameter `action`: the action that is triggering the dismissal
202        #[unsafe(method(eventViewController:didCompleteWithAction:))]
203        #[unsafe(method_family = none)]
204        unsafe fn eventViewController_didCompleteWithAction(
205            &self,
206            controller: &EKEventViewController,
207            action: EKEventViewAction,
208        );
209    }
210);