use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use objc2_foundation::*;
#[cfg(feature = "objc2-uniform-type-identifiers")]
use objc2_uniform_type_identifiers::*;
use crate::*;
extern "C" {
pub static UIDocumentBrowserErrorDomain: &'static NSErrorDomain;
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIDocumentBrowserErrorCode(pub NSInteger);
impl UIDocumentBrowserErrorCode {
#[doc(alias = "UIDocumentBrowserErrorGeneric")]
pub const Generic: Self = Self(1);
#[doc(alias = "UIDocumentBrowserErrorNoLocationAvailable")]
pub const NoLocationAvailable: Self = Self(2);
}
unsafe impl Encode for UIDocumentBrowserErrorCode {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for UIDocumentBrowserErrorCode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIDocumentBrowserImportMode(pub NSUInteger);
impl UIDocumentBrowserImportMode {
#[doc(alias = "UIDocumentBrowserImportModeNone")]
pub const None: Self = Self(0);
#[doc(alias = "UIDocumentBrowserImportModeCopy")]
pub const Copy: Self = Self(1);
#[doc(alias = "UIDocumentBrowserImportModeMove")]
pub const Move: Self = Self(2);
}
unsafe impl Encode for UIDocumentBrowserImportMode {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UIDocumentBrowserImportMode {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UIDocumentBrowserUserInterfaceStyle(pub NSUInteger);
impl UIDocumentBrowserUserInterfaceStyle {
#[doc(alias = "UIDocumentBrowserUserInterfaceStyleWhite")]
pub const White: Self = Self(0);
#[doc(alias = "UIDocumentBrowserUserInterfaceStyleLight")]
pub const Light: Self = Self(1);
#[doc(alias = "UIDocumentBrowserUserInterfaceStyleDark")]
pub const Dark: Self = Self(2);
}
unsafe impl Encode for UIDocumentBrowserUserInterfaceStyle {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UIDocumentBrowserUserInterfaceStyle {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(UIViewController, UIResponder, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
pub struct UIDocumentBrowserViewController;
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
extern_conformance!(
unsafe impl NSCoding for UIDocumentBrowserViewController {}
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
extern_conformance!(
unsafe impl NSObjectProtocol for UIDocumentBrowserViewController {}
);
#[cfg(all(
feature = "UIAppearance",
feature = "UIResponder",
feature = "UIViewController"
))]
extern_conformance!(
unsafe impl UIAppearanceContainer for UIDocumentBrowserViewController {}
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
extern_conformance!(
unsafe impl UIContentContainer for UIDocumentBrowserViewController {}
);
#[cfg(all(
feature = "UIFocus",
feature = "UIResponder",
feature = "UIViewController"
))]
extern_conformance!(
unsafe impl UIFocusEnvironment for UIDocumentBrowserViewController {}
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
extern_conformance!(
unsafe impl UIResponderStandardEditActions for UIDocumentBrowserViewController {}
);
#[cfg(all(
feature = "UIResponder",
feature = "UITraitCollection",
feature = "UIViewController"
))]
extern_conformance!(
unsafe impl UITraitEnvironment for UIDocumentBrowserViewController {}
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
impl UIDocumentBrowserViewController {
extern_methods!(
#[deprecated]
#[unsafe(method(initForOpeningFilesWithContentTypes:))]
#[unsafe(method_family = init)]
pub fn initForOpeningFilesWithContentTypes(
this: Allocated<Self>,
allowed_content_types: Option<&NSArray<NSString>>,
) -> Retained<Self>;
#[cfg(feature = "objc2-uniform-type-identifiers")]
#[unsafe(method(initForOpeningContentTypes:))]
#[unsafe(method_family = init)]
pub fn initForOpeningContentTypes(
this: Allocated<Self>,
content_types: Option<&NSArray<UTType>>,
) -> Retained<Self>;
#[unsafe(method(initWithNibName:bundle:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithNibName_bundle(
this: Allocated<Self>,
nib_name: Option<&NSString>,
bundle: Option<&NSBundle>,
) -> Retained<Self>;
#[unsafe(method(delegate))]
#[unsafe(method_family = none)]
pub fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn UIDocumentBrowserViewControllerDelegate>>>;
#[unsafe(method(setDelegate:))]
#[unsafe(method_family = none)]
pub fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn UIDocumentBrowserViewControllerDelegate>>,
);
#[unsafe(method(allowsDocumentCreation))]
#[unsafe(method_family = none)]
pub fn allowsDocumentCreation(&self) -> bool;
#[unsafe(method(setAllowsDocumentCreation:))]
#[unsafe(method_family = none)]
pub fn setAllowsDocumentCreation(&self, allows_document_creation: bool);
#[cfg(feature = "UIDocument")]
#[unsafe(method(activeDocumentCreationIntent))]
#[unsafe(method_family = none)]
pub fn activeDocumentCreationIntent(&self) -> Option<Retained<UIDocumentCreationIntent>>;
#[unsafe(method(allowsPickingMultipleItems))]
#[unsafe(method_family = none)]
pub fn allowsPickingMultipleItems(&self) -> bool;
#[unsafe(method(setAllowsPickingMultipleItems:))]
#[unsafe(method_family = none)]
pub fn setAllowsPickingMultipleItems(&self, allows_picking_multiple_items: bool);
#[deprecated = "allowedContentTypes is no longer supported"]
#[unsafe(method(allowedContentTypes))]
#[unsafe(method_family = none)]
pub fn allowedContentTypes(&self) -> Retained<NSArray<NSString>>;
#[deprecated]
#[unsafe(method(recentDocumentsContentTypes))]
#[unsafe(method_family = none)]
pub fn recentDocumentsContentTypes(&self) -> Retained<NSArray<NSString>>;
#[cfg(feature = "objc2-uniform-type-identifiers")]
#[unsafe(method(contentTypesForRecentDocuments))]
#[unsafe(method_family = none)]
pub fn contentTypesForRecentDocuments(&self) -> Retained<NSArray<UTType>>;
#[unsafe(method(shouldShowFileExtensions))]
#[unsafe(method_family = none)]
pub fn shouldShowFileExtensions(&self) -> bool;
#[unsafe(method(setShouldShowFileExtensions:))]
#[unsafe(method_family = none)]
pub fn setShouldShowFileExtensions(&self, should_show_file_extensions: bool);
#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
#[unsafe(method(additionalLeadingNavigationBarButtonItems))]
#[unsafe(method_family = none)]
pub fn additionalLeadingNavigationBarButtonItems(
&self,
) -> Retained<NSArray<UIBarButtonItem>>;
#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
#[unsafe(method(setAdditionalLeadingNavigationBarButtonItems:))]
#[unsafe(method_family = none)]
pub fn setAdditionalLeadingNavigationBarButtonItems(
&self,
additional_leading_navigation_bar_button_items: &NSArray<UIBarButtonItem>,
);
#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
#[unsafe(method(additionalTrailingNavigationBarButtonItems))]
#[unsafe(method_family = none)]
pub fn additionalTrailingNavigationBarButtonItems(
&self,
) -> Retained<NSArray<UIBarButtonItem>>;
#[cfg(all(feature = "UIBarButtonItem", feature = "UIBarItem"))]
#[unsafe(method(setAdditionalTrailingNavigationBarButtonItems:))]
#[unsafe(method_family = none)]
pub fn setAdditionalTrailingNavigationBarButtonItems(
&self,
additional_trailing_navigation_bar_button_items: &NSArray<UIBarButtonItem>,
);
#[cfg(feature = "block2")]
#[unsafe(method(revealDocumentAtURL:importIfNeeded:completion:))]
#[unsafe(method_family = none)]
pub fn revealDocumentAtURL_importIfNeeded_completion(
&self,
url: &NSURL,
import_if_needed: bool,
completion: Option<&block2::DynBlock<dyn Fn(*mut NSURL, *mut NSError)>>,
);
#[cfg(feature = "block2")]
#[unsafe(method(importDocumentAtURL:nextToDocumentAtURL:mode:completionHandler:))]
#[unsafe(method_family = none)]
pub fn importDocumentAtURL_nextToDocumentAtURL_mode_completionHandler(
&self,
document_url: &NSURL,
neighbour_url: &NSURL,
import_mode: UIDocumentBrowserImportMode,
completion: &block2::DynBlock<dyn Fn(*mut NSURL, *mut NSError)>,
);
#[cfg(feature = "block2")]
#[unsafe(method(renameDocumentAtURL:proposedName:completionHandler:))]
#[unsafe(method_family = none)]
pub fn renameDocumentAtURL_proposedName_completionHandler(
&self,
document_url: &NSURL,
proposed_name: &NSString,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSURL, *mut NSError)>,
);
#[unsafe(method(transitionControllerForDocumentAtURL:))]
#[unsafe(method_family = none)]
pub fn transitionControllerForDocumentAtURL(
&self,
document_url: &NSURL,
) -> Retained<UIDocumentBrowserTransitionController>;
#[deprecated]
#[unsafe(method(transitionControllerForDocumentURL:))]
#[unsafe(method_family = none)]
pub fn transitionControllerForDocumentURL(
&self,
document_url: &NSURL,
) -> Retained<UIDocumentBrowserTransitionController>;
#[cfg(feature = "UIDocumentBrowserAction")]
#[unsafe(method(customActions))]
#[unsafe(method_family = none)]
pub fn customActions(&self) -> Retained<NSArray<UIDocumentBrowserAction>>;
#[cfg(feature = "UIDocumentBrowserAction")]
#[unsafe(method(setCustomActions:))]
#[unsafe(method_family = none)]
pub fn setCustomActions(&self, custom_actions: &NSArray<UIDocumentBrowserAction>);
#[unsafe(method(browserUserInterfaceStyle))]
#[unsafe(method_family = none)]
pub fn browserUserInterfaceStyle(&self) -> UIDocumentBrowserUserInterfaceStyle;
#[unsafe(method(setBrowserUserInterfaceStyle:))]
#[unsafe(method_family = none)]
pub fn setBrowserUserInterfaceStyle(
&self,
browser_user_interface_style: UIDocumentBrowserUserInterfaceStyle,
);
#[unsafe(method(localizedCreateDocumentActionTitle))]
#[unsafe(method_family = none)]
pub fn localizedCreateDocumentActionTitle(&self) -> Retained<NSString>;
#[unsafe(method(setLocalizedCreateDocumentActionTitle:))]
#[unsafe(method_family = none)]
pub fn setLocalizedCreateDocumentActionTitle(
&self,
localized_create_document_action_title: &NSString,
);
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(defaultDocumentAspectRatio))]
#[unsafe(method_family = none)]
pub fn defaultDocumentAspectRatio(&self) -> CGFloat;
#[cfg(feature = "objc2-core-foundation")]
#[unsafe(method(setDefaultDocumentAspectRatio:))]
#[unsafe(method_family = none)]
pub fn setDefaultDocumentAspectRatio(&self, default_document_aspect_ratio: CGFloat);
);
}
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
impl UIDocumentBrowserViewController {
extern_methods!(
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
);
}
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
impl UIDocumentBrowserViewController {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
extern_protocol!(
pub unsafe trait UIDocumentBrowserViewControllerDelegate: NSObjectProtocol {
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[deprecated]
#[optional]
#[unsafe(method(documentBrowser:didPickDocumentURLs:))]
#[unsafe(method_family = none)]
fn documentBrowser_didPickDocumentURLs(
&self,
controller: &UIDocumentBrowserViewController,
document_ur_ls: &NSArray<NSURL>,
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[optional]
#[unsafe(method(documentBrowser:didPickDocumentsAtURLs:))]
#[unsafe(method_family = none)]
fn documentBrowser_didPickDocumentsAtURLs(
&self,
controller: &UIDocumentBrowserViewController,
document_ur_ls: &NSArray<NSURL>,
);
#[cfg(all(
feature = "UIResponder",
feature = "UIViewController",
feature = "block2"
))]
#[optional]
#[unsafe(method(documentBrowser:didRequestDocumentCreationWithHandler:))]
#[unsafe(method_family = none)]
fn documentBrowser_didRequestDocumentCreationWithHandler(
&self,
controller: &UIDocumentBrowserViewController,
import_handler: &block2::DynBlock<dyn Fn(*mut NSURL, UIDocumentBrowserImportMode)>,
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[optional]
#[unsafe(method(documentBrowser:didImportDocumentAtURL:toDestinationURL:))]
#[unsafe(method_family = none)]
fn documentBrowser_didImportDocumentAtURL_toDestinationURL(
&self,
controller: &UIDocumentBrowserViewController,
source_url: &NSURL,
destination_url: &NSURL,
);
#[cfg(all(feature = "UIResponder", feature = "UIViewController"))]
#[optional]
#[unsafe(method(documentBrowser:failedToImportDocumentAtURL:error:))]
#[unsafe(method_family = none)]
fn documentBrowser_failedToImportDocumentAtURL_error(
&self,
controller: &UIDocumentBrowserViewController,
document_url: &NSURL,
error: Option<&NSError>,
);
#[cfg(all(
feature = "UIActivity",
feature = "UIResponder",
feature = "UIViewController"
))]
#[optional]
#[unsafe(method(documentBrowser:applicationActivitiesForDocumentURLs:))]
#[unsafe(method_family = none)]
fn documentBrowser_applicationActivitiesForDocumentURLs(
&self,
controller: &UIDocumentBrowserViewController,
document_ur_ls: &NSArray<NSURL>,
) -> Retained<NSArray<UIActivity>>;
#[cfg(all(
feature = "UIActivityViewController",
feature = "UIResponder",
feature = "UIViewController"
))]
#[optional]
#[unsafe(method(documentBrowser:willPresentActivityViewController:))]
#[unsafe(method_family = none)]
fn documentBrowser_willPresentActivityViewController(
&self,
controller: &UIDocumentBrowserViewController,
activity_view_controller: &UIActivityViewController,
);
}
);
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UIDocumentBrowserTransitionController;
);
extern_conformance!(
unsafe impl NSObjectProtocol for UIDocumentBrowserTransitionController {}
);
#[cfg(feature = "UIViewControllerTransitioning")]
extern_conformance!(
unsafe impl UIViewControllerAnimatedTransitioning for UIDocumentBrowserTransitionController {}
);
impl UIDocumentBrowserTransitionController {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(loadingProgress))]
#[unsafe(method_family = none)]
pub fn loadingProgress(&self) -> Option<Retained<NSProgress>>;
#[unsafe(method(setLoadingProgress:))]
#[unsafe(method_family = none)]
pub fn setLoadingProgress(&self, loading_progress: Option<&NSProgress>);
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
#[unsafe(method(targetView))]
#[unsafe(method_family = none)]
pub fn targetView(&self) -> Option<Retained<UIView>>;
#[cfg(all(feature = "UIResponder", feature = "UIView"))]
#[unsafe(method(setTargetView:))]
#[unsafe(method_family = none)]
pub fn setTargetView(&self, target_view: Option<&UIView>);
);
}
impl UIDocumentBrowserTransitionController {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}