//! 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(all(feature = "NSResponder", feature = "NSWindow"))]
impl NSWindow {
    extern_methods!(
        #[unsafe(method(hasCloseBox))]
        #[unsafe(method_family = none)]
        pub fn hasCloseBox(&self) -> bool;

        #[unsafe(method(hasTitleBar))]
        #[unsafe(method_family = none)]
        pub fn hasTitleBar(&self) -> bool;

        #[unsafe(method(isFloatingPanel))]
        #[unsafe(method_family = none)]
        pub fn isFloatingPanel(&self) -> bool;

        #[unsafe(method(isMiniaturizable))]
        #[unsafe(method_family = none)]
        pub fn isMiniaturizable(&self) -> bool;

        #[unsafe(method(isModalPanel))]
        #[unsafe(method_family = none)]
        pub fn isModalPanel(&self) -> bool;

        #[unsafe(method(isResizable))]
        #[unsafe(method_family = none)]
        pub fn isResizable(&self) -> bool;

        #[unsafe(method(isZoomable))]
        #[unsafe(method_family = none)]
        pub fn isZoomable(&self) -> bool;

        #[unsafe(method(orderedIndex))]
        #[unsafe(method_family = none)]
        pub fn orderedIndex(&self) -> NSInteger;

        /// Setter for [`orderedIndex`][Self::orderedIndex].
        #[unsafe(method(setOrderedIndex:))]
        #[unsafe(method_family = none)]
        pub fn setOrderedIndex(&self, ordered_index: NSInteger);

        #[unsafe(method(setIsMiniaturized:))]
        #[unsafe(method_family = none)]
        pub fn setIsMiniaturized(&self, flag: bool);

        #[unsafe(method(setIsVisible:))]
        #[unsafe(method_family = none)]
        pub fn setIsVisible(&self, flag: bool);

        #[unsafe(method(setIsZoomed:))]
        #[unsafe(method_family = none)]
        pub fn setIsZoomed(&self, flag: bool);

        #[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(handleSaveScriptCommand:))]
        #[unsafe(method_family = none)]
        pub fn handleSaveScriptCommand(
            &self,
            command: &NSScriptCommand,
        ) -> Option<Retained<AnyObject>>;
    );
}
