//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// NSScripting.
#[cfg(feature = "NSDocument")]
impl NSDocument {
    extern_methods!(
        #[unsafe(method(lastComponentOfFileName))]
        #[unsafe(method_family = none)]
        pub fn lastComponentOfFileName(&self) -> Retained<NSString>;

        /// Setter for [`lastComponentOfFileName`][Self::lastComponentOfFileName].
        ///
        /// This is [copied][objc2_foundation::NSCopying::copy] when set.
        #[unsafe(method(setLastComponentOfFileName:))]
        #[unsafe(method_family = none)]
        pub fn setLastComponentOfFileName(&self, last_component_of_file_name: &NSString);

        #[unsafe(method(handleSaveScriptCommand:))]
        #[unsafe(method_family = none)]
        pub fn handleSaveScriptCommand(
            &self,
            command: &NSScriptCommand,
        ) -> Option<Retained<AnyObject>>;

        #[unsafe(method(handleCloseScriptCommand:))]
        #[unsafe(method_family = none)]
        pub fn handleCloseScriptCommand(
            &self,
            command: &NSCloseCommand,
        ) -> Option<Retained<AnyObject>>;

        #[unsafe(method(handlePrintScriptCommand:))]
        #[unsafe(method_family = none)]
        pub fn handlePrintScriptCommand(
            &self,
            command: &NSScriptCommand,
        ) -> Option<Retained<AnyObject>>;

        #[unsafe(method(objectSpecifier))]
        #[unsafe(method_family = none)]
        pub fn objectSpecifier(&self) -> Retained<NSScriptObjectSpecifier>;
    );
}
