use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UIAdaptivePresentationControllerDelegate:
NSObjectProtocol + IsMainThreadOnly
{
#[cfg(feature = "UIViewController")]
#[optional]
#[method(adaptivePresentationStyleForPresentationController:)]
unsafe fn adaptivePresentationStyleForPresentationController(
&self,
controller: &UIPresentationController,
) -> UIModalPresentationStyle;
#[cfg(all(feature = "UITraitCollection", feature = "UIViewController"))]
#[optional]
#[method(adaptivePresentationStyleForPresentationController:traitCollection:)]
unsafe fn adaptivePresentationStyleForPresentationController_traitCollection(
&self,
controller: &UIPresentationController,
trait_collection: &UITraitCollection,
) -> UIModalPresentationStyle;
#[optional]
#[method(presentationController:prepareAdaptivePresentationController:)]
unsafe fn presentationController_prepareAdaptivePresentationController(
&self,
presentation_controller: &UIPresentationController,
adaptive_presentation_controller: &UIPresentationController,
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[optional]
#[method_id(@__retain_semantics Other presentationController:viewControllerForAdaptivePresentationStyle:)]
unsafe fn presentationController_viewControllerForAdaptivePresentationStyle(
&self,
controller: &UIPresentationController,
style: UIModalPresentationStyle,
) -> Option<Retained<UIViewController>>;
#[cfg(all(
feature = "UIViewController",
feature = "UIViewControllerTransitionCoordinator"
))]
#[optional]
#[method(presentationController:willPresentWithAdaptiveStyle:transitionCoordinator:)]
unsafe fn presentationController_willPresentWithAdaptiveStyle_transitionCoordinator(
&self,
presentation_controller: &UIPresentationController,
style: UIModalPresentationStyle,
transition_coordinator: Option<
&ProtocolObject<dyn UIViewControllerTransitionCoordinator>,
>,
);
#[optional]
#[method(presentationControllerShouldDismiss:)]
unsafe fn presentationControllerShouldDismiss(
&self,
presentation_controller: &UIPresentationController,
) -> bool;
#[optional]
#[method(presentationControllerWillDismiss:)]
unsafe fn presentationControllerWillDismiss(
&self,
presentation_controller: &UIPresentationController,
);
#[optional]
#[method(presentationControllerDidDismiss:)]
unsafe fn presentationControllerDidDismiss(
&self,
presentation_controller: &UIPresentationController,
);
#[optional]
#[method(presentationControllerDidAttemptToDismiss:)]
unsafe fn presentationControllerDidAttemptToDismiss(
&self,
presentation_controller: &UIPresentationController,
);
}
unsafe impl ProtocolType for dyn UIAdaptivePresentationControllerDelegate {}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIPresentationController;
unsafe impl ClassType for UIPresentationController {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for UIPresentationController {}
#[cfg(feature = "UIAppearance")]
unsafe impl UIAppearanceContainer for UIPresentationController {}
#[cfg(feature = "UIViewController")]
unsafe impl UIContentContainer for UIPresentationController {}
#[cfg(feature = "UIFocus")]
unsafe impl UIFocusEnvironment for UIPresentationController {}
#[cfg(feature = "UITraitCollection")]
unsafe impl UITraitEnvironment for UIPresentationController {}
extern_methods!(
unsafe impl UIPresentationController {
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[method_id(@__retain_semantics Other presentingViewController)]
pub unsafe fn presentingViewController(&self) -> Retained<UIViewController>;
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[method_id(@__retain_semantics Other presentedViewController)]
pub unsafe fn presentedViewController(&self) -> Retained<UIViewController>;
#[cfg(feature = "UIViewController")]
#[method(presentationStyle)]
pub unsafe fn presentationStyle(&self) -> UIModalPresentationStyle;
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
#[method_id(@__retain_semantics Other containerView)]
pub unsafe fn containerView(&self) -> Option<Retained<UIView>>;
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn UIAdaptivePresentationControllerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn UIAdaptivePresentationControllerDelegate>>,
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[method_id(@__retain_semantics Init initWithPresentedViewController:presentingViewController:)]
pub unsafe fn initWithPresentedViewController_presentingViewController(
this: Allocated<Self>,
presented_view_controller: &UIViewController,
presenting_view_controller: Option<&UIViewController>,
) -> Retained<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(feature = "UIViewController")]
#[method(adaptivePresentationStyle)]
pub unsafe fn adaptivePresentationStyle(&self) -> UIModalPresentationStyle;
#[cfg(all(feature = "UITraitCollection", feature = "UIViewController"))]
#[method(adaptivePresentationStyleForTraitCollection:)]
pub unsafe fn adaptivePresentationStyleForTraitCollection(
&self,
trait_collection: &UITraitCollection,
) -> UIModalPresentationStyle;
#[method(containerViewWillLayoutSubviews)]
pub unsafe fn containerViewWillLayoutSubviews(&self);
#[method(containerViewDidLayoutSubviews)]
pub unsafe fn containerViewDidLayoutSubviews(&self);
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
#[method_id(@__retain_semantics Other presentedView)]
pub unsafe fn presentedView(&self) -> Option<Retained<UIView>>;
#[method(frameOfPresentedViewInContainerView)]
pub unsafe fn frameOfPresentedViewInContainerView(&self) -> CGRect;
#[method(shouldPresentInFullscreen)]
pub unsafe fn shouldPresentInFullscreen(&self) -> bool;
#[method(shouldRemovePresentersView)]
pub unsafe fn shouldRemovePresentersView(&self) -> bool;
#[method(presentationTransitionWillBegin)]
pub unsafe fn presentationTransitionWillBegin(&self);
#[method(presentationTransitionDidEnd:)]
pub unsafe fn presentationTransitionDidEnd(&self, completed: bool);
#[method(dismissalTransitionWillBegin)]
pub unsafe fn dismissalTransitionWillBegin(&self);
#[method(dismissalTransitionDidEnd:)]
pub unsafe fn dismissalTransitionDidEnd(&self, completed: bool);
#[cfg(feature = "UITraitCollection")]
#[deprecated = "Use the traitOverrides property instead"]
#[method_id(@__retain_semantics Other overrideTraitCollection)]
pub unsafe fn overrideTraitCollection(&self) -> Option<Retained<UITraitCollection>>;
#[cfg(feature = "UITraitCollection")]
#[deprecated = "Use the traitOverrides property instead"]
#[method(setOverrideTraitCollection:)]
pub unsafe fn setOverrideTraitCollection(
&self,
override_trait_collection: Option<&UITraitCollection>,
);
}
);
extern_methods!(
unsafe impl UIPresentationController {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_methods!(
unsafe impl UIPresentationController {
#[cfg(feature = "UITraitCollection")]
#[method_id(@__retain_semantics Other traitOverrides)]
pub unsafe fn traitOverrides(&self) -> Retained<ProtocolObject<dyn UITraitOverrides>>;
}
);
#[cfg(feature = "UITraitCollection")]
unsafe impl UITraitChangeObservable for UIPresentationController {}