objc2_app_kit/generated/
NSViewController.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/nsviewcontrollertransitionoptions?language=objc)
11// NS_OPTIONS
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct NSViewControllerTransitionOptions(pub NSUInteger);
15bitflags::bitflags! {
16    impl NSViewControllerTransitionOptions: NSUInteger {
17        #[doc(alias = "NSViewControllerTransitionNone")]
18        const None = 0x0;
19        #[doc(alias = "NSViewControllerTransitionCrossfade")]
20        const Crossfade = 0x1;
21        #[doc(alias = "NSViewControllerTransitionSlideUp")]
22        const SlideUp = 0x10;
23        #[doc(alias = "NSViewControllerTransitionSlideDown")]
24        const SlideDown = 0x20;
25        #[doc(alias = "NSViewControllerTransitionSlideLeft")]
26        const SlideLeft = 0x40;
27        #[doc(alias = "NSViewControllerTransitionSlideRight")]
28        const SlideRight = 0x80;
29        #[doc(alias = "NSViewControllerTransitionSlideForward")]
30        const SlideForward = 0x140;
31        #[doc(alias = "NSViewControllerTransitionSlideBackward")]
32        const SlideBackward = 0x180;
33        #[doc(alias = "NSViewControllerTransitionAllowUserInteraction")]
34        const AllowUserInteraction = 0x1000;
35    }
36}
37
38unsafe impl Encode for NSViewControllerTransitionOptions {
39    const ENCODING: Encoding = NSUInteger::ENCODING;
40}
41
42unsafe impl RefEncode for NSViewControllerTransitionOptions {
43    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
44}
45
46extern_class!(
47    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsviewcontroller?language=objc)
48    #[unsafe(super(NSResponder, NSObject))]
49    #[derive(Debug, PartialEq, Eq, Hash)]
50    #[cfg(feature = "NSResponder")]
51    pub struct NSViewController;
52);
53
54#[cfg(feature = "NSResponder")]
55extern_conformance!(
56    unsafe impl NSCoding for NSViewController {}
57);
58
59#[cfg(all(feature = "NSKeyValueBinding", feature = "NSResponder"))]
60extern_conformance!(
61    unsafe impl NSEditor for NSViewController {}
62);
63
64#[cfg(feature = "NSResponder")]
65extern_conformance!(
66    unsafe impl NSObjectProtocol for NSViewController {}
67);
68
69#[cfg(all(feature = "NSResponder", feature = "NSStoryboardSegue"))]
70extern_conformance!(
71    unsafe impl NSSeguePerforming for NSViewController {}
72);
73
74#[cfg(all(feature = "NSResponder", feature = "NSUserInterfaceItemIdentification"))]
75extern_conformance!(
76    unsafe impl NSUserInterfaceItemIdentification for NSViewController {}
77);
78
79#[cfg(feature = "NSResponder")]
80impl NSViewController {
81    extern_methods!(
82        #[cfg(feature = "NSNib")]
83        #[unsafe(method(initWithNibName:bundle:))]
84        #[unsafe(method_family = init)]
85        pub unsafe fn initWithNibName_bundle(
86            this: Allocated<Self>,
87            nib_name_or_nil: Option<&NSNibName>,
88            nib_bundle_or_nil: Option<&NSBundle>,
89        ) -> Retained<Self>;
90
91        #[unsafe(method(initWithCoder:))]
92        #[unsafe(method_family = init)]
93        pub unsafe fn initWithCoder(
94            this: Allocated<Self>,
95            coder: &NSCoder,
96        ) -> Option<Retained<Self>>;
97
98        #[cfg(feature = "NSNib")]
99        #[unsafe(method(nibName))]
100        #[unsafe(method_family = none)]
101        pub unsafe fn nibName(&self) -> Option<Retained<NSNibName>>;
102
103        #[unsafe(method(nibBundle))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn nibBundle(&self) -> Option<Retained<NSBundle>>;
106
107        #[unsafe(method(representedObject))]
108        #[unsafe(method_family = none)]
109        pub unsafe fn representedObject(&self) -> Option<Retained<AnyObject>>;
110
111        /// Setter for [`representedObject`][Self::representedObject].
112        #[unsafe(method(setRepresentedObject:))]
113        #[unsafe(method_family = none)]
114        pub unsafe fn setRepresentedObject(&self, represented_object: Option<&AnyObject>);
115
116        #[unsafe(method(title))]
117        #[unsafe(method_family = none)]
118        pub unsafe fn title(&self) -> Option<Retained<NSString>>;
119
120        /// Setter for [`title`][Self::title].
121        #[unsafe(method(setTitle:))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn setTitle(&self, title: Option<&NSString>);
124
125        #[cfg(feature = "NSView")]
126        #[unsafe(method(view))]
127        #[unsafe(method_family = none)]
128        pub unsafe fn view(&self) -> Retained<NSView>;
129
130        #[cfg(feature = "NSView")]
131        /// Setter for [`view`][Self::view].
132        #[unsafe(method(setView:))]
133        #[unsafe(method_family = none)]
134        pub unsafe fn setView(&self, view: &NSView);
135
136        #[cfg(feature = "NSView")]
137        #[unsafe(method(viewIfLoaded))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn viewIfLoaded(&self) -> Option<Retained<NSView>>;
140
141        #[unsafe(method(loadView))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn loadView(&self);
144
145        #[unsafe(method(loadViewIfNeeded))]
146        #[unsafe(method_family = none)]
147        pub unsafe fn loadViewIfNeeded(&self);
148
149        #[unsafe(method(commitEditingWithDelegate:didCommitSelector:contextInfo:))]
150        #[unsafe(method_family = none)]
151        pub unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo(
152            &self,
153            delegate: Option<&AnyObject>,
154            did_commit_selector: Option<Sel>,
155            context_info: *mut c_void,
156        );
157
158        #[unsafe(method(commitEditing))]
159        #[unsafe(method_family = none)]
160        pub unsafe fn commitEditing(&self) -> bool;
161
162        #[unsafe(method(discardEditing))]
163        #[unsafe(method_family = none)]
164        pub unsafe fn discardEditing(&self);
165
166        #[unsafe(method(viewDidLoad))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn viewDidLoad(&self);
169
170        #[unsafe(method(isViewLoaded))]
171        #[unsafe(method_family = none)]
172        pub unsafe fn isViewLoaded(&self) -> bool;
173
174        #[unsafe(method(viewWillAppear))]
175        #[unsafe(method_family = none)]
176        pub unsafe fn viewWillAppear(&self);
177
178        #[unsafe(method(viewDidAppear))]
179        #[unsafe(method_family = none)]
180        pub unsafe fn viewDidAppear(&self);
181
182        #[unsafe(method(viewWillDisappear))]
183        #[unsafe(method_family = none)]
184        pub unsafe fn viewWillDisappear(&self);
185
186        #[unsafe(method(viewDidDisappear))]
187        #[unsafe(method_family = none)]
188        pub unsafe fn viewDidDisappear(&self);
189
190        #[unsafe(method(preferredContentSize))]
191        #[unsafe(method_family = none)]
192        pub unsafe fn preferredContentSize(&self) -> NSSize;
193
194        /// Setter for [`preferredContentSize`][Self::preferredContentSize].
195        #[unsafe(method(setPreferredContentSize:))]
196        #[unsafe(method_family = none)]
197        pub unsafe fn setPreferredContentSize(&self, preferred_content_size: NSSize);
198
199        #[unsafe(method(updateViewConstraints))]
200        #[unsafe(method_family = none)]
201        pub unsafe fn updateViewConstraints(&self);
202
203        #[unsafe(method(viewWillLayout))]
204        #[unsafe(method_family = none)]
205        pub unsafe fn viewWillLayout(&self);
206
207        #[unsafe(method(viewDidLayout))]
208        #[unsafe(method_family = none)]
209        pub unsafe fn viewDidLayout(&self);
210    );
211}
212
213/// Methods declared on superclass `NSResponder`.
214#[cfg(feature = "NSResponder")]
215impl NSViewController {
216    extern_methods!(
217        #[unsafe(method(init))]
218        #[unsafe(method_family = init)]
219        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
220    );
221}
222
223/// Methods declared on superclass `NSObject`.
224#[cfg(feature = "NSResponder")]
225impl NSViewController {
226    extern_methods!(
227        #[unsafe(method(new))]
228        #[unsafe(method_family = new)]
229        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
230    );
231}
232
233/// NSViewControllerPresentation.
234#[cfg(feature = "NSResponder")]
235impl NSViewController {
236    extern_methods!(
237        #[unsafe(method(presentViewController:animator:))]
238        #[unsafe(method_family = none)]
239        pub unsafe fn presentViewController_animator(
240            &self,
241            view_controller: &NSViewController,
242            animator: &ProtocolObject<dyn NSViewControllerPresentationAnimator>,
243        );
244
245        #[unsafe(method(dismissViewController:))]
246        #[unsafe(method_family = none)]
247        pub unsafe fn dismissViewController(&self, view_controller: &NSViewController);
248
249        #[unsafe(method(dismissController:))]
250        #[unsafe(method_family = none)]
251        pub unsafe fn dismissController(&self, sender: Option<&AnyObject>);
252
253        #[unsafe(method(presentedViewControllers))]
254        #[unsafe(method_family = none)]
255        pub unsafe fn presentedViewControllers(
256            &self,
257        ) -> Option<Retained<NSArray<NSViewController>>>;
258
259        #[unsafe(method(presentingViewController))]
260        #[unsafe(method_family = none)]
261        pub unsafe fn presentingViewController(&self) -> Option<Retained<NSViewController>>;
262    );
263}
264
265/// NSViewControllerPresentationAndTransitionStyles.
266#[cfg(feature = "NSResponder")]
267impl NSViewController {
268    extern_methods!(
269        #[unsafe(method(presentViewControllerAsSheet:))]
270        #[unsafe(method_family = none)]
271        pub unsafe fn presentViewControllerAsSheet(&self, view_controller: &NSViewController);
272
273        #[unsafe(method(presentViewControllerAsModalWindow:))]
274        #[unsafe(method_family = none)]
275        pub unsafe fn presentViewControllerAsModalWindow(&self, view_controller: &NSViewController);
276
277        #[cfg(all(feature = "NSPopover", feature = "NSView"))]
278        #[unsafe(method(presentViewController:asPopoverRelativeToRect:ofView:preferredEdge:behavior:))]
279        #[unsafe(method_family = none)]
280        pub unsafe fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior(
281            &self,
282            view_controller: &NSViewController,
283            positioning_rect: NSRect,
284            positioning_view: &NSView,
285            preferred_edge: NSRectEdge,
286            behavior: NSPopoverBehavior,
287        );
288
289        #[cfg(all(feature = "NSPopover", feature = "NSView"))]
290        #[unsafe(method(presentViewController:asPopoverRelativeToRect:ofView:preferredEdge:behavior:hasFullSizeContent:))]
291        #[unsafe(method_family = none)]
292        pub unsafe fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior_hasFullSizeContent(
293            &self,
294            view_controller: &NSViewController,
295            positioning_rect: NSRect,
296            positioning_view: &NSView,
297            preferred_edge: NSRectEdge,
298            behavior: NSPopoverBehavior,
299            has_full_size_content: bool,
300        );
301
302        #[cfg(feature = "block2")]
303        #[unsafe(method(transitionFromViewController:toViewController:options:completionHandler:))]
304        #[unsafe(method_family = none)]
305        pub unsafe fn transitionFromViewController_toViewController_options_completionHandler(
306            &self,
307            from_view_controller: &NSViewController,
308            to_view_controller: &NSViewController,
309            options: NSViewControllerTransitionOptions,
310            completion: Option<&block2::DynBlock<dyn Fn()>>,
311        );
312    );
313}
314
315/// NSViewControllerContainer.
316#[cfg(feature = "NSResponder")]
317impl NSViewController {
318    extern_methods!(
319        #[unsafe(method(parentViewController))]
320        #[unsafe(method_family = none)]
321        pub unsafe fn parentViewController(&self) -> Option<Retained<NSViewController>>;
322
323        #[unsafe(method(childViewControllers))]
324        #[unsafe(method_family = none)]
325        pub unsafe fn childViewControllers(&self) -> Retained<NSArray<NSViewController>>;
326
327        /// Setter for [`childViewControllers`][Self::childViewControllers].
328        #[unsafe(method(setChildViewControllers:))]
329        #[unsafe(method_family = none)]
330        pub unsafe fn setChildViewControllers(
331            &self,
332            child_view_controllers: &NSArray<NSViewController>,
333        );
334
335        #[unsafe(method(addChildViewController:))]
336        #[unsafe(method_family = none)]
337        pub unsafe fn addChildViewController(&self, child_view_controller: &NSViewController);
338
339        #[unsafe(method(removeFromParentViewController))]
340        #[unsafe(method_family = none)]
341        pub unsafe fn removeFromParentViewController(&self);
342
343        #[unsafe(method(insertChildViewController:atIndex:))]
344        #[unsafe(method_family = none)]
345        pub unsafe fn insertChildViewController_atIndex(
346            &self,
347            child_view_controller: &NSViewController,
348            index: NSInteger,
349        );
350
351        #[unsafe(method(removeChildViewControllerAtIndex:))]
352        #[unsafe(method_family = none)]
353        pub unsafe fn removeChildViewControllerAtIndex(&self, index: NSInteger);
354
355        #[unsafe(method(preferredContentSizeDidChangeForViewController:))]
356        #[unsafe(method_family = none)]
357        pub unsafe fn preferredContentSizeDidChangeForViewController(
358            &self,
359            view_controller: &NSViewController,
360        );
361
362        #[unsafe(method(viewWillTransitionToSize:))]
363        #[unsafe(method_family = none)]
364        pub unsafe fn viewWillTransitionToSize(&self, new_size: NSSize);
365    );
366}
367
368extern_protocol!(
369    /// [Apple's documentation](https://developer.apple.com/documentation/appkit/nsviewcontrollerpresentationanimator?language=objc)
370    pub unsafe trait NSViewControllerPresentationAnimator:
371        NSObjectProtocol + MainThreadOnly
372    {
373        #[cfg(feature = "NSResponder")]
374        #[unsafe(method(animatePresentationOfViewController:fromViewController:))]
375        #[unsafe(method_family = none)]
376        unsafe fn animatePresentationOfViewController_fromViewController(
377            &self,
378            view_controller: &NSViewController,
379            from_view_controller: &NSViewController,
380        );
381
382        #[cfg(feature = "NSResponder")]
383        #[unsafe(method(animateDismissalOfViewController:fromViewController:))]
384        #[unsafe(method_family = none)]
385        unsafe fn animateDismissalOfViewController_fromViewController(
386            &self,
387            view_controller: &NSViewController,
388            from_view_controller: &NSViewController,
389        );
390    }
391);
392
393/// NSViewControllerStoryboardingMethods.
394#[cfg(feature = "NSResponder")]
395impl NSViewController {
396    extern_methods!(
397        #[cfg(feature = "NSStoryboard")]
398        #[unsafe(method(storyboard))]
399        #[unsafe(method_family = none)]
400        pub unsafe fn storyboard(&self) -> Option<Retained<NSStoryboard>>;
401    );
402}
403
404/// NSExtensionAdditions.
405#[cfg(feature = "NSResponder")]
406impl NSViewController {
407    extern_methods!(
408        #[unsafe(method(extensionContext))]
409        #[unsafe(method_family = none)]
410        pub unsafe fn extensionContext(&self) -> Option<Retained<NSExtensionContext>>;
411
412        #[cfg(feature = "NSView")]
413        #[unsafe(method(sourceItemView))]
414        #[unsafe(method_family = none)]
415        pub unsafe fn sourceItemView(&self) -> Option<Retained<NSView>>;
416
417        #[cfg(feature = "NSView")]
418        /// Setter for [`sourceItemView`][Self::sourceItemView].
419        #[unsafe(method(setSourceItemView:))]
420        #[unsafe(method_family = none)]
421        pub unsafe fn setSourceItemView(&self, source_item_view: Option<&NSView>);
422
423        #[unsafe(method(preferredScreenOrigin))]
424        #[unsafe(method_family = none)]
425        pub unsafe fn preferredScreenOrigin(&self) -> NSPoint;
426
427        /// Setter for [`preferredScreenOrigin`][Self::preferredScreenOrigin].
428        #[unsafe(method(setPreferredScreenOrigin:))]
429        #[unsafe(method_family = none)]
430        pub unsafe fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint);
431
432        #[unsafe(method(preferredMinimumSize))]
433        #[unsafe(method_family = none)]
434        pub unsafe fn preferredMinimumSize(&self) -> NSSize;
435
436        #[unsafe(method(preferredMaximumSize))]
437        #[unsafe(method_family = none)]
438        pub unsafe fn preferredMaximumSize(&self) -> NSSize;
439    );
440}
441
442#[cfg(feature = "NSResponder")]
443extern_conformance!(
444    unsafe impl NSExtensionRequestHandling for NSViewController {}
445);