use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSViewControllerTransitionOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSViewControllerTransitionOptions: NSUInteger {
#[doc(alias = "NSViewControllerTransitionNone")]
const None = 0x0;
#[doc(alias = "NSViewControllerTransitionCrossfade")]
const Crossfade = 0x1;
#[doc(alias = "NSViewControllerTransitionSlideUp")]
const SlideUp = 0x10;
#[doc(alias = "NSViewControllerTransitionSlideDown")]
const SlideDown = 0x20;
#[doc(alias = "NSViewControllerTransitionSlideLeft")]
const SlideLeft = 0x40;
#[doc(alias = "NSViewControllerTransitionSlideRight")]
const SlideRight = 0x80;
#[doc(alias = "NSViewControllerTransitionSlideForward")]
const SlideForward = 0x140;
#[doc(alias = "NSViewControllerTransitionSlideBackward")]
const SlideBackward = 0x180;
#[doc(alias = "NSViewControllerTransitionAllowUserInteraction")]
const AllowUserInteraction = 0x1000;
}
}
unsafe impl Encode for NSViewControllerTransitionOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSViewControllerTransitionOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSResponder, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSResponder")]
pub struct NSViewController;
);
#[cfg(feature = "NSResponder")]
extern_conformance!(
unsafe impl NSCoding for NSViewController {}
);
#[cfg(all(feature = "NSKeyValueBinding", feature = "NSResponder"))]
extern_conformance!(
unsafe impl NSEditor for NSViewController {}
);
#[cfg(feature = "NSResponder")]
extern_conformance!(
unsafe impl NSObjectProtocol for NSViewController {}
);
#[cfg(all(feature = "NSResponder", feature = "NSStoryboardSegue"))]
extern_conformance!(
unsafe impl NSSeguePerforming for NSViewController {}
);
#[cfg(all(feature = "NSResponder", feature = "NSUserInterfaceItemIdentification"))]
extern_conformance!(
unsafe impl NSUserInterfaceItemIdentification for NSViewController {}
);
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[cfg(feature = "NSNib")]
#[unsafe(method(initWithNibName:bundle:))]
#[unsafe(method_family = init)]
pub fn initWithNibName_bundle(
this: Allocated<Self>,
nib_name_or_nil: Option<&NSNibName>,
nib_bundle_or_nil: Option<&NSBundle>,
) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[cfg(feature = "NSNib")]
#[unsafe(method(nibName))]
#[unsafe(method_family = none)]
pub fn nibName(&self) -> Option<Retained<NSNibName>>;
#[unsafe(method(nibBundle))]
#[unsafe(method_family = none)]
pub fn nibBundle(&self) -> Option<Retained<NSBundle>>;
#[unsafe(method(representedObject))]
#[unsafe(method_family = none)]
pub fn representedObject(&self) -> Option<Retained<AnyObject>>;
#[unsafe(method(setRepresentedObject:))]
#[unsafe(method_family = none)]
pub unsafe fn setRepresentedObject(&self, represented_object: Option<&AnyObject>);
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub fn title(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub fn setTitle(&self, title: Option<&NSString>);
#[cfg(feature = "NSView")]
#[unsafe(method(view))]
#[unsafe(method_family = none)]
pub fn view(&self) -> Retained<NSView>;
#[cfg(feature = "NSView")]
#[unsafe(method(setView:))]
#[unsafe(method_family = none)]
pub fn setView(&self, view: &NSView);
#[cfg(feature = "NSView")]
#[unsafe(method(viewIfLoaded))]
#[unsafe(method_family = none)]
pub fn viewIfLoaded(&self) -> Option<Retained<NSView>>;
#[unsafe(method(loadView))]
#[unsafe(method_family = none)]
pub fn loadView(&self);
#[unsafe(method(loadViewIfNeeded))]
#[unsafe(method_family = none)]
pub fn loadViewIfNeeded(&self);
#[unsafe(method(commitEditingWithDelegate:didCommitSelector:contextInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn commitEditingWithDelegate_didCommitSelector_contextInfo(
&self,
delegate: Option<&AnyObject>,
did_commit_selector: Option<Sel>,
context_info: *mut c_void,
);
#[unsafe(method(commitEditing))]
#[unsafe(method_family = none)]
pub fn commitEditing(&self) -> bool;
#[unsafe(method(discardEditing))]
#[unsafe(method_family = none)]
pub fn discardEditing(&self);
#[unsafe(method(viewDidLoad))]
#[unsafe(method_family = none)]
pub fn viewDidLoad(&self);
#[unsafe(method(isViewLoaded))]
#[unsafe(method_family = none)]
pub fn isViewLoaded(&self) -> bool;
#[unsafe(method(viewWillAppear))]
#[unsafe(method_family = none)]
pub fn viewWillAppear(&self);
#[unsafe(method(viewDidAppear))]
#[unsafe(method_family = none)]
pub fn viewDidAppear(&self);
#[unsafe(method(viewWillDisappear))]
#[unsafe(method_family = none)]
pub fn viewWillDisappear(&self);
#[unsafe(method(viewDidDisappear))]
#[unsafe(method_family = none)]
pub fn viewDidDisappear(&self);
#[unsafe(method(preferredContentSize))]
#[unsafe(method_family = none)]
pub fn preferredContentSize(&self) -> NSSize;
#[unsafe(method(setPreferredContentSize:))]
#[unsafe(method_family = none)]
pub fn setPreferredContentSize(&self, preferred_content_size: NSSize);
#[unsafe(method(updateViewConstraints))]
#[unsafe(method_family = none)]
pub fn updateViewConstraints(&self);
#[unsafe(method(viewWillLayout))]
#[unsafe(method_family = none)]
pub fn viewWillLayout(&self);
#[unsafe(method(viewDidLayout))]
#[unsafe(method_family = none)]
pub fn viewDidLayout(&self);
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(presentViewController:animator:))]
#[unsafe(method_family = none)]
pub fn presentViewController_animator(
&self,
view_controller: &NSViewController,
animator: &ProtocolObject<dyn NSViewControllerPresentationAnimator>,
);
#[unsafe(method(dismissViewController:))]
#[unsafe(method_family = none)]
pub fn dismissViewController(&self, view_controller: &NSViewController);
#[unsafe(method(dismissController:))]
#[unsafe(method_family = none)]
pub unsafe fn dismissController(&self, sender: Option<&AnyObject>);
#[unsafe(method(presentedViewControllers))]
#[unsafe(method_family = none)]
pub fn presentedViewControllers(&self) -> Option<Retained<NSArray<NSViewController>>>;
#[unsafe(method(presentingViewController))]
#[unsafe(method_family = none)]
pub unsafe fn presentingViewController(&self) -> Option<Retained<NSViewController>>;
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(presentViewControllerAsSheet:))]
#[unsafe(method_family = none)]
pub fn presentViewControllerAsSheet(&self, view_controller: &NSViewController);
#[unsafe(method(presentViewControllerAsModalWindow:))]
#[unsafe(method_family = none)]
pub fn presentViewControllerAsModalWindow(&self, view_controller: &NSViewController);
#[cfg(all(feature = "NSPopover", feature = "NSView"))]
#[unsafe(method(presentViewController:asPopoverRelativeToRect:ofView:preferredEdge:behavior:))]
#[unsafe(method_family = none)]
pub fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior(
&self,
view_controller: &NSViewController,
positioning_rect: NSRect,
positioning_view: &NSView,
preferred_edge: NSRectEdge,
behavior: NSPopoverBehavior,
);
#[cfg(all(feature = "NSPopover", feature = "NSView"))]
#[unsafe(method(presentViewController:asPopoverRelativeToRect:ofView:preferredEdge:behavior:hasFullSizeContent:))]
#[unsafe(method_family = none)]
pub fn presentViewController_asPopoverRelativeToRect_ofView_preferredEdge_behavior_hasFullSizeContent(
&self,
view_controller: &NSViewController,
positioning_rect: NSRect,
positioning_view: &NSView,
preferred_edge: NSRectEdge,
behavior: NSPopoverBehavior,
has_full_size_content: bool,
);
#[cfg(feature = "block2")]
#[unsafe(method(transitionFromViewController:toViewController:options:completionHandler:))]
#[unsafe(method_family = none)]
pub fn transitionFromViewController_toViewController_options_completionHandler(
&self,
from_view_controller: &NSViewController,
to_view_controller: &NSViewController,
options: NSViewControllerTransitionOptions,
completion: Option<&block2::DynBlock<dyn Fn()>>,
);
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(parentViewController))]
#[unsafe(method_family = none)]
pub fn parentViewController(&self) -> Option<Retained<NSViewController>>;
#[unsafe(method(childViewControllers))]
#[unsafe(method_family = none)]
pub fn childViewControllers(&self) -> Retained<NSArray<NSViewController>>;
#[unsafe(method(setChildViewControllers:))]
#[unsafe(method_family = none)]
pub fn setChildViewControllers(&self, child_view_controllers: &NSArray<NSViewController>);
#[unsafe(method(addChildViewController:))]
#[unsafe(method_family = none)]
pub fn addChildViewController(&self, child_view_controller: &NSViewController);
#[unsafe(method(removeFromParentViewController))]
#[unsafe(method_family = none)]
pub fn removeFromParentViewController(&self);
#[unsafe(method(insertChildViewController:atIndex:))]
#[unsafe(method_family = none)]
pub fn insertChildViewController_atIndex(
&self,
child_view_controller: &NSViewController,
index: NSInteger,
);
#[unsafe(method(removeChildViewControllerAtIndex:))]
#[unsafe(method_family = none)]
pub fn removeChildViewControllerAtIndex(&self, index: NSInteger);
#[unsafe(method(preferredContentSizeDidChangeForViewController:))]
#[unsafe(method_family = none)]
pub fn preferredContentSizeDidChangeForViewController(
&self,
view_controller: &NSViewController,
);
#[unsafe(method(viewWillTransitionToSize:))]
#[unsafe(method_family = none)]
pub fn viewWillTransitionToSize(&self, new_size: NSSize);
);
}
extern_protocol!(
pub unsafe trait NSViewControllerPresentationAnimator:
NSObjectProtocol + MainThreadOnly
{
#[cfg(feature = "NSResponder")]
#[unsafe(method(animatePresentationOfViewController:fromViewController:))]
#[unsafe(method_family = none)]
fn animatePresentationOfViewController_fromViewController(
&self,
view_controller: &NSViewController,
from_view_controller: &NSViewController,
);
#[cfg(feature = "NSResponder")]
#[unsafe(method(animateDismissalOfViewController:fromViewController:))]
#[unsafe(method_family = none)]
fn animateDismissalOfViewController_fromViewController(
&self,
view_controller: &NSViewController,
from_view_controller: &NSViewController,
);
}
);
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[cfg(feature = "NSStoryboard")]
#[unsafe(method(storyboard))]
#[unsafe(method_family = none)]
pub fn storyboard(&self) -> Option<Retained<NSStoryboard>>;
);
}
#[cfg(feature = "NSResponder")]
impl NSViewController {
extern_methods!(
#[unsafe(method(extensionContext))]
#[unsafe(method_family = none)]
pub fn extensionContext(&self) -> Option<Retained<NSExtensionContext>>;
#[cfg(feature = "NSView")]
#[unsafe(method(sourceItemView))]
#[unsafe(method_family = none)]
pub fn sourceItemView(&self) -> Option<Retained<NSView>>;
#[cfg(feature = "NSView")]
#[unsafe(method(setSourceItemView:))]
#[unsafe(method_family = none)]
pub fn setSourceItemView(&self, source_item_view: Option<&NSView>);
#[unsafe(method(preferredScreenOrigin))]
#[unsafe(method_family = none)]
pub fn preferredScreenOrigin(&self) -> NSPoint;
#[unsafe(method(setPreferredScreenOrigin:))]
#[unsafe(method_family = none)]
pub fn setPreferredScreenOrigin(&self, preferred_screen_origin: NSPoint);
#[unsafe(method(preferredMinimumSize))]
#[unsafe(method_family = none)]
pub fn preferredMinimumSize(&self) -> NSSize;
#[unsafe(method(preferredMaximumSize))]
#[unsafe(method_family = none)]
pub fn preferredMaximumSize(&self) -> NSSize;
);
}
#[cfg(feature = "NSResponder")]
extern_conformance!(
unsafe impl NSExtensionRequestHandling for NSViewController {}
);