use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
#[unsafe(super(NSObject))]
#[thread_kind = MainThreadOnly]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSDocumentController;
);
extern_conformance!(
unsafe impl NSCoding for NSDocumentController {}
);
#[cfg(feature = "NSMenu")]
extern_conformance!(
unsafe impl NSMenuItemValidation for NSDocumentController {}
);
extern_conformance!(
unsafe impl NSObjectProtocol for NSDocumentController {}
);
#[cfg(feature = "NSUserInterfaceValidation")]
extern_conformance!(
unsafe impl NSUserInterfaceValidations for NSDocumentController {}
);
impl NSDocumentController {
extern_methods!(
#[unsafe(method(sharedDocumentController))]
#[unsafe(method_family = none)]
pub fn sharedDocumentController(mtm: MainThreadMarker) -> Retained<NSDocumentController>;
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
coder: &NSCoder,
) -> Option<Retained<Self>>;
#[cfg(feature = "NSDocument")]
#[unsafe(method(documents))]
#[unsafe(method_family = none)]
pub fn documents(&self) -> Retained<NSArray<NSDocument>>;
#[cfg(feature = "NSDocument")]
#[unsafe(method(currentDocument))]
#[unsafe(method_family = none)]
pub fn currentDocument(&self) -> Option<Retained<NSDocument>>;
#[unsafe(method(currentDirectory))]
#[unsafe(method_family = none)]
pub fn currentDirectory(&self) -> Option<Retained<NSString>>;
#[cfg(feature = "NSDocument")]
#[unsafe(method(documentForURL:))]
#[unsafe(method_family = none)]
pub fn documentForURL(&self, url: &NSURL) -> Option<Retained<NSDocument>>;
#[cfg(all(feature = "NSDocument", feature = "NSResponder", feature = "NSWindow"))]
#[unsafe(method(documentForWindow:))]
#[unsafe(method_family = none)]
pub fn documentForWindow(&self, window: &NSWindow) -> Option<Retained<NSDocument>>;
#[cfg(feature = "NSDocument")]
#[unsafe(method(addDocument:))]
#[unsafe(method_family = none)]
pub fn addDocument(&self, document: &NSDocument);
#[cfg(feature = "NSDocument")]
#[unsafe(method(removeDocument:))]
#[unsafe(method_family = none)]
pub fn removeDocument(&self, document: &NSDocument);
#[unsafe(method(newDocument:))]
#[unsafe(method_family = none)]
pub unsafe fn newDocument(&self, sender: Option<&AnyObject>);
#[cfg(feature = "NSDocument")]
#[unsafe(method(openUntitledDocumentAndDisplay:error:_))]
#[unsafe(method_family = none)]
pub fn openUntitledDocumentAndDisplay_error(
&self,
display_document: bool,
) -> Result<Retained<NSDocument>, Retained<NSError>>;
#[cfg(feature = "NSDocument")]
#[unsafe(method(makeUntitledDocumentOfType:error:_))]
#[unsafe(method_family = none)]
pub fn makeUntitledDocumentOfType_error(
&self,
type_name: &NSString,
) -> Result<Retained<NSDocument>, Retained<NSError>>;
#[unsafe(method(openDocument:))]
#[unsafe(method_family = none)]
pub unsafe fn openDocument(&self, sender: Option<&AnyObject>);
#[unsafe(method(URLsFromRunningOpenPanel))]
#[unsafe(method_family = none)]
pub fn URLsFromRunningOpenPanel(&self) -> Option<Retained<NSArray<NSURL>>>;
#[cfg(all(
feature = "NSOpenPanel",
feature = "NSPanel",
feature = "NSResponder",
feature = "NSSavePanel",
feature = "NSWindow"
))]
#[unsafe(method(runModalOpenPanel:forTypes:))]
#[unsafe(method_family = none)]
pub fn runModalOpenPanel_forTypes(
&self,
open_panel: &NSOpenPanel,
types: Option<&NSArray<NSString>>,
) -> NSInteger;
#[cfg(feature = "block2")]
#[unsafe(method(beginOpenPanelWithCompletionHandler:))]
#[unsafe(method_family = none)]
pub fn beginOpenPanelWithCompletionHandler(
&self,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSArray<NSURL>)>,
);
#[cfg(all(
feature = "NSOpenPanel",
feature = "NSPanel",
feature = "NSResponder",
feature = "NSSavePanel",
feature = "NSWindow",
feature = "block2"
))]
#[unsafe(method(beginOpenPanel:forTypes:completionHandler:))]
#[unsafe(method_family = none)]
pub fn beginOpenPanel_forTypes_completionHandler(
&self,
open_panel: &NSOpenPanel,
in_types: Option<&NSArray<NSString>>,
completion_handler: &block2::DynBlock<dyn Fn(NSInteger)>,
);
#[cfg(all(feature = "NSDocument", feature = "block2"))]
#[unsafe(method(openDocumentWithContentsOfURL:display:completionHandler:))]
#[unsafe(method_family = none)]
pub fn openDocumentWithContentsOfURL_display_completionHandler(
&self,
url: &NSURL,
display_document: bool,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSDocument, Bool, *mut NSError)>,
);
#[cfg(feature = "NSDocument")]
#[unsafe(method(makeDocumentWithContentsOfURL:ofType:error:_))]
#[unsafe(method_family = none)]
pub fn makeDocumentWithContentsOfURL_ofType_error(
&self,
url: &NSURL,
type_name: &NSString,
) -> Result<Retained<NSDocument>, Retained<NSError>>;
#[cfg(all(feature = "NSDocument", feature = "block2"))]
#[unsafe(method(reopenDocumentForURL:withContentsOfURL:display:completionHandler:))]
#[unsafe(method_family = none)]
pub fn reopenDocumentForURL_withContentsOfURL_display_completionHandler(
&self,
url_or_nil: Option<&NSURL>,
contents_url: &NSURL,
display_document: bool,
completion_handler: &block2::DynBlock<dyn Fn(*mut NSDocument, Bool, *mut NSError)>,
);
#[cfg(feature = "NSDocument")]
#[unsafe(method(makeDocumentForURL:withContentsOfURL:ofType:error:_))]
#[unsafe(method_family = none)]
pub fn makeDocumentForURL_withContentsOfURL_ofType_error(
&self,
url_or_nil: Option<&NSURL>,
contents_url: &NSURL,
type_name: &NSString,
) -> Result<Retained<NSDocument>, Retained<NSError>>;
#[unsafe(method(autosavingDelay))]
#[unsafe(method_family = none)]
pub fn autosavingDelay(&self) -> NSTimeInterval;
#[unsafe(method(setAutosavingDelay:))]
#[unsafe(method_family = none)]
pub fn setAutosavingDelay(&self, autosaving_delay: NSTimeInterval);
#[unsafe(method(saveAllDocuments:))]
#[unsafe(method_family = none)]
pub unsafe fn saveAllDocuments(&self, sender: Option<&AnyObject>);
#[unsafe(method(hasEditedDocuments))]
#[unsafe(method_family = none)]
pub fn hasEditedDocuments(&self) -> bool;
#[unsafe(method(reviewUnsavedDocumentsWithAlertTitle:cancellable:delegate:didReviewAllSelector:contextInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn reviewUnsavedDocumentsWithAlertTitle_cancellable_delegate_didReviewAllSelector_contextInfo(
&self,
title: Option<&NSString>,
cancellable: bool,
delegate: Option<&AnyObject>,
did_review_all_selector: Option<Sel>,
context_info: *mut c_void,
);
#[unsafe(method(closeAllDocumentsWithDelegate:didCloseAllSelector:contextInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn closeAllDocumentsWithDelegate_didCloseAllSelector_contextInfo(
&self,
delegate: Option<&AnyObject>,
did_close_all_selector: Option<Sel>,
context_info: *mut c_void,
);
#[cfg(feature = "NSDocument")]
#[unsafe(method(duplicateDocumentWithContentsOfURL:copying:displayName:error:_))]
#[unsafe(method_family = none)]
pub fn duplicateDocumentWithContentsOfURL_copying_displayName_error(
&self,
url: &NSURL,
duplicate_by_copying: bool,
display_name_or_nil: Option<&NSString>,
) -> Result<Retained<NSDocument>, Retained<NSError>>;
#[unsafe(method(allowsAutomaticShareMenu))]
#[unsafe(method_family = none)]
pub fn allowsAutomaticShareMenu(&self) -> bool;
#[cfg(feature = "NSMenuItem")]
#[unsafe(method(standardShareMenuItem))]
#[unsafe(method_family = none)]
pub fn standardShareMenuItem(&self) -> Retained<NSMenuItem>;
#[cfg(all(feature = "NSResponder", feature = "NSWindow"))]
#[unsafe(method(presentError:modalForWindow:delegate:didPresentSelector:contextInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn presentError_modalForWindow_delegate_didPresentSelector_contextInfo(
&self,
error: &NSError,
window: &NSWindow,
delegate: Option<&AnyObject>,
did_present_selector: Option<Sel>,
context_info: *mut c_void,
);
#[unsafe(method(presentError:))]
#[unsafe(method_family = none)]
pub fn presentError(&self, error: &NSError) -> bool;
#[unsafe(method(willPresentError:))]
#[unsafe(method_family = none)]
pub fn willPresentError(&self, error: &NSError) -> Retained<NSError>;
#[unsafe(method(maximumRecentDocumentCount))]
#[unsafe(method_family = none)]
pub fn maximumRecentDocumentCount(&self) -> NSUInteger;
#[unsafe(method(clearRecentDocuments:))]
#[unsafe(method_family = none)]
pub unsafe fn clearRecentDocuments(&self, sender: Option<&AnyObject>);
#[cfg(feature = "NSDocument")]
#[unsafe(method(noteNewRecentDocument:))]
#[unsafe(method_family = none)]
pub fn noteNewRecentDocument(&self, document: &NSDocument);
#[unsafe(method(noteNewRecentDocumentURL:))]
#[unsafe(method_family = none)]
pub fn noteNewRecentDocumentURL(&self, url: &NSURL);
#[unsafe(method(recentDocumentURLs))]
#[unsafe(method_family = none)]
pub fn recentDocumentURLs(&self) -> Retained<NSArray<NSURL>>;
#[unsafe(method(defaultType))]
#[unsafe(method_family = none)]
pub fn defaultType(&self) -> Option<Retained<NSString>>;
#[unsafe(method(typeForContentsOfURL:error:_))]
#[unsafe(method_family = none)]
pub fn typeForContentsOfURL_error(
&self,
url: &NSURL,
) -> Result<Retained<NSString>, Retained<NSError>>;
#[unsafe(method(documentClassNames))]
#[unsafe(method_family = none)]
pub fn documentClassNames(&self) -> Retained<NSArray<NSString>>;
#[unsafe(method(documentClassForType:))]
#[unsafe(method_family = none)]
pub fn documentClassForType(&self, type_name: &NSString) -> Option<&'static AnyClass>;
#[unsafe(method(displayNameForType:))]
#[unsafe(method_family = none)]
pub fn displayNameForType(&self, type_name: &NSString) -> Option<Retained<NSString>>;
#[cfg(feature = "NSUserInterfaceValidation")]
#[unsafe(method(validateUserInterfaceItem:))]
#[unsafe(method_family = none)]
pub fn validateUserInterfaceItem(
&self,
item: &ProtocolObject<dyn NSValidatedUserInterfaceItem>,
) -> bool;
);
}
impl NSDocumentController {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new(mtm: MainThreadMarker) -> Retained<Self>;
);
}
impl NSDocumentController {
extern_methods!(
#[deprecated = "Use -openDocumentWithContentsOfURL:display:completionHandler: instead"]
#[unsafe(method(openDocumentWithContentsOfURL:display:error:_))]
#[unsafe(method_family = none)]
pub fn openDocumentWithContentsOfURL_display_error(
&self,
url: &NSURL,
display_document: bool,
) -> Result<Retained<AnyObject>, Retained<NSError>>;
#[deprecated = "Use -reopenDocumentForURL:withContentsOfURL:display:completionHandler: instead"]
#[unsafe(method(reopenDocumentForURL:withContentsOfURL:error:_))]
#[unsafe(method_family = none)]
pub fn reopenDocumentForURL_withContentsOfURL_error(
&self,
url: Option<&NSURL>,
contents_url: &NSURL,
) -> Result<(), Retained<NSError>>;
#[deprecated]
#[unsafe(method(fileExtensionsFromType:))]
#[unsafe(method_family = none)]
pub fn fileExtensionsFromType(&self, type_name: &NSString) -> Option<Retained<NSArray>>;
#[deprecated]
#[unsafe(method(typeFromFileExtension:))]
#[unsafe(method_family = none)]
pub fn typeFromFileExtension(
&self,
file_name_extension_or_hfs_file_type: &NSString,
) -> Option<Retained<NSString>>;
#[deprecated]
#[unsafe(method(documentForFileName:))]
#[unsafe(method_family = none)]
pub fn documentForFileName(&self, file_name: &NSString) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(fileNamesFromRunningOpenPanel))]
#[unsafe(method_family = none)]
pub fn fileNamesFromRunningOpenPanel(&self) -> Option<Retained<NSArray>>;
#[deprecated]
#[unsafe(method(makeDocumentWithContentsOfFile:ofType:))]
#[unsafe(method_family = none)]
pub fn makeDocumentWithContentsOfFile_ofType(
&self,
file_name: &NSString,
r#type: &NSString,
) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(makeDocumentWithContentsOfURL:ofType:))]
#[unsafe(method_family = none)]
pub unsafe fn makeDocumentWithContentsOfURL_ofType(
&self,
url: &NSURL,
r#type: Option<&NSString>,
) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(makeUntitledDocumentOfType:))]
#[unsafe(method_family = none)]
pub fn makeUntitledDocumentOfType(&self, r#type: &NSString) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(openDocumentWithContentsOfFile:display:))]
#[unsafe(method_family = none)]
pub fn openDocumentWithContentsOfFile_display(
&self,
file_name: &NSString,
display: bool,
) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(openDocumentWithContentsOfURL:display:))]
#[unsafe(method_family = none)]
pub fn openDocumentWithContentsOfURL_display(
&self,
url: &NSURL,
display: bool,
) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(openUntitledDocumentOfType:display:))]
#[unsafe(method_family = none)]
pub fn openUntitledDocumentOfType_display(
&self,
r#type: &NSString,
display: bool,
) -> Option<Retained<AnyObject>>;
#[deprecated]
#[unsafe(method(setShouldCreateUI:))]
#[unsafe(method_family = none)]
pub fn setShouldCreateUI(&self, flag: bool);
#[deprecated]
#[unsafe(method(shouldCreateUI))]
#[unsafe(method_family = none)]
pub fn shouldCreateUI(&self) -> bool;
);
}