use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-cloud-kit")]
use objc2_cloud_kit::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
pub struct UIWindowScene;
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl ClassType for UIWindowScene {
#[inherits(UIResponder, NSObject)]
type Super = UIScene;
type Mutability = MainThreadOnly;
}
);
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl NSObjectProtocol for UIWindowScene {}
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl UIResponderStandardEditActions for UIWindowScene {}
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl UIWindowScene {
#[cfg(feature = "UIScreen")]
#[method_id(@__retain_semantics Other screen)]
pub unsafe fn screen(&self) -> Retained<UIScreen>;
#[cfg(feature = "UIOrientation")]
#[method(interfaceOrientation)]
pub unsafe fn interfaceOrientation(&self) -> UIInterfaceOrientation;
#[cfg(feature = "UIView")]
#[method_id(@__retain_semantics Other coordinateSpace)]
pub unsafe fn coordinateSpace(&self) -> Retained<ProtocolObject<dyn UICoordinateSpace>>;
#[cfg(feature = "UITraitCollection")]
#[method_id(@__retain_semantics Other traitCollection)]
pub unsafe fn traitCollection(&self) -> Retained<UITraitCollection>;
#[cfg(all(feature = "UIWindowSceneGeometryPreferences", feature = "block2"))]
#[method(requestGeometryUpdateWithPreferences:errorHandler:)]
pub unsafe fn requestGeometryUpdateWithPreferences_errorHandler(
&self,
geometry_preferences: &UIWindowSceneGeometryPreferences,
error_handler: Option<&block2::Block<dyn Fn(NonNull<NSError>)>>,
);
#[cfg(feature = "UIWindowSceneGeometry")]
#[method_id(@__retain_semantics Other effectiveGeometry)]
pub unsafe fn effectiveGeometry(&self) -> Retained<UIWindowSceneGeometry>;
#[method_id(@__retain_semantics Other sizeRestrictions)]
pub unsafe fn sizeRestrictions(&self) -> Option<Retained<UISceneSizeRestrictions>>;
#[cfg(all(feature = "UIView", feature = "UIWindow"))]
#[method_id(@__retain_semantics Other windows)]
pub unsafe fn windows(&self) -> Retained<NSArray<UIWindow>>;
#[cfg(all(feature = "UIView", feature = "UIWindow"))]
#[method_id(@__retain_semantics Other keyWindow)]
pub unsafe fn keyWindow(&self) -> Option<Retained<UIWindow>>;
#[cfg(feature = "UIActivityItemsConfigurationReading")]
#[method_id(@__retain_semantics Other activityItemsConfigurationSource)]
pub unsafe fn activityItemsConfigurationSource(
&self,
) -> Option<Retained<ProtocolObject<dyn UIActivityItemsConfigurationProviding>>>;
#[cfg(feature = "UIActivityItemsConfigurationReading")]
#[method(setActivityItemsConfigurationSource:)]
pub unsafe fn setActivityItemsConfigurationSource(
&self,
activity_items_configuration_source: Option<
&ProtocolObject<dyn UIActivityItemsConfigurationProviding>,
>,
);
#[cfg(feature = "UISceneWindowingBehaviors")]
#[method_id(@__retain_semantics Other windowingBehaviors)]
pub unsafe fn windowingBehaviors(&self) -> Option<Retained<UISceneWindowingBehaviors>>;
#[method(isFullScreen)]
pub unsafe fn isFullScreen(&self) -> bool;
}
);
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl UIWindowScene {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[cfg(all(feature = "UISceneOptions", feature = "UISceneSession"))]
#[method_id(@__retain_semantics Init initWithSession:connectionOptions:)]
pub unsafe fn initWithSession_connectionOptions(
this: Allocated<Self>,
session: &UISceneSession,
connection_options: &UISceneConnectionOptions,
) -> Retained<Self>;
}
);
extern_methods!(
#[cfg(all(feature = "UIResponder", feature = "UIScene"))]
unsafe impl UIWindowScene {
#[cfg(feature = "UITraitCollection")]
#[method_id(@__retain_semantics Other traitOverrides)]
pub unsafe fn traitOverrides(&self) -> Retained<ProtocolObject<dyn UITraitOverrides>>;
}
);
#[cfg(all(
feature = "UIResponder",
feature = "UIScene",
feature = "UITraitCollection"
))]
unsafe impl UITraitChangeObservable for UIWindowScene {}
#[cfg(all(
feature = "UIResponder",
feature = "UIScene",
feature = "UITraitCollection"
))]
unsafe impl UITraitEnvironment for UIWindowScene {}
extern_protocol!(
#[cfg(feature = "UIScene")]
pub unsafe trait UIWindowSceneDelegate: UISceneDelegate + IsMainThreadOnly {
#[cfg(all(feature = "UIResponder", feature = "UIView", feature = "UIWindow"))]
#[optional]
#[method_id(@__retain_semantics Other window)]
unsafe fn window(&self) -> Option<Retained<UIWindow>>;
#[cfg(all(feature = "UIResponder", feature = "UIView", feature = "UIWindow"))]
#[optional]
#[method(setWindow:)]
unsafe fn setWindow(&self, window: Option<&UIWindow>);
#[cfg(all(
feature = "UIOrientation",
feature = "UIResponder",
feature = "UITraitCollection",
feature = "UIView"
))]
#[optional]
#[method(windowScene:didUpdateCoordinateSpace:interfaceOrientation:traitCollection:)]
unsafe fn windowScene_didUpdateCoordinateSpace_interfaceOrientation_traitCollection(
&self,
window_scene: &UIWindowScene,
previous_coordinate_space: &ProtocolObject<dyn UICoordinateSpace>,
previous_interface_orientation: UIInterfaceOrientation,
previous_trait_collection: &UITraitCollection,
);
#[cfg(all(
feature = "UIApplicationShortcutItem",
feature = "UIResponder",
feature = "block2"
))]
#[optional]
#[method(windowScene:performActionForShortcutItem:completionHandler:)]
unsafe fn windowScene_performActionForShortcutItem_completionHandler(
&self,
window_scene: &UIWindowScene,
shortcut_item: &UIApplicationShortcutItem,
completion_handler: &block2::Block<dyn Fn(Bool)>,
);
#[cfg(all(feature = "UIResponder", feature = "objc2-cloud-kit"))]
#[optional]
#[method(windowScene:userDidAcceptCloudKitShareWithMetadata:)]
unsafe fn windowScene_userDidAcceptCloudKitShareWithMetadata(
&self,
window_scene: &UIWindowScene,
cloud_kit_share_metadata: &CKShareMetadata,
);
}
#[cfg(feature = "UIScene")]
unsafe impl ProtocolType for dyn UIWindowSceneDelegate {}
);
extern "C" {
#[cfg(feature = "UISceneDefinitions")]
pub static UIWindowSceneSessionRoleApplication: &'static UISceneSessionRole;
}
extern "C" {
#[cfg(feature = "UISceneDefinitions")]
pub static UIWindowSceneSessionRoleExternalDisplayNonInteractive: &'static UISceneSessionRole;
}
extern "C" {
#[cfg(feature = "UISceneDefinitions")]
pub static UIWindowSceneSessionRoleExternalDisplay: &'static UISceneSessionRole;
}
extern "C" {
#[cfg(feature = "UISceneDefinitions")]
pub static UIWindowSceneSessionRoleVolumetricApplication: &'static UISceneSessionRole;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIWindowSceneDismissalAnimation(pub NSInteger);
impl UIWindowSceneDismissalAnimation {
#[doc(alias = "UIWindowSceneDismissalAnimationStandard")]
pub const Standard: Self = Self(1);
#[doc(alias = "UIWindowSceneDismissalAnimationCommit")]
pub const Commit: Self = Self(2);
#[doc(alias = "UIWindowSceneDismissalAnimationDecline")]
pub const Decline: Self = Self(3);
}
unsafe impl Encode for UIWindowSceneDismissalAnimation {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIWindowSceneDismissalAnimation {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "UISceneOptions")]
pub struct UIWindowSceneDestructionRequestOptions;
#[cfg(feature = "UISceneOptions")]
unsafe impl ClassType for UIWindowSceneDestructionRequestOptions {
#[inherits(NSObject)]
type Super = UISceneDestructionRequestOptions;
type Mutability = MainThreadOnly;
}
);
#[cfg(feature = "UISceneOptions")]
unsafe impl NSObjectProtocol for UIWindowSceneDestructionRequestOptions {}
extern_methods!(
#[cfg(feature = "UISceneOptions")]
unsafe impl UIWindowSceneDestructionRequestOptions {
#[method(windowDismissalAnimation)]
pub unsafe fn windowDismissalAnimation(&self) -> UIWindowSceneDismissalAnimation;
#[method(setWindowDismissalAnimation:)]
pub unsafe fn setWindowDismissalAnimation(
&self,
window_dismissal_animation: UIWindowSceneDismissalAnimation,
);
}
);
extern_methods!(
#[cfg(feature = "UISceneOptions")]
unsafe impl UIWindowSceneDestructionRequestOptions {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UISceneSizeRestrictions;
unsafe impl ClassType for UISceneSizeRestrictions {
type Super = NSObject;
type Mutability = MainThreadOnly;
}
);
unsafe impl NSObjectProtocol for UISceneSizeRestrictions {}
extern_methods!(
unsafe impl UISceneSizeRestrictions {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
#[method(minimumSize)]
pub unsafe fn minimumSize(&self) -> CGSize;
#[method(setMinimumSize:)]
pub unsafe fn setMinimumSize(&self, minimum_size: CGSize);
#[method(maximumSize)]
pub unsafe fn maximumSize(&self) -> CGSize;
#[method(setMaximumSize:)]
pub unsafe fn setMaximumSize(&self, maximum_size: CGSize);
#[method(allowsFullScreen)]
pub unsafe fn allowsFullScreen(&self) -> bool;
#[method(setAllowsFullScreen:)]
pub unsafe fn setAllowsFullScreen(&self, allows_full_screen: bool);
}
);